Skip to main content

Gestión de usuarios

Para la creación de usuarios y asignación de permisos es necesario instalar los siguientes módulos.

puppet module install saz-sudo
puppet module install puppetlabs-accounts

En el fichero site.pp de su environment (ej Producción)

nano /etc/puppetlabs/code/environments/production/manifests/site.pp

Añada el siguiente contenido

node default {
	# ... otras cosas ...

	# Introducir al usuario como sudoer, se puede indicar un grupo
	class { 'sudo': }
	sudo::conf { 'admins':
		content  => "%admins ALL=(ALL) NOPASSWD: ALL",
	}
    
    # Crear grupo
    group{ 'admins':
		ensure => present,
		gid => '4000',
	}
    
	# Crear usuario 
	accounts::user { 'login_usuario':
		ensure => 'present',
		comment => 'Guille Rodriguez',
		shell => '/bin/bash',
		password => '!!',
		locked => false,
		uid => '5001',
		gid => '5001',
		groups => [
			'admins', 
		],
		purge_sshkeys => true,
		sshkeys => [
				'ssh-rsa rsa1',
				'ssh-rsa rsa2',
		]
	}
}

A continuación en una máquina del entorno si ejecuta el comando

puppet agent -vt

Podrá ver que el resultado es el siguiente

root@puppet:/root# puppet agent -vt
Info: Using environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for puppet.psc.local
Info: Applying configuration version '1670000013'
Notice: /Stage[main]/Main/Node[default]/Group[admins]/ensure: created
Notice: /Stage[main]/Main/Node[default]/Accounts::User[g.rodriguez]/Group[g.rodriguez]/ensure: created
Notice: /Stage[main]/Main/Node[default]/Accounts::User[g.rodriguez]/User[g.rodriguez]/ensure: created
Notice: /Stage[main]/Main/Node[default]/Accounts::User[g.rodriguez]/Accounts::Key_management[g.rodriguez_key_management]/File[/home/g.rodriguez/.ssh/authorized_keys]/ensure: created
Notice: /Stage[main]/Main/Node[default]/Accounts::User[g.rodriguez]/Accounts::Key_management[g.rodriguez_key_management]/Accounts::Manage_keys[ssh-rsa rsa1 grodriguez@rsaguille for g.rodriguez]/Ssh_authorized_key[g.rodriguez_ssh-rsa_grodriguez@rsaguille_cf95212856f982251ef35fcd2a6cf3ba]/ensure: created
Info: Computing checksum on file /home/g.rodriguez/.ssh/authorized_keys
Notice: Applied catalog in 0.91 seconds

Y si visualiza los ficheros

cat /etc/passwd
cat /etc/group
ls -l /etc/sudoers.d/

Podrá ver que los cambios se han realizado correctamente.

Parámetros

Con estos parámetros podemos llegar a gestionar los diferentes usuarios en el entorno. Si un nuevo usuario llega, se le puede crear un usuario y desplegar la clave RSA en todas las máquinas.

Si el usuario cambia su clave RSA o tiene una nueva, se le puede cambiar de forma sencilla y automatizada en todo el entorno.

Si finalmente un usuario se va de la empresa, podemos bloquear su usuario, quitarle las rsa o directamente borrarlo.

ensure

Puede tener como parámetros

  • Present: Comprueba si el usuario está creado, si no lo está, lo crea.
  • Absent: Comprueba si el usuario está creado, si lo está, lo borra.

password

Si queremos que el usuario tenga una contraseña, pero lo ideal es que el usuario acceda solo mediante RSA.

locked

Si queremos bloquear el acceso de un usuario temporalmente, sin llegar a borrarlo.

groups

Lista de grupos a los que se añadirá el usuario

sshkeys

Las diferentes claves RSA con las que se podrá acceder al usuario.

purge_sshkeys

Se encarga de comprobar que para dicho usuario, solo están las RSA que se han indicado en el fichero, cualquier RSA no gestionada por Puppet será borrada.