rembik.users

Ansible Rolle: Benutzer

Diese Rolle verwaltet Benutzer und ihre Gruppen auf Ihrem System.

Anforderungen

  • Zugriff auf ein Repository mit Paketen, wahrscheinlich im Internet.
  • Eine aktuelle Ansible-Version (getestet mit den letzten 2 stabilen Hauptversionen).

Die folgenden Rollen können installiert werden, um sicherzustellen, dass alle Anforderungen erfüllt sind, mit ansible-galaxy install -r requirements.yml:

---
- rembik.bootstrap

Rollenvariablen

Diese Standardwerte sind in defaults/main.yml festgelegt:

---
# Standarddatei für Benutzer

# Der Standardwert, ob für jeden Benutzer eine Gruppe erstellt werden soll
# und diese die Hauptgruppe ist
users_group_per_user: ja
# Wenn keine Gruppe pro Benutzer erstellt wird, dann ist dies die Standardhauptgruppe,
# der alle Benutzer angehören
users_group: benutzer
# Der Standardwert, ob ein Home-Verzeichnis für den Benutzer erstellt werden soll,
# wenn das Konto erstellt wird oder wenn das Home-Verzeichnis nicht existiert
users_create_home: ja
# Die Standard-Sudo-Optionen für den Benutzer, wenn Sudo auf ja gesetzt ist,
# aber keine angegeben sind
users_sudo_options: "ALL=(ALL) NOPASSWD: ALL"
# Die Standard-Shell für den Benutzer, wenn keine angegeben ist
users_shell: /bin/bash
# Das lokale Verzeichnis zum Finden/Speichern generierter SSH-Schlüssel
users_ssh_key_dir: ssh_keys

# Listen von Benutzern, die erstellt, entfernt oder geändert werden sollen
users: []

# Liste der Benutzergruppen, die erstellt oder gelöscht werden sollen
users_groups: []

Ein guter Ort, um diese Variablen zu ersetzen, ist in group_vars/all oder group_vars/group_name, wenn Sie nur definierte Benutzer und Gruppen auf bestimmten Maschinen haben möchten.

Die Variable users enthält die Liste der Benutzer, die erstellt, entfernt oder geändert werden sollen. Jeder Benutzer in dieser Liste wird als Wörterbuch definiert. Die folgenden Parameter stehen für jedes Benutzerdictionary zur Verfügung:

Benutzerparameter Auswahl / Standardwerte Kommentare
name erforderlich Name des Benutzers, der erstellt, entfernt oder geändert werden soll.
state Auswahl:
  • present
  • absent
Ob das Konto existieren soll oder nicht, unter Berücksichtigung, wenn der Zustand anders ist als angegeben.
comment Optionaler Kommentar zur Beschreibung des Benutzerkontos.
uid Optional zur Festlegung der UID des Benutzers.
group Standard: user.name Optional zur Überschreibung der Hauptgruppe des Benutzers, die von users_group_per_user=yes oder users_group genommen wird (nimmt einen Gruppennamen).
gid Beeinflusst nur users_group_per_user=yes. Optional zur Festlegung einer anderen GID der Hauptgruppe des Benutzers. Ansonsten wird die UID verwendet.
groups Liste der Gruppen, zu denen der Benutzer hinzugefügt wird. Wenn auf einen leeren String gesetzt, wird der Benutzer aus allen Gruppen entfernt, außer aus der Hauptgruppe.
append Auswahl:
  • nein
  • ja
Wenn ja, wird der Benutzer zu den in groups angegebenen Gruppen hinzugefügt. Wenn nein, wird der Benutzer nur zu den in groups angegebenen Gruppen hinzugefügt und von anderen Gruppen entfernt.
password Standard: ! Optional zur Festlegung des Passworts des Benutzers auf diesen verschlüsselten Wert. Andernfalls wird das Benutzerkonto gesperrt.
update_password Auswahl:
  • always
  • on_create
always aktualisiert das Passwort, wenn es abweicht. on_create setzt das Passwort nur für neu erstellte Benutzer.
create_home Auswahl:
  • ja
  • nein
Optional zur Überschreibung dieses Wertes, der von users_create_home übernommen wird. Solange es nicht auf nein gesetzt ist, wird ein Home-Verzeichnis für den Benutzer erstellt, wenn das Konto erstellt wird oder wenn das Home-Verzeichnis nicht existiert.
home Standard: /home/user.name Optional zur Festlegung des Home-Verzeichnisses des Benutzers.
shell Standard: /bin/bash Optional zur Überschreibung der Shell des Benutzers, die von users_shell übernommen wird.
profile Optional zur Festlegung eines benutzerdefinierten Blocks im Benutzerprofil. Benötigt user.create_home=yes!
cron Auswahl:
  • nein
  • ja
Wenn ja, kann der Benutzer Crontab-Dateien erstellen, bearbeiten, anzeigen oder löschen. Andernfalls wird die Änderung von Crontab-Dateien nicht erlaubt.
sudo Auswahl:
  • nein
  • ja
Wenn ja, werden die Sudo-Optionen des Benutzers von user.sudo_options übernommen. Andernfalls werden die Sudo-Optionen des Benutzers entfernt.
sudo_options Standard: ALL=(ALL) NOPASSWD: ALL Optional zur Überschreibung der Sudo-Optionen des Benutzers, die von users_sudo_options übernommen werden.
ssh_key Liste der autorisierten SSH-Schlüssel des Benutzers (nimmt öffentliche SSH-Schlüssel; direkt und ohne Zeilenumbrüche eingebunden). Wenn auf eine leere Liste oder einen leeren String gesetzt, werden alle autorisierten SSH-Schlüssel des Benutzers entfernt. Benötigt user.create_home=yes!
generate_ssh_key Auswahl:
  • nein
  • ja
Sofern nicht auf nein gesetzt, wird das SSH-Schlüsselpaar des Benutzers generiert, wenn der SSH-Schlüssel nicht im lokalen Verzeichnis users_ssh_key_dir existiert. Danach wird es zu den autorisierten SSH-Schlüsseln des Benutzers hinzugefügt und das SSH-Schlüsselpaar wird an den Benutzer verteilt. Benötigt user.create_home=yes!
remove Auswahl:
  • nein
  • ja
Beeinflusst nur user.state=absent, versucht, die mit dem Benutzer verbundenen Verzeichnisse zu entfernen. Das Verhalten entspricht userdel --remove, siehe die Man-Seite für Details und Unterstützung.
force Auswahl:
  • nein
  • ja
Beeinflusst nur user.state=absent, zwingt die Entfernung des Benutzers und der zugehörigen Verzeichnisse auf unterstützten Plattformen. Das Verhalten entspricht userdel --force, siehe die Man-Seite für Details und Unterstützung.

Die Variable users_groups enthält die Liste der Benutzergruppen, die erstellt oder gelöscht werden sollen. Jede Gruppe in dieser Liste wird als Wörterbuch definiert. Die folgenden Parameter stehen für jedes Gruppendictionary zur Verfügung:

Gruppenparameter Auswahl / Standardwerte Kommentare
name erforderlich Name der Gruppe, die verwaltet werden soll.
state Auswahl:
  • present
  • absent
Ob die Gruppe auf dem entfernten Host vorhanden sein soll oder nicht.
gid Optionale GID, die für die Gruppe festgelegt werden soll.

Abhängigkeiten

Im Allgemeinen hat diese Rolle keine Abhängigkeiten. In Kombination mit der empfohlenen Rolle rembik.bootstrap verwendet diese Rolle den definierten bootstrap_user (falls erforderlich), um sich mit dem entfernten Host zu verbinden und die Aufgaben dieser Rolle auszuführen.

Beispiel-Playbook

Dieses Beispiel stammt aus molecule/playbook.yml:

---
- name: Konvergenz
  hosts: alle
  gather_facts: nein
  become: ja

  rollen:
    - rolle: rembik.bootstrap
    - rolle: rembik.users
      vars:
        users_ssh_key_dir: "{{ lookup('env', 'MOLECULE_EPHEMERAL_DIRECTORY') }}/ssh_key"
        users_groups:
          - name: benutzer
          - name: bin
        users:
          - name: nouser
            comment: Kein Benutzer
            create_home: nein
          - name: molecule
            comment: Ansible Testbenutzer
            uid: 2001
            home: /home/test
            cron: ja
            sudo: ja
            generate_ssh_key: ja
          - name: administrator
            comment: Administrator
            uid: 2002
            groups: [benutzer]
            cron: ja
            sudo: ja
            profile: |
              alias ll='ls -lah'
              alias cp='cp -iv'
            ssh_key:
              - "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABWBILQeRSYYmGea/WIf6kd... [email protected]"
          - name: benutzer
            comment: Benutzer
            uid: 2003
            groups: [benutzer]
            shell: /bin/sh
            generate_ssh_key: ja

Rollen-Tests

Python Ansible

Diese Rolle wird regelmäßig gegen folgende Linux-Distributionen getestet:

Ansible Ansible Ansible
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
EC2Distro Check
DockerDistro Check Check Check
DockerDistro Check Check Check
DockerDistro Check
DockerDistro Check Check Check
EC2Distro Check

Asterisken bedeuten, dass der Build fehlschlagen darf, er ist als experimenteller Build gekennzeichnet.

Mitwirken

Wenn Sie Probleme finden, melden Sie diese bitte auf dieser GitHub-Projektseite für Probleme oder ziehen Sie in Betracht, Code beizutragen, indem Sie diese Richtlinie folgen.

Lizenz

Apache-2.0

Autoreninformationen

Installieren
ansible-galaxy install rembik.users
GitHub Repository
Lizenz
apache-2.0
Downloads
83
Besitzer