freehck.user-func

user-func

Die Rolle user-func zielt darauf ab, Benutzer auf funktionale Weise zu konfigurieren: Die Benutzerkonfiguration wird genau gleich sein, wie sie in der Konfiguration beschrieben ist, und es garantiert keine Nebenwirkungen.

Beschreibung

Die Rolle ist so geschrieben, dass der Hauptzugangspunkt zur Konfiguration nicht die Maschine, sondern der Benutzer ist. Das heißt, wir wollen keinen Benutzer auf der Maschine erstellen, sondern dem Benutzer den Zugang zu bestimmten Maschinen gewähren.

Sie können:

  • Ihre Benutzerdatenbank für öffentliche Schlüssel verwalten
  • Mehrere Schlüssel für einen Benutzer festlegen
  • Benutzer löschen (die Home-Verzeichnisse werden nicht entfernt)
  • Passwortauthentifizierung sperren/entsperren
  • Lokale Konfiguration pro Host oder Ansible-Gruppe von Hosts festlegen

Rollenvariablen

Die Parameter sind in globale und lokale unterteilt. Wenn der Parameter lokal für den Host (im Host-Wörterbuch) beschrieben ist, wird der globale Parameter verwendet. Wenn der globale Parameter nicht beschrieben ist, wird der Standardwert verwendet.

username: Erforderlich, gibt den Benutzernamen auf der Maschine an.

hosts: Pflichtparameter, definiert die Liste von Hosts, auf die der Benutzer Zugriff hat und deren lokale Konfiguration.

give_sudo: Die sudo/wheel-Gruppe wird aufgrund ihrer außergewöhnlichen Bedeutung in einen separaten Parameter übernommen. Dieser Parameter bestimmt, ob der Benutzer das Recht hat, sudo zu verwenden oder nicht. Kann in der lokalen Hostkonfiguration verwendet werden. Standardwert: Nein.

password: Legt das Passwort für den Benutzer fest. Kann in der lokalen Konfiguration verwendet werden.

lock_password: Legt die Passwortsperre fest. Wenn auf ja gesetzt, ist es dem Benutzer nicht gestattet, das Passwort einzugeben (im Schatten wird '*' gesetzt). Kann lokal verwendet werden. Standardwert: Nein.

disable_user: Sperrt das Login für den Benutzer. Wenn auf ja gesetzt, ist der Zugang unter dem angegebenen Benutzer einschließlich ssh nicht möglich (die Standard-Shell wird auf nologin gesetzt). Kann lokal verwendet werden. Standardwert: Nein.

delete_user: Löscht den Benutzer (aber nicht dessen Home-Verzeichnis). Kann lokal verwendet werden. Standardwert: Nein. Vorsicht bei der Verwendung, besser nicht verwenden - disable_user ist die bevorzugte Option.

shell: Gibt die Shell für den Benutzer an. Kann lokal verwendet werden. Standardwert ist /bin/bash.

ssh_public_keys: Liste von Objekten mit den Feldern name, fullname (optional) und key. Es handelt sich um eine Basis mit allen bekannten Schlüsseln, damit sie nach Namen verwaltet werden können.

authorized_keys: Liste von Namen aus der ssh_public_keys-Datenbank. Mit diesem Namen im Namensfeld eines Objekts in der Datenbank wird sein Schlüssel zu .ssh/authorized_keys hinzugefügt. Kann lokal verwendet werden. Standardwert: [].

common_groups: Ein ausschließlich globaler Parameter. Gibt Gruppen an, die für alle Hosts, auf denen der Benutzer erstellt wird, gemeinsam sind. Empfohlen wird die Einstellung ["users"], Standardwert: []. Fügen Sie hier kein sudo hinzu. Dafür gibt es give_sudo.

groups: Ein ausschließlich lokaler Parameter. Gibt Gruppen an, die zu common_groups auf diesem bestimmten Host hinzugefügt werden. Fügen Sie hier kein sudo hinzu. Dafür ist give_sudo da.

Beispiel 1 (kurz)

manage-users.yml

- hosts:
    - all
  become: yes
  become_user: root
  vars_files:
    - vars/ssh_public_keys.yml
  vars:
    common_groups: [ users ]
  roles:

    - tags: [ admins, freehck ]
      role: user-func
      username: freehck
      give_sudo: yes
      authorized_keys: [ freehck ]
      hosts:
        - host: all

    - tags: [ special, jenkins ]
      role: user-func
      username: jenkins
      authorized_keys: [ jenkins, jenkins-slave01, jenkins-slave02 ]
      hosts:
        - host: all
        - host: jenkins-slave01
          groups: [ docker ]

    - tags: [ testers, tester ]
      role: user-func
      username: tester
      authorized_keys: [ tester ]
      hosts:
        - host: stand01
        - host: stand02
        - host: db01

vars/ssh_public_keys.yml

ssh_public_keys:
  - name: freehck
    fullname: Dmitrii Kashin
    key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDPSD4/7GDGnHuFr/p/ZmDoW0RZ/3bHvoI/s5WwOpARJuqgnzj2CyfiPxkKzvCuncUq8O8FfjnAyyj7pEIV2MSEQnxzoFDfcJHRH4sw68TLlGENUvQjtTqrZQ2fyZ6Nu7dktq4A3aOxV0rVZa2oJMA1V1LFj5y9u9B4Sj1pSuY0HkAF1XHJDyBQUs8ncrBkwakqCw0wKI7aLC6tph4whFzJqs8LSnwrR6kMMyVC2xjaw8vczM1wcYVfc6lPN7tWJTH3GrjQRdEYEJo3VqInoiQ9OKb171fMrp9N1u6a88ffTDdX3Jlgm8MRSItuGkdJ9tNXke/hq7GuKmavx7sMf34d freehck

  - name: jenkins
    key: ...

  - name: jenkins-slave01
    key: ...

  - name: jenkins-slave02
    key: ...

Beispiel 2 (mit allen möglichen Optionen)

- role: user-func
  username: freehck # erforderlich
  give_sudo: no
  password: "mysecret"
  lock_password: no
  disable_user: no
  delete_user: no
  shell: "/bin/bash"
  common_groups: [ "users" ]
  authorized_keys: [ key_name, ... ]
  ssh_public_keys:
    - name: freehck
      fullname: Dmitrii Kashin
      key: <public-key>
  hosts: # erforderlich
    - host: host-or-inventory-group # erforderlich
      give_sudo: yes
      password: "mysecret"
      lock_password: no
      disable_user: no
      delete_user: no
      shell: "/bin/zsh"
      groups: [ "vboxusers" ]
      authorized_keys: [ key_name, ... ]
    - host: host-or-inventory-group
      ...

Lizenz

GPLv3+

Autoreninfo

Diese Rolle wurde von Dmitrii Kashin aka freehck geschrieben.

Über das Projekt

manage user functionally

Installieren
ansible-galaxy install freehck.user-func
GitHub Repository
Lizenz
Unknown
Downloads
6.1k
Besitzer