[Admin] Puppet und Benutzerverwaltung

Hi,

Stefan und ich haben uns gerade kurz über die Benutzerverwaltung mittels
Puppet unterhalten. Da evtl. noch das ein oder andere unklar ist, hier kurz
ein Thread dazu.

Was wir brauchen ist:
* Ein Benutzer pro Admin
* Pro Benutzer individueller SSH-Key
* Pro Benutzer individueller Nickname
* Möglichkeit festzulegen ob der Benutzer root darf oder nicht
* Allgemein Benutzer hinzufügen
* Allgemein Benutzer entfernen

Die Daten dazu werden in folgender Datei in users_and_ssh_keys definiert:
https://git.nordwest.freifunk.net/ffnw-server/puppet/blob/master/hieradata/
common.yaml

Angewendet wird das ganz in der Klasse ffnwbase in folgender Datei:
https://git.nordwest.freifunk.net/ffnw-server/puppet/blob/master/modules/
ffnwbase/manifests/init.pp

Wenn ich das jetzt richtig sehe, braucht es neben den Daten sowie der
ffnwbase-Klasse kein weiteres spezielles Benutzermodul. Das einzige was mir
nicht ganz klar ist ist wie nach der erstmaligen initialisierung weitere
Benutzer hinzugefügt oder bestehende Benutzer wieder entfernt werden. Kann
mich da jemand aufklären?

Viele Grüße
Clemens

Benutzer hinzufügen ist relativ simpel. In dem man die config erweitert.
Der Benutzer wird dann einfach automatisch beim nächsten Intervall des
betreffenden puppet clients eingerichtet. Entfernen eines Benutzers muss
händisch erfolgen. Sowas kann puppet nicht.
Auch ein reboot muss manuell erfolgen wenn z.b. der hostname geändert
wird das übernimmt puppet nicht.

vg
Tarek

Das sollte ja nicht das problem da sein - im Endeffekt benötigen wir
dann kein gesondertes Modul sondern kommen mit den Grundfunktionalitäten
klar!

Benutzer hinzufügen ist relativ simpel. In dem man die config erweitert.
Der Benutzer wird dann einfach automatisch beim nächsten Intervall des
betreffenden puppet clients eingerichtet.

Top!

Entfernen eines Benutzers muss händisch erfolgen. Sowas kann puppet nicht.

Das wäre blöd. Was meinst du zu folgender Konstruktion um Benutzer zu
entfernen?

user { 'k':
  ensure => absent,
}

http://www.bogotobogo.com/DevOps/Puppet/
puppet_creating_managing_user_accounts_ssh_control_user_privileges.php

Entfernt allerdings nicht das Homedir, wobei das evtl. auch nicht schlimm ist.
Dafür kann man ja später mal einen Cleanup-Job schreiben.

Auch ein reboot muss manuell erfolgen wenn z.b. der hostname geändert
wird das übernimmt puppet nicht.

Reboot kann ich nachvollziehen. Das Ändern des Hostnames kann aber auch ohne
Reboot erfolgen:
# hostnamectl set-hostname <hostname>
# systemctl restart networking
müsste reichen. Oder braucht Puppet zwingend einen Reboot bei
Hostnameänderung?

Viele Grüße
Clemens

Ich kann dir da jetzt irgendwie nicht folgen was willst du damit sagen?

Ich hatte heute morgen kurz mit Clemens geredet - er war der Annahme das
wir noch ein Benutzermodul benötigen - wir haben aber jetzt schon in der
common.yaml die Admins und Keys hinterlegt. Hier gibt es auch noch eine
Version die wir geändert hatten, wo Simon und ich hinterlegt sind. Soll
ich diese eben ins Git pushen?

Jo kannst du ansich machen. Wobei viel interresanter wäre doch das was
eike geschrieben hat. Wie haben wie gesagt bereits sämpliche basis
module fertig. Die frage ist nur wie wollen wir die configverwaltung
machen? Eike hatte dazu eine sehr ausführliche Mail geschrieben.

Hi,

Jo kannst du ansich machen. Wobei viel interresanter wäre doch das was
eike geschrieben hat. Wie haben wie gesagt bereits sämpliche basis
module fertig. Die frage ist nur wie wollen wir die configverwaltung
machen? Eike hatte dazu eine sehr ausführliche Mail geschrieben.

zu dem Thema hatte ich mir auch schon meine Gedanken gemacht.
Die Frage ist, wie eingebunden Eike derzeit ist und ob im ersten Setup
diese Funktionialität mit der "hieradata" schon enthalten sein muss.

Wir könnten dies doch auch später noch umstellen und uns dadurch das
Setup im nachhinein vereinfachen, oder?

Aktuell ist es ja wichtig, dass wir die aktuelle Situation entspannt
bekommen.

Und wie soll die configuration von puppet sonst erfolgen ?

vg
Tarek

Hi,