cans.user-make

cans.user-make

Build-Status Ansible-Galaxy Lizenz

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 auf true 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: wenn usermake_upload_ssh_key_to_target oder der Wert upload_my_key eines Benutzerelements true 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.

Über das Projekt

Simple Role to create a given list of users

Installieren
ansible-galaxy install cans.user-make
GitHub Repository
Lizenz
gpl-2.0
Downloads
149
Besitzer