[EVO] Générer dynamiquement la liste des utilisateurs

This commit is contained in:
pulsar89.5 2023-05-23 12:11:36 +02:00
parent 1d4aaf909e
commit 1a2afbb3f8
3 changed files with 64 additions and 3 deletions

View File

@ -1,3 +1,43 @@
# role_modele # role_users
Modèle Ce rôle permet de créer et configurer des utilisateurs systèmes.
## Variables
### users_*
Liste contenant la configuration des utilisateurs.
*<span style="text-decoration: underline">Valeur par défaut:</span> aucune*
## Exemple d'utilisation
### inventory.yml
```yaml
---
all:
hosts:
host1.ykn.local:
```
### host_vars/host1.ykn.local.yml
```yaml
---
users: []
- name: ansible
comment: "Ansible user"
update_password: on_create
password_lock: true
append: true
shell: /bin/bash
groups: ["sudo"]
extras:
authorized_keys:
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNxxMmKSUHibYrlwyhx6UzyEAIPrghuQ/2fiCvcGAfh ansible
- ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJPerG1LAvNuuwuMnlExCyfsRwGqrM1U3C/aUtuXqhyu bot_ansible
sudoers: ansible ALL=(ALL) NOPASSWD:AL
```

View File

@ -2,3 +2,16 @@
# defaults file for users # defaults file for users
users: [] users: []
#Exemple:
# - name: ansible
# comment: "Ansible user"
# update_password: on_create
# password_lock: true
# append: true
# shell: /bin/bash
# groups: ["sudo"]
# extras:
# authorized_keys:
# - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILNxxMmKSUHibYrlwyhx6UzyEAIPrghuQ/2fiCvcGAfh ansible
# - ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJPerG1LAvNuuwuMnlExCyfsRwGqrM1U3C/aUtuXqhyu bot_ansible
# sudoers: ansible ALL=(ALL) NOPASSWD:ALL

View File

@ -1,6 +1,14 @@
--- ---
# tasks file for users # tasks file for users
- name: Construire la liste des utilisateurs
ansible.builtin.set_fact:
users: "{{ users + specific }}"
when: specific | length > 0
loop: "{{ lookup('ansible.builtin.varnames', '^users.+', wantlist=True) }}"
vars:
specific: "{{ lookup('ansible.builtin.vars', item, default='') }}"
- name: Créer un groupe au nom de l'utilisateur - name: Créer un groupe au nom de l'utilisateur
ansible.builtin.group: ansible.builtin.group:
name: "{{ item.name }}" name: "{{ item.name }}"
@ -16,7 +24,7 @@
become: true become: true
loop: "{{ users | subelements('groups', skip_missing=True) }}" loop: "{{ users | subelements('groups', skip_missing=True) }}"
loop_control: loop_control:
label: "{{ item.0.name }} to {{ item.1 }}" label: "{{ item.1 }}"
- name: Créer les utilisateurs - name: Créer les utilisateurs
ansible.builtin.user: ansible.builtin.user: