AsavarTzeth.users
Rôle Ansible pour les utilisateurs - ansible-role-users
Rôle Ansible utilisé pour gérer les utilisateurs, les groupes, les clés SSH autorisées et sudo.
Le format de configuration de ce rôle s'inspire fortement du format utilisé avec cloud-init/cloud config. L'objectif est d'utiliser la même structure yaml ou une structure similaire autant que possible, mais d'étendre le format lorsque cela a du sens.
Quelques différences mineures à noter :
- Tous les tirets ont dû être remplacés par des underscores en raison de la façon dont Ansible interprète les noms de variables.
Pour plus d'informations sur cloud-init, consultez la documentation de cloud-init à l'adresse :
https://cloudinit.readthedocs.io/en/latest/index.html
Exigences
Ce rôle a été développé et testé sur Ansible 2.2.0 et supérieur.
Il peut fonctionner sur des versions inférieures, mais cela n'est pas pris en charge.
Variables du rôle
Liste des variables et valeurs par défaut :
# Le shell par défaut de l'utilisateur, utilisé lors de la création d'utilisateur.
users_default_shell: /bin/bash
# Définit si le rôle doit créer un groupe principal s'il n'existe pas.
# Pour éviter que le rôle ne échoue, cela est défini sur vrai par défaut.
# Désactivez ceci si les groupes sont gérés ailleurs.
users_create_primary_group: true
# Active la gestion de l'escalade des privilèges avec sudo.
# Désactivez ceci si sudo ne sera pas utilisé ou est géré ailleurs.
users_enable_sudo: true
# Le seul paramètre obligatoire est le nom.
users:
- name: '' # Le nom d'utilisateur de l'utilisateur.
gecos: '' # Le champ de commentaire, également connu et utilisé pour le vrai nom de l'utilisateur.
homedir: '' # Le répertoire personnel de l'utilisateur.
primary_group: '' # Le groupe principal de l'utilisateur.
groups: [] # Une liste de groupes complémentaires pour l'utilisateur.
no_create_home: false # Si vrai, ne pas créer de répertoire personnel. Défaut à vrai si `system: true`.
shell: "{{ users_default_shell }}" # Le shell par défaut de l'utilisateur.
passwd: '' # Un mot de passe haché et salé en SHA512.
ssh_authorized_keys: [] # Une liste de clés publiques SSH à ajouter au fichier authorized_keys.
sudo: '' # La chaîne sudo qui sera utilisée pour configurer sudo.
system: false # Si vrai, l'utilisateur sera un utilisateur système. Cela n'affecte pas les utilisateurs existants.
Dépendances
Aucune
Exemple de Playbook
Ajouter ou modifier un utilisateur et configurer sudo et les clés SSH autorisées :
- hosts: all
roles:
- role: AsavarTzeth.users
users_default_shell: /bin/bash
users_create_primary_group: true
users_enable_sudo: true
users:
- name: foobar1
gecos: Foo B. Bar
primary_group: foobar1
groups: ['users','wheel']
shell: /bin/bash
ssh_authorized_keys:
- "ssh-rsa AAAAA.... foo@host"
- "ssh-rsa AAAAB.... bar@host"
sudo: ALL=(ALL) ALL
Ajouter ou modifier un utilisateur système :
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar2
gecos: FooBar Service Account
homedir: /
primary_group: foobar
shell: /sbin/nologin
system: true
Supprimer des utilisateurs :
- hosts: all
roles:
- role: AsavarTzeth.users
users_deleted:
- name: foobar1
- name: foobar2
Modifier le mot de passe d'un utilisateur :
- hosts: all
roles:
- role: AsavarTzeth.users
users:
- name: foobar1
passwd: $6$mI3A2y4O.YfqhlPt$szsWfnICXsYLbsIghLauJG.I3enLYGDPBYO1DYTHn9gB6y3Q2faM7iqievJlU5ZMTT9X3wHrUv0c7HWkToGBp/
Licence
BSD-2-Clause
Informations sur l'auteur
Patrik Nilsson
ansible-galaxy install AsavarTzeth.users