monolithprojects.user_management
Gestión de Usuarios
Este rol de Ansible es para gestionar (crear, editar, eliminar) usuarios de Linux. La gestión también incluye la distribución de las claves SSH.
Cómo funciona
Este rol utiliza hechos locales en cada host para almacenar los nombres de usuario listados en user_management
. Solo estos usuarios son gestionados por este rol. Una vez que elimines un usuario de la lista de user_management
, el usuario y el directorio personal serán eliminados del anfitrión. Los usuarios que no estén listados en la lista de user_management
(usuarios no creados por este rol de Ansible) permanecerán intactos.
Este rol puede
- crear usuarios
- eliminar usuarios
- editar usuarios
- gestionar claves SSH
Requisitos
Distribuciones de Linux soportadas:
- CentOS/RHEL 7,8
- Debian 9,10
- Fedora 29,30,31,32
- Ubuntu 16,18,20
Nota: Estas son las distribuciones de Linux probadas semanalmente. Es probable que el rol funcione bien en otras distribuciones de Linux diferentes.
Variables del Rol
Esta es una copia de defaults/main.yml
local_facts_file: linux_users.fact
local_facts_path: /etc/ansible/facts.d
user_management:
# - name: userx <<< Nombre del usuario (Requerido).
# comment: User X <<< (Opcional) Descripción del usuario.
# groups: <<< (Opcional) Lista de grupos a los que se añadirá el usuario.
# - games
# - video
# ssh_keys: <<< (Opcional) Lista de claves públicas autorizadas.
# - 'ssh-ed25519 xxxx algo'
# shell: /bin/bash <<< (Opcional) Shell del usuario (valor por defecto "/bin/bash").
# expires: -1 <<< (Opcional) Fecha de expiración del usuario en formato Epoch (valor por defecto "-1").
# create_home: yes <<< (Opcional) Crear directorio personal (valor por defecto "yes").
# system: no <<< (Opcional) Crear una cuenta de sistema (valor por defecto "no").
Ejemplo de Playbook:
En este ejemplo, Ansible creará (o eventualmente editará - si no es la primera ejecución) 3 usuarios. user1
con comentario, zsh
como shell por defecto, el usuario expirará en 1640991600
tiempo Unix, el usuario será añadido a los grupos sudo
y docker
, y finalmente se añadirán dos claves públicas SSH. user2
será creado con valores por defecto. appuser
será creado como un usuario de sistema.
---
- name: Gestión de Usuarios
hosts: all
user: ubuntu
gather_facts: yes
become: yes
vars:
user_management:
- name: user1
comment: Mi Usuario de Prueba
shell: /bin/zsh
expires: 1640991600
groups:
- sudo
- docker
ssh_keys:
- 'ssh-ed25519 xxxxxx mi_clave_de_usuario'
- 'ssh-rsa xxxxxx mi_clave_de_usuario'
- name: user2
- name: appuser
system: yes
create_home: no
roles:
- ansible-user_management
Licencia
MIT
Información del Autor
Creado en 2020 por Michal Muransky
Linux users and ssh keys management
ansible-galaxy install monolithprojects.user_management