cans.user-make
cans.user-make
Ansible-Rolle zum Erstellen mehrerer Benutzer auf Ziel-Hosts
Wie funktioniert es?
Jeder zu erstellende Benutzer muss mit einem Element wie folgt definiert werden:
usermake_users:
- name: "johndoe" # verpflichtend
gecos: "John Doe,,," # standardmäßig: weglassen
groups: "sudo,adm" # standardmäßig: weglassen
passwordless_sudo: true # standardmäßig: usermake_sudoer_passwordless
ssh_key_create: false # standardmäßig: true
ssh_key_upload_to_ec2: true # standardmäßig: usermake_ssh_key_upload_to_ec2
ssh_key_download: true # standardmäßig: usermake_ssh_key_download
suoder: true # standardmäßig: usermake_sudoer
system: false # standardmäßig: false
upload_my_key: false # standardmäßig: usermake_upload_ssh_key_to_target
remove: false # standardmäßig: weglassen oder usermake_remove
home_dir: "/home/jdoe" # standardmäßig: usermake_home_base_dir/name
Hier ist die Bedeutung jeder Variablen im Element:
name
: der Anmeldename für den neuen Benutzer;gecos
: die GECOS-Daten, die dem neuen Benutzer zugeordnet werden;groups
: die Liste von Gruppen, zu denen der Benutzer gehören sollte. Die hier aufgeführten Gruppen müssen im Voraus existieren.passwordless_sudo
: wenn auftrue
gesetzt, darf der Benutzer ohne Passwortwechsel die Identität eines anderen Benutzers annehmen;remove
: wenn der Wert des Elements state 'absent' ist, gibt an, ob die vom Benutzer besessenen Dateien entfernt werden sollen, wenn das Konto gelöscht wird (kann langsam sein);ssh_key_create
: ob ein SSH-Schlüsselpaar für den neuen Benutzer generiert werden soll;ssh_key_download
: ob der erzeugte SSH-öffentlich Schlüssel des Benutzers auf einen Ordner auf dem lokalen Rechner heruntergeladen werden soll.ssh_key_upload_to_ec2
: ob der erzeugte SSH-öffentliche Schlüssel des Benutzers in das AWS EC2-Schlüsselverwaltungssystem hochgeladen werden soll.state
: ob der Benutzer mit den Werten 'present' oder 'absent' erstellt oder gelöscht werden soll (Standard: 'present');sudoer
: wenn auf true gesetzt, erhält der Benutzer Sudo-Rechte;system
: ob der Benutzer ein Systembenutzer sein soll (mit niedriger UID-Nummer und deaktiviertem Login);upload_my_key
: ob der lokale SSH-Schlüssel zum Zielhost hochgeladen werden soll.
Alle diese Werte, wenn definiert, überschreiben die standardmäßig im Abschnitt Rollenvariablen definierten Werte.
Was kann diese Rolle nicht tun?
Sie kann Benutzer nicht zu neuen Gruppen hinzufügen, sondern wird die Gruppen des Benutzers mit der angegebenen Liste von Gruppen überschreiben.
Anforderungen
Diese Rolle hat keine speziellen Anforderungen.
Rollenvariablen
Alle Variablennamen, die in dieser Rolle verwendet werden, sind mit dem Präfix usermake_
benannt.
usermake_home_base_dir
: ermöglicht das Übersteuern des Pfades des Verzeichnisses, in dem die Benutzerverzeichnisse erstellt werden (Standard:/home
);usermake_remove
: ob das Benutzerverzeichnis entfernt werden soll, wenn sie gelöscht werden (Standard: false);usermake_ssh_key_create
: ob standardmäßig ein SSH-Schlüsselpaar für die neuen Benutzer erstellt werden soll (Standard: true);usermake_ssh_key_download
: ob die SSH-Schlüssel der erstellten Benutzer lokal heruntergeladen werden sollen;usermake_ssh_key_download_dir
: das Verzeichnis, in dem die heruntergeladenen öffentlichen SSH-Schlüssel gespeichert werden (Standard:{{ playbook_dir }}/collected-keys
);usermake_ssh_key_download_dir_mode
: der Modus des Verzeichnisses, in dem die heruntergeladenen öffentlichen SSH-Schlüssel gespeichert werden (Standard: 0750);usermake_ssh_key_passphrase
: die standardmäßige Passphrase zur Verschlüsselung der SSH-Privatschlüssel. Es wird nicht empfohlen, sich darauf zu verlassen. Passphrasen sollten auf andere Weise bereitgestellt werden (Standard:omit
[keine Passphrase]);usermake_sudoer
: ob die erstellten Benutzer standardmäßig Sudo-Benutzer sein sollten (Standard: false); Hinweis: Bevor Sie einem Benutzer mit dieser Einstellung erhöhte Rechte gewähren, sollten Sie beachten, dass Distributionen ein Sudo-Paket bereitstellen, das bereits einige Privilegien für seine Mitglieder definiert.usermake_system
: ob die erstellten Benutzer standardmäßig Systembenutzer sein sollten (Standard: false);usermake_upload_ssh_key_to_target
: ob der lokale SSH-öffentliche Schlüssel des Benutzers auf den Zielhost hochgeladen werden soll. Nützlich, wenn Sie planen, Aufgaben als dieser Benutzer in den nächsten Aufgaben oder Rollen Ihres Playbooks auszuführen (Standard: true);usermake_upload_ssh_key_file
: wennusermake_upload_ssh_key_to_target
oder der Wertupload_my_key
eines Benutzerelementstrue
ist, verweist auf die Datei, aus der der öffentliche Schlüssel zum Hochladen gelesen werden soll (Standard:~/.ssh/id_rsa.pub
);usermake_user_groups
: die Gruppen, die den erstellten Benutzern standardmäßig zugewiesen werden sollen (Standard:omit
);usermake_users
: die Liste der zu erstellenden Benutzer, definiert mit Elementen wie oben beschrieben (Standard:[]
);
Abhängigkeiten
Diese Rolle hat keine Abhängigkeiten.
Beispiel-Playbook
Erstellen von Benutzern:
- hosts: servers
roles:
- role: cans.user-make
usermake_users:
- name: "alice"
groups: "sudo,adm"
system: "no"
ssh_key_create: "yes"
- name: "bob"
gecos: "Bob no sponge,,,"
system: "yes"
ssh_key_create: true
Löschen von Benutzern:
- hosts: servers
roles:
- role: cans.user-make
usermake_users:
- name: "alice"
state: "absent"
remove: true # Alle Benutzerdateien entfernen
- name: "bob"
state: "absent"
Sie sollten sich auch die Tests in tests/test.yml
ansehen, um viele weitere (hoffentlich umfassende) Anwendungsbeispiele für diese Rolle zu finden.
To-Do
Integrationstests für den AWS-Schlüssel-Upload implementieren.
Lizenz
GPLv2
Autoreninformationen
Copyright © 2017, Nicolas CANIART.
ansible-galaxy install cans.user-make