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:
|
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:
|
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 aktualisiert das Passwort, wenn es abweicht. on_create setzt das Passwort nur für neu erstellte Benutzer. |
create_home |
Auswahl:
|
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:
|
Wenn ja, kann der Benutzer Crontab-Dateien erstellen, bearbeiten, anzeigen oder löschen. Andernfalls wird die Änderung von Crontab-Dateien nicht erlaubt. |
sudo |
Auswahl:
|
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:
|
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:
|
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:
|
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:
|
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
Diese Rolle wird regelmäßig gegen folgende Linux-Distributionen getestet:
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
This role manages users and their groups on your system.
ansible-galaxy install rembik.users