robertdebock.users
Rôle Ansible utilisateurs
L'objectif de ce rôle est d'ajouter des utilisateurs et des groupes sur votre système.
GitHub | GitLab | Téléchargements | Version |
---|---|---|---|
Exemple de Playbook
Cet exemple est tiré de molecule/default/converge.yml
et est testé à chaque mise à jour, demande de tirage et publication.
---
- name: Converge
hosts: all
become: true
gather_facts: true
roles:
- role: robertdebock.users
# Vous pouvez créer des groupes :
users_groups:
- name: robertdb
gid: 1024
- name: users
# Vous pouvez aussi supprimer des groupes.
- name: notgroup
state: absent
# Un groupe système est aussi possible.
- name: systemgroup
system: true
# Vous pouvez créer des utilisateurs.
users:
- name: root
cron_allow: true
# Vous pouvez supprimer des clés autorisées.
unauthorized_keys:
- "ssh-rsa XYZYX54321"
- name: robertdb
comment: Robert de Bock
uid: 1024
# Le `group` et les `groups` listés ici doivent exister.
group: robertdb
groups:
- users
cron_allow: true
sudo_options: "ALL=(ALL) NOPASSWD: ALL"
# Ajout d'une clé autorisée.
authorized_keys:
- "ssh-rsa ABC123"
expires: -1
password_validity_days: 9
- name: robert.d.b
comment: Robert de Bock avec des points dans le nom d'utilisateur
uid: 1025
group: robertdb
groups:
- users
cron_allow: true
sudo_options: "ALL=(ALL) ALL"
authorized_keys:
- "ssh-rsa ABC123"
expires: -1
password_validity_days: 9
- name: notuser
state: absent
- name: keyuser
manage_ssh_key: true
- name: privkeyuser
manage_ssh_key: true
copy_private_key: true
- name: multiplekeys
authorized_keys:
- "ssh-rsa ABC1234"
- "ssh-rsa ABC12345"
- name: passuser
password: "$6$mysecretsalt$qJbapG68nyRab3gxvKWPUcs2g3t0oMHSHMnSKecYNpSi3CuZm.GbBqXO8BE6EI6P1JUefhA0qvD7b5LSh./PU1"
update_password: on_create
- name: remotekey
authorized_keys:
- "https://raw.githubusercontent.com/shaanr/smdb/master/file.pub"
- name: systemuser
system: true
- name: multisudo
sudo_options:
- "ALL= NOPASSWD: /usr/bin/systemctl restart httpd"
- "ALL= NOPASSWD: /usr/bin/systemctl start httpd"
- "ALL= NOPASSWD: /usr/bin/systemctl stop httpd"
- name: myprivkeyuser
private_keys:
- name: id_rsa
content: |
-----BEGIN OPENSSH PRIVATE KEY-----
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
AwQFBg==
-----END OPENSSH PRIVATE KEY-----
La machine doit être préparée. Dans CI, cela se fait en utilisant molecule/default/prepare.yml
:
---
- name: Prepare
hosts: all
become: true
gather_facts: false
roles:
- role: robertdebock.bootstrap
- role: robertdebock.core_dependencies
tasks:
- name: Définir les clés autorisées pour root
ansible.posix.authorized_key:
user: root
state: present
key: "ssh-rsa XYZYX54321"
Consultez également une explication complète et un exemple sur la manière d'utiliser ces rôles.
Variables de rôle
Les valeurs par défaut des variables sont définies dans defaults/main.yml
:
---
# fichier par défaut pour les utilisateurs
# L'emplacement pour stocker les clés ssh pour l'utilisateur
users_ssh_key_directory: ssh_keys
# Le shell par défaut s'il n'est pas remplacé.
users_shell: /bin/bash
# gérer les permissions cron via /etc/cron.allow
users_cron_allow: true
# les répertoires personnels doivent-ils être créés ?
users_create_home: true
Exigences
- Les paquets pip listés dans requirements.txt.
État des rôles utilisés
Les rôles suivants sont utilisés pour préparer un système. Vous pouvez préparer votre système d'une autre manière.
Exigence | GitHub | GitLab |
---|---|---|
robertdebock.bootstrap | ||
robertdebock.core_dependencies |
Contexte
Ce rôle fait partie de nombreux rôles compatibles. Consultez la documentation de ces rôles pour plus d'informations.
Voici un aperçu des rôles connexes :
Compatibilité
Ce rôle a été testé sur ces images de conteneur:
conteneur | tags |
---|---|
Alpine | tous |
Amazon | Candidate |
EL | 9 |
Debian | tous |
Fedora | tous |
Ubuntu | tous |
La version minimale d'Ansible requise est 2.12, des tests ont été effectués sur :
- La version précédente.
- La version actuelle.
- La version de développement.
Si vous trouvez des problèmes, veuillez les enregistrer sur GitHub.
Licence
Informations sur l'auteur
Veuillez envisager de me soutenir.
The purpose of this role is to add users and groups on your system.
ansible-galaxy install robertdebock.users