sansible.users_and_groups
Benutzer und Rollen
Diese Rolle verwaltet Benutzer und Gruppen im Betriebssystem.
Installation und Abhängigkeiten
Diese Rolle hat keine Abhängigkeiten.
Um sie zu installieren, führe ansible-galaxy install sansible.users_and_groups
aus oder füge Folgendes zu deiner roles.yml
hinzu:
- name: sansible.users_and_groups
version: v2.0
und führe ansible-galaxy install -p ./roles -r roles.yml
aus.
Tags
Diese Rolle verwendet zwei Tags: build und maintain
build
- Stellt sicher, dass die angegebenen Gruppen und Benutzer vorhanden sind.maintain
- Stellt sicher, dass Benutzer auf einer bereits konfigurierten Instanz vorhanden sind.
Beispiele
Ein einfaches Beispiel zur Erstellung von zwei Benutzern und zwei Gruppen.
- name: Benutzerzugang konfigurieren
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
Erstellung eines gesperrten SFTP-Benutzers (siehe hier für eine Schritt-für-Schritt-Anleitung):
- name: Benutzerzugang konfigurieren
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
In den meisten Fällen würdest du die Liste der Benutzer in einer externen Variablen-Datei oder in Gruppen|Host-Variablen-Dateien aufbewahren.
- name: Benutzerzugang konfigurieren
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 }}"
Ausgewählte Gruppe zu den Sudoers hinzufügen:
- name: Benutzerzugang konfigurieren
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"
Verwende die Whitelist-Gruppenoption, um Benutzern kontextbezogen den Zugang zu ermöglichen.
Variablen-Datei mit Benutzern:
---
# 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
In einem Basis-Image:
---
# playbooks/base_image.yml
- name: Basis-Image
hosts: "{{ hosts }}"
vars_files:
- vars/users.yml
roles:
- role: sansible.users_and_groups
sansible_users_and_groups_whitelist_groups:
- admins
- role: base_image
In einer Dienstrolle:
---
# playbooks/alpha_service.yml
- name: Alpha-Dienst
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