taktus.users
Rol de Ansible: usuarios
Rol para gestionar usuarios en un sistema.
Configuración del rol
users_create_per_user_group
(por defecto: true) - al crear usuarios, también crea un grupo con el mismo nombre de usuario y lo convierte en el grupo principal del usuario.users_group
(por defecto: users) - siusers_create_per_user_group
NO está configurado, entonces este es el grupo principal para todos los usuarios creados.users_default_shell
(por defecto: /bin/bash) - la shell predeterminada si no se especifica para el usuario.users_create_homedirs
(por defecto: true) - crea directorios personales para nuevos usuarios. Establece esto en false si gestionas los directorios personales por separado.
Creando usuarios
Agrega una variable de usuarios que contenga la lista de usuarios a agregar. Un buen lugar para poner
esto es en group_vars/all
o group_vars/nombre_del_grupo
si solo deseas que los
usuarios estén en ciertas máquinas.
Los siguientes atributos son necesarios para cada usuario:
username
- El nombre de usuario del usuario.name
- El nombre completo del usuario (campo gecos).home
- El directorio personal del usuario a crear (opcional, por defecto es /home/username).uid
- El ID numérico del usuario (opcional). Esto es necesario para la consistencia del uid entre sistemas.gid
- El ID numérico del grupo (opcional). De lo contrario, se usará eluid
.password
- Si se proporciona un hash, se usará ese, de lo contrario, la cuenta se bloqueará.update_password
- Esto puede ser 'always' o 'on_create''always'
actualizará las contraseñas si son diferentes. (por defecto)'on_create'
solo configurará la contraseña para los usuarios recién creados.
group
- Sobrescritura opcional del grupo principal.groups
- Una lista de grupos adicionales para el usuario.append
- Si sí, solo añadirá grupos, no los establecerá solo en la lista de grupos (opcional).profile
- Un bloque de cadena para establecer perfiles de shell personalizados.ssh_key
- Esta debe ser una lista de claves SSH para el usuario (opcional). Cada clave SSH debe incluirse directamente y no debe tener saltos de línea.generate_ssh_key
- Si generar una clave SSH para el usuario (opcional, por defecto es no).
Además, los siguientes elementos son opcionales para cada usuario:
shell
- La shell del usuario. Por defecto es /bin/bash. El valor predeterminado es configurable usando la variableusers_default_shell
si deseas dar a todos los usuarios la misma shell, pero es diferente de /bin/bash.is_system_user
- Establecer enTrue
para crear un usuario del sistema.
Ejemplo:
---
usuarios:
- username: foo
name: Foo Bar
groups: ['admin','systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
grupos_a_crear:
- name: developers
gid: 20000
Generando un hash de contraseña:
# En Debian/Ubuntu (a través del paquete "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (nota: esto solo generará md5crypt. Aunque es mejor que el texto plano, no debe
considerarse completamente seguro)
openssl passwd -1
# Python (cambiar valores de contraseña y sal)
python -c "import crypt, getpass, pwd; print crypt.crypt('contraseña', '\$6\$SALT\$')"
# Perl (cambiar valores de contraseña y sal)
perl -e 'print crypt("contraseña","\$6\$SALT\$") . "\n"'
Eliminando usuarios
La variable users_deleted
contiene una lista de usuarios que ya no deben estar
en el sistema, y serán eliminados en la próxima ejecución de ansible. El formato
es el mismo que para agregar usuarios, pero el único campo requerido es username
.
Sin embargo, se recomienda que también mantengas el campo uid
como referencia para
que los ID numéricos de usuario no se reutilicen accidentalmente.
Puedes elegir opcionalmente eliminar el directorio personal del usuario y la bandeja de entrada de correo con
el parámetro remove
, y forzar la eliminación de archivos con el parámetro force
.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Dependencias
Ninguna.
Licencia
MIT
ansible-galaxy install taktus.users