taktus.users

Rol de Ansible: usuarios

Estado de la Construcción

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) - si users_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á el uid.
  • 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 variable users_default_shell si deseas dar a todos los usuarios la misma shell, pero es diferente de /bin/bash.
  • is_system_user - Establecer en True 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

Acerca del proyecto

User management role

Instalar
ansible-galaxy install taktus.users
Licencia
mit
Descargas
76
Propietario