AsavarTzeth.users

Statut de construction

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

Installer
ansible-galaxy install AsavarTzeth.users
Licence
bsd-2-clause
Téléchargements
501
Propriétaire