webofmars.users
ansible-users
Rolle zur Verwaltung von Benutzern auf einem System.
Rollen-Konfiguration
- users_create_per_user_group (Standard: true) - Wenn Benutzer erstellt werden, wird auch eine Gruppe mit dem gleichen Benutzernamen erstellt und diese wird zur primären Gruppe des Benutzers gemacht.
- users_group (Standard: users) - Wenn users_create_per_user_group nicht gesetzt ist, ist dies die primäre Gruppe für alle erstellten Benutzer.
- users_default_shell (Standard: /bin/bash) - die Standard-Shell, wenn keine für den Benutzer angegeben ist.
- users_create_homedirs (Standard: true) - Erstellt Home-Verzeichnisse für neue Benutzer. Setzen Sie dies auf false, wenn Sie Home-Verzeichnisse separat verwalten.
Erstellen von Benutzern
Fügen Sie eine Variable "users" hinzu, die die Liste der hinzuzufügenden Benutzer enthält. Ein guter Ort, diese zu platzieren, ist in group_vars/all
oder group_vars/groupname
, wenn Sie möchten, dass die Benutzer nur 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 Home-Verzeichnis des Benutzers, das erstellt werden soll (optional, Standard ist /home/username)
- uid - Die numerische Benutzer-ID für den Benutzer. Dies ist erforderlich für die Konsistenz der UIDs zwischen den Systemen.
- gid - Die numerische Gruppen-ID für die Gruppe (optional). Andernfalls wird die uid verwendet.
- password - Wenn ein Hash bereitgestellt wird, wird dieser verwendet, andernfalls wird das Konto gesperrt.
- update_password - Dies kann entweder 'always' oder 'on_create' sein
- 'always' aktualisiert Passwörter, wenn sie unterschiedlich sind. (Standard)
- 'on_create' setzt das Passwort nur für neu erstellte Benutzer.
- group - optionale Übersteuerung der primären Gruppe
- groups - eine Liste von zusätzlichen Gruppen für den Benutzer.
- profile - ein String-Block zum Festlegen von benutzerdefinierten Shell-Profilen
- ssh_authorized_keys - Dies sollte eine Liste von SSH-Schlüsseln für den Benutzer sein. Jeder SSH-Schlüssel sollte direkt enthalten sein und keine Zeilenumbrüche haben.
Darüber hinaus sind die folgenden Punkte für jeden Benutzer optional:
generate_ssh_key - Ob ein SSH-Schlüssel für den Benutzer generiert werden soll (optional, Standard ist nein).
ssh_priv_key - privater SSH-Schlüssel des Benutzers (RSA-Format)
shell - Die Shell des Benutzers. Standardmäßig ist dies /bin/bash. Der Standardwert kann über die Variable users_default_shell konfiguriert werden, wenn Sie allen Benutzern die gleiche Shell zuweisen möchten, aber es ist anders als /bin/bash.
Beispiel:
---
users:
- username: foo
name: Foo Barrington
groups: ['wheel','systemd-journal']
uid: 1001
home: /local/home/foo
profile: |
alias ll='ls -lah'
ssh_authorized_keys:
- "ssh-rsa AAAAA.... foo@maschine"
- "ssh-rsa AAAAB.... foo2@maschine"
ssh_priv_key: |
-----BEGIN RSA PRIVATE KEY-----
Schlüsselinhalt <...>
-----END RSA PRIVATE KEY-----
groups_to_create:
- name: developers
gid: 10000
users_deleted:
- username: bar
name: Bar Benutzer
uid: 1002
Benutzer löschen
Die Variable users_deleted
enthält eine Liste von Benutzern, die nicht mehr im System sein sollten, und diese werden beim nächsten Ansible-Lauf entfernt. Das Format ist das gleiche 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.