taktus.users
Ansible Rolle: Benutzer
Rolle zur Verwaltung von Benutzern auf einem System.
Rollen-Konfiguration
users_create_per_user_group(Standard: wahr) - Beim Erstellen von Benutzern wird auch eine Gruppe mit demselben Benutzernamen erstellt und diese als primäre Gruppe des Benutzers festgelegt.users_group(Standard: users) - Wennusers_create_per_user_groupnicht gesetzt ist, ist dies die primäre Gruppe für alle erstellten Benutzer.users_default_shell(Standard: /bin/bash) - Die Standard-Shell, wenn für den Benutzer keine angegeben ist.users_create_homedirs(Standard: wahr) - Erstelle Home-Verzeichnisse für neue Benutzer. Setze dies auf falsch, wenn du die Home-Verzeichnisse separat verwaltest.
Benutzer erstellen
Füge eine Benutzer-Variable hinzu, die die Liste der hinzuzufügenden Benutzer enthält. Ein guter Ort dafür ist group_vars/all oder group_vars/groupname, wenn du nur möchtest, dass die Benutzer auf bestimmten Maschinen sind.
Die folgenden Attribute sind für jeden Benutzer erforderlich:
username- Der Benutzername des Benutzers.name- Der vollständige Name des Benutzers (gecos-Feld).home- Das zu erstellende Home-Verzeichnis des Benutzers (optional, Standard: /home/username).uid- Die numerische Benutzer-ID des Benutzers (optional). Dies ist erforderlich für die UID-Konsistenz über Systeme hinweg.gid- Die numerische Gruppen-ID für die Gruppe (optional). Andernfalls wird dieuidverwendet.password- Wenn ein Hash bereitgestellt wird, wird dieser verwendet. Andernfalls wird das Konto gesperrt.update_password- Kann entweder 'always' oder 'on_create' sein.'always'aktualisiert die Passwörter, wenn sie unterschiedlich sind. (Standard)'on_create'setzt das Passwort nur für neu erstellte Benutzer.
group- Optionale Überschreibung der primären Gruppe.groups- Eine Liste von zusätzlichen Gruppen für den Benutzer.append- Wenn ja, werden nur Gruppen hinzugefügt, nicht nur auf die Liste in Groups gesetzt (optional).profile- Ein String-Block zur Festlegung benutzerdefinierter Shell-Profile.ssh_key- Dies sollte eine Liste von SSH-Schlüsseln für den Benutzer sein (optional). Jeder SSH-Schlüssel sollte direkt enthalten und darf keine Zeilenumbrüche haben.generate_ssh_key- Ob ein SSH-Schlüssel für den Benutzer generiert werden soll (optional, Standard: nein).
Darüber hinaus sind die folgenden Elemente für jeden Benutzer optional:
shell- Die Shell des Benutzers. Standardmäßig ist dies /bin/bash. Der Standard kann mit der Variableusers_default_shellkonfiguriert werden, wenn du allen Benutzern dieselbe Shell geben möchtest, die aber anders als /bin/bash ist.is_system_user- AufTruesetzen, um einen Systembenutzer zu erstellen.
Beispiel:
---
users:
- username: foo
name: Foo Bar
groups: ['admin','systemd-journal']
uid: 1005
home: /local/home/foo
profile: |
alias ll='ls -ahl'
ssh_key:
- "ssh-rsa AAAAA.... foo@server"
- "ssh-rsa AAAAB.... foo2@server"
groups_to_create:
- name: developers
gid: 20000
Ein Passwort-Hash generieren:
# Auf Debian/Ubuntu (über das Paket "whois")
mkpasswd --method=SHA-512 --rounds=4096
# OpenSSL (Hinweis: dies erzeugt nur md5crypt. Obwohl besser als Klartext, sollte es nicht als vollständig sicher angesehen werden)
openssl passwd -1
# Python (Passwort- und Salt-Werte ändern)
python -c "import crypt, getpass, pwd; print crypt.crypt('password', '\$6\$SALT\$')"
# Perl (Passwort- und Salt-Werte ändern)
perl -e 'print crypt("password","\$6\$SALT\$") . "\n"'
Benutzer löschen
Die Variable users_deleted enthält eine Liste von Benutzern, die nicht mehr im System sein sollen, und diese werden beim nächsten Ansible-Durchlauf entfernt. Das Format ist dasselbe wie für hinzuzufügende Benutzer, aber das einzige erforderliche Feld ist username. Es wird jedoch empfohlen, auch das Feld uid zur Referenz beizubehalten, damit numerische Benutzer-IDs nicht versehentlich wiederverwendet werden.
Du kannst optional wählen, ob das Home-Verzeichnis und die Mail-Spool des Benutzers mit dem Parameter remove entfernt werden sollen, und die Entfernung von Dateien mit dem Parameter force erzwingen.
users_deleted:
- username: bar
uid: 1003
remove: yes
force: yes
Abhängigkeiten
Keine.
Lizenz
MIT
ansible-galaxy install taktus.users