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.