Saltstack
  • Willkommen
  • Einführung
  • Testumgebung
    • Salt-Master öffentlicher FQDN
  • Salt installieren
    • Minions und Master "verheiraten"
  • Salt Module
    • Beispiel Benutzer anlegen
    • Dateien hin und her kopieren
  • Salt States
    • Yaml verstehen
    • Editoren anpassen
    • Beispiel Benutzer verwalten
    • Abhängigkeiten
    • Dateien editieren
    • Shell Kommandos
    • Beispiel Caddy Webserver
  • Linter
  • Minions adressieren
    • Grains
    • Hostgruppen - Node Groups
  • Jinja
    • Beispiel Caddy PHP
  • top.sls
  • Output
  • Pillars
    • Hosts Pillars
    • GPG
    • Vault
    • Datenbanken
    • Beispiel Benutzerverwaltung
  • Salt-Mine
  • Eigene Module erstellen
  • Orchestrierung
  • Returner & Job-Cache
  • Salt SSH
  • Salt API
  • Salt Cloud
    • Hinweise und Fallen
    • KVM und Libvirt
    • Scaleway
    • Digitalocean
    • Hetzner Cloud
    • eigene Deploymentscripte
    • Dynamische Portforwarding
    • Keys automatisch aufräumen
    • Start Aktionen
  • GIT
    • Alternative CD
  • Salt Reactor
  • Salt für Windows
    • Software ohne Repository installieren
    • PowerShell
    • Chocolatey Paktemanager
    • Lokales Logon Skript
    • Software Repository
  • Beispiele
    • Restic Backup
    • Apache Web-Proxy
    • Wartungstunnel
    • Unattended Upgrades
  • Salt & Etcd
  • Salt ACS
Powered by GitBook
On this page
  • Pillar anlegen
  • User per State ausrollen
  1. Pillars

Beispiel Benutzerverwaltung

Benutzer zentral in Pillars verwalten

Pillar anlegen

/srv/pillar/users.sls
#
# All users of the following list will be created if not present
#
users_present:
  thorsten.kramm:
    firstname: Thorsten
    lastname: Kramm
    sudo: True
  max.mustermann:
    firstname: Max
    lastname: Mustermann
    sudo: False
#
# Delete users
#
users_absent:
  - mausi

User per State ausrollen

/srv/salt/users/init.sls
sudo:
  pkg.installed: []

#
# Iterate over all users-present from the pillar and create users if needed
#
{% for username,user in pillar['users_present'].items() %}
{{ username }}-group:
    group.present:
      - name: {{ username }}

{{ username }}:
  user.present:
    - fullname: {{ user['firstname'] }} {{ user['lastname'] }}
    - shell: /bin/bash
    - home: /home/{{ username }}
    - createhome: true
    - system: false
    - groups:
      - {{ username }}
    - require:
      - group: {{ username }}-group

#
# Deploy the public SSH Key of the user
#
{{ username }}-key:
  ssh_auth.present:
    - user: {{ username }}
    - source: salt://users/ssh-keys/{{ username }}.pub
    - require:
      - user: {{ username }}

#
# Create or remove sudo file
#
{% if user['sudo'] == True %}
/etc/sudoers.d/{{ username|replace(".", "_") }}:
  file.managed:
    - contents: {{ username }} ALL=(ALL) NOPASSWD:ALL
    - mode: 0440
    - user: root
    - require:
      - pkg: sudo
      - user: {{ username }}
{% else %}
/etc/sudoers.d/{{ username|replace(".", "_") }}:
  file.absent: []
{% endif %}
{% endfor %}

{% if pillar['users_absent'] is defined %}
{% for absent_user in pillar['users_absent'] %}
#
# Delete the user
#
{{ absent_user }}-absent:
    user.absent:
      - name: {{ absent_user }}
      - purge: True
      - force: True
#
# Delete the sudoers entry
#
/etc/sudoers.d/{{ absent_user }}-absent:
  file.absent:
    - name: /etc/sudoers.d/{{ absent_user }}
{% endfor %}
{% endif %}

Beachten Sie {{ username|replace(".", "_") }}in Zeile 38. Sudo-Dateien dürfen keine Punkte im Dateinamen enthalten.

PreviousDatenbankenNextSalt-Mine

Last updated 5 months ago