cans.user-make
cans.user-make
Rol de Ansible para crear varios usuarios en los hosts de destino.
¿Cómo funciona?
Cada usuario que se va a crear debe estar definido con un elemento como se muestra a continuación:
usermake_users:
- name: "johndoe" # obligatorio
gecos: "John Doe,,," # predeterminado: omitir
groups: "sudo,adm" # predeterminado: omitir
passwordless_sudo: true # predeterminado: usermake_sudoer_passwordless
ssh_key_create: false # predeterminado: true
ssh_key_upload_to_ec2: true # predeterminado: usermake_ssh_key_upload_to_ec2
ssh_key_download: true # predeterminado: usermake_ssh_key_download
sudoer: true # predeterminado: usermake_sudoer
system: false # predeterminado: false
upload_my_key: false # predeterminado: usermake_upload_ssh_key_to_target
remove: false # predeterminado: omitir o usermake_remove
home_dir: "/home/jdoe" # predeterminado: usermake_home_base_dir/name
Aquí está el significado de cada variable encontrada en el elemento:
name
: el nombre de inicio de sesión para el nuevo usuario;gecos
: los datos de GECOS que se adjuntan al nuevo usuario;groups
: la lista de grupos a los que debería pertenecer el usuario. Los grupos listados aquí se supone que existen a priori (ver también la sección siguiente);passwordless_sudo
: cuando está configurado comotrue
, el usuario podrá asumir la identidad de otro usuario sin escribir ninguna contraseña;remove
: cuando el valor state del elemento es 'absent', indica si se deben eliminar los archivos propiedad del usuario cuando se borra su cuenta (puede ser lento);ssh_key_create
: si generar o no un par de claves SSH para el nuevo usuario;ssh_key_download
: si descargar o no la clave pública SSH generada del usuario a una carpeta en la máquina local (ver también elusermake_ssh_key_download_dir
definido a continuación).ssh_key_upload_to_ec2
: si subir o no la clave pública SSH generada del usuario al sistema de gestión de claves de AWS EC2.state
: si crear () o eliminar () al usuario indicado con los valores 'present' o 'absent' respectivamente (predeterminado: 'present');sudoer
: si está configurado comotrue
, el usuario obtendrá privilegios de sudo (ver también la variableusermake_sudoer
);system
: si el usuario debería ser un usuario del sistema (con un número de UID bajo y acceso de inicio de sesión deshabilitado);upload_my_key
: si subir o no tu clave SSH local al host de destino.
Todos estos valores, si se definen, sobrescribirán los valores predeterminados definidos en la sección de variables del rol más abajo.
¿Qué no puede hacer este rol?
No puede agregar usuarios a nuevos grupos, sobrescribirá los grupos del usuario con la lista de grupos dada.
Requisitos
Este rol no tiene requisitos específicos.
Variables del rol
Todos los nombres de variables utilizados en este rol están organizados con el prefijo usermake_
.
usermake_home_base_dir
: te permite sobrescribir la ruta del directorio donde se crean los hogares de los usuarios (predeterminado:/home
);usermake_remove
: si eliminar o no el directorio de inicio de los usuarios cuando se eliminan (predeterminado: false);usermake_ssh_key_create
: si crear o no un par de claves SSH para los nuevos usuarios por defecto (predeterminado: true);usermake_ssh_key_download
: si descargar las claves SSH generadas de los usuarios localmente;usermake_ssh_key_download_dir
: el directorio donde almacenar las claves públicas SSH descargadas (predeterminado:{{ playbook_dir }}/collected-keys
);usermake_ssh_key_download_dir_mode
: el modo del directorio donde almacenar las claves públicas SSH descargadas (predeterminado: 0750);usermake_ssh_key_passphrase
: las contraseñas predeterminadas para cifrar las claves privadas SSH. No se recomienda depender de esto. Debes proporcionar contraseñas de otras maneras. (predeterminado:omit
[sin contraseña]);usermake_sudoer
: si los usuarios creados deberían ser sudoers por defecto (predeterminado: false); Nota: Antes de otorgar privilegios elevados a cualquier usuario con esto, considera que las distribuciones proporcionan un paquete sudo que define un gruposudo
osudoers
que ya otorga algunos privilegios a sus miembros. El mecanismo presente está más destinado a preconfigurar usuarios de alto privilegio en imágenes de disco para facilitar la configuración y aprovisionamiento, y no para gestionar privilegios de usuario o aplicación con fineza;usermake_sudoer_dir
: directorio en las máquinas de destino donde colocar los archivos de reglas de sudoer (predeterminado:/etc/sudoers.d
)usermake_system
: si los usuarios creados deberían ser usuarios del sistema por defecto (predeterminado: false);usermake_upload_ssh_key_to_target
: si subir o no la clave pública SSH local del usuario al host de destino. Útil si planeas realizar tareas como ese usuario en las siguientes tareas o roles de tu playbook (predeterminado: true);usermake_upload_ssh_key_file
: cuandousermake_upload_ssh_key_to_target
o el valorupload_my_key
de un elemento de usuario estrue
, apunta al archivo donde leer la clave pública para subir (predeterminado:~/.ssh/id_rsa.pub
);usermake_user_groups
: los grupos a los que asignar por defecto los usuarios creados (predeterminado:omit
);usermake_users
: la lista de usuarios a crear, definida con elementos como se describió anteriormente (predeterminado:[]
);
Dependencias
Este rol no tiene dependencias.
Ejemplo de Playbook
Creando algunos usuarios:
- hosts: servers
roles:
- role: cans.user-make
usermake_users:
- name: "alice"
groups: "sudo,adm"
system: "no"
ssh_key_create: "yes"
- name: "bob"
gecos: "Bob no sponge,,,"
system: "yes"
ssh_key_create: true
Eliminando algunos usuarios:
- hosts: servers
roles:
- role: cans.user-make
usermake_users:
- name: "alice"
state: "absent"
remove: true # Eliminar todos los archivos del usuario
- name: "bob"
state: "absent"
También puedes echar un vistazo a las pruebas encontradas en tests/test.yml
para muchos más ejemplos de uso (esperemos que exhaustivos) de este rol.
Por hacer
Implementar pruebas de integración para la carga de claves en AWS.
Licencia
GPLv2
Información del autor
Copyright © 2017, Nicolas CANIART.
ansible-galaxy install cans.user-make