sansible.users_and_groups
Utilisateurs et Rôles
Ce rôle gère les utilisateurs et groupes du système d'exploitation.
Installation et Dépendances
Ce rôle n'a pas de dépendances.
Pour installer, exécutez ansible-galaxy install sansible.users_and_groups ou ajoutez
ceci à votre roles.yml
- name: sansible.users_and_groups
  version: v2.0
et exécutez ansible-galaxy install -p ./roles -r roles.yml
Étiquettes
Ce rôle utilise deux étiquettes : build et maintain
- build- Assure que les groupes et utilisateurs spécifiés sont présents.
- maintain- Assure la présence des utilisateurs sur une instance déjà construite et configurée.
Exemples
Exemple simple pour créer deux utilisateurs et deux groupes.
- name: Configurer l'accès utilisateur
  hosts: sandbox
  roles:
    - name: sansible.users_and_groups
      sansible_users_and_groups_groups:
        - name: lorem
          system: yes
        - name: ipsum
      sansible_users_and_groups_users:
        - name: lorem.ipsum
          groups:
            - ipsum
            - lorem
          ssh_key: ./lorem.ipsum.pub
        - name: dolor.ament
          groups:
            - ipsum
Création d'un utilisateur SFTP enfermé (cf ici pour un guide détaillé) :
- name: Configurer l'accès utilisateur
  hosts: sandbox
  roles:
    - name: sansible.users_and_groups
      sansible_users_and_groups_authorized_keys_dir: /etc/ssh/authorized_keys
      sansible_users_and_groups_groups:
        - name: sftp_only
      sansible_users_and_groups_users:
        - name: sftp
          group: sftp_only
          home: /mnt/sftp_vol
Dans la plupart des cas, vous conserverez la liste des utilisateurs dans un fichier de variables externes ou dans un fichier de variables de groupe/hôte.
- name: Configurer l'accès utilisateur
  hosts: sandbox
  vars_files:
    - "vars/sandbox/users.yml"
  roles:
    - name: sansible.users_and_groups
      sansible_users_and_groups_groups: "{{ base_image.os_groups }}"
      sansible_users_and_groups_users: "{{ base_image.admins }}"
    - name: sansible.users_and_groups
      sansible_users_and_groups_users: "{{ developers }}"
Ajouter un groupe sélectionné aux sudoers
- name: Configurer l'accès utilisateur
  hosts: sandbox
  vars_files:
    - "vars/sandbox/users.yml"
  roles:
    - name: sansible.users_and_groups
      sansible_users_and_groups_groups: "{{ base_image.os_groups }}"
      sansible_users_and_groups_users: "{{ base_image.admins }}"
    - name: sansible.users_and_groups
      sansible_users_and_groups_users: "{{ developers }}"
    - name: sansible.users_and_groups
      sansible_users_and_groups_sudoers:
        - name: wheel
          user: "%wheel"
          runas: "ALL=(ALL)"
          commands: "NOPASSWD: ALL"
Utilisez l'option de groupes sur liste blanche pour permettre aux utilisateurs un accès contextuel.
Fichier de variables avec utilisateurs :
---
# vars/users.yml
sansible_users_and_groups_groups:
  - name: admins
  - name: developer_group_alpha
  - name: developer_group_beta
sansible_users_and_groups_users:
  - name: admin.user
    group: admins
  - name: alpha.user
    group: alpha_develops
  - name: beta.user
    group: developer_group_beta
Dans une image de base :
---
# playbooks/base_image.yml
- name: Image de Base
  hosts: "{{ hosts }}"
  vars_files:
    - vars/users.yml
  roles:
    - role: sansible.users_and_groups
      sansible_users_and_groups_whitelist_groups:
        - admins
    - role: base_image
Dans un rôle de service :
---
# playbooks/alpha_service.yml
- name: Service Alpha
  hosts: "{{ hosts }}"
  vars_files:
    - vars/users.yml
  roles:
    - role: sansible.users_and_groups
      sansible_users_and_groups_whitelist_groups:
        - admins
        - developer_group_alpha
    - role: alpha_service
ansible-galaxy install sansible.users_and_groups