monolithprojects.user_management
Gestion des Utilisateurs
Ce rôle Ansible permet de gérer (créer, éditer, supprimer) des utilisateurs Linux. La gestion inclut également la distribution des clés SSH.
Comment ça fonctionne
Ce rôle utilise des faits locaux sur chaque hôte pour stocker les noms des utilisateurs figurant dans user_management
. Seuls ces utilisateurs sont gérés par ce rôle. Une fois que vous aurez retiré un utilisateur de la liste user_management
, l'utilisateur et son répertoire personnel seront supprimés de l'hôte. Les utilisateurs non mentionnés dans la liste user_management
(utilisateurs non créés par ce rôle Ansible) resteront intacts.
Ce rôle peut
- créer des utilisateurs
- supprimer des utilisateurs
- éditer des utilisateurs
- gérer des clés SSH
Exigences
Distributions Linux prises en charge :
- CentOS/RHEL 7,8
- Debian 9,10
- Fedora 29,30,31,32
- Ubuntu 16,18,20
Remarque : Ce sont les distributions Linux testées chaque semaine. Le rôle fonctionnera probablement aussi sur d'autres distributions Linux sans problème.
Variables du rôle
Ceci est un extrait de defaults/main.yml
local_facts_file: linux_users.fact
local_facts_path: /etc/ansible/facts.d
user_management:
# - name: userx <<< Nom d'utilisateur (obligatoire).
# comment: Utilisateur X <<< (Optionnel) Description de l'utilisateur.
# groups: <<< (Optionnel) Liste des groupes auxquels l'utilisateur sera ajouté.
# - games
# - video
# ssh_keys: <<< (Optionnel) Liste des clés publiques autorisées.
# - 'ssh-ed25519 xxxx quelque chose'
# shell: /bin/bash <<< (Optionnel) Shell de l'utilisateur (valeur par défaut "/bin/bash")
# expires: -1 <<< (Optionnel) Date d'expiration de l'utilisateur au format Epoch (valeur par défaut "-1").
# create_home: yes <<< (Optionnel) Créer un répertoire personnel (valeur par défaut "yes").
# system: no <<< (Optionnel) Créer un compte système (valeur par défaut "no").
Exemple de Playbook :
Dans cet exemple, Ansible va créer (ou éventuellement éditer - si ce n'est pas le premier exécution) 3 utilisateurs. user1
avec un commentaire, zsh
comme shell par défaut, l'utilisateur expirera à 1640991600
en temps Unix, l'utilisateur sera ajouté aux groupes d'utilisateurs sudo
et docker
, et enfin ajouter deux clés publiques SSH. user2
sera créé avec les valeurs par défaut. appuser
sera créé en tant qu'utilisateur système.
---
- name: Gestion des Utilisateurs
hosts: all
user: ubuntu
gather_facts: yes
become: yes
vars:
user_management:
- name: user1
comment: Mon Utilisateur Test
shell: /bin/zsh
expires: 1640991600
groups:
- sudo
- docker
ssh_keys:
- 'ssh-ed25519 xxxxxx ma_clé_utilisateur'
- 'ssh-rsa xxxxxx ma_clé_utilisateur'
- name: user2
- name: appuser
system: yes
create_home: no
roles:
- ansible-user_management
Licence
MIT
Informations sur l'Auteur
Créé en 2020 par Michal Muransky
Linux users and ssh keys management
ansible-galaxy install monolithprojects.user_management