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
On 02/22/16 11:13, Clemens John via Admin wrote:
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?
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!
Am 22.02.2016 um 11:46 schrieb Jan-Tarek Butt via Admin:
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.
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?
Am 22.02.2016 um 12:08 schrieb Jan-Tarek Butt via Admin:
Ich kann dir da jetzt irgendwie nicht folgen was willst du damit sagen?
On 02/22/16 12:12, Stefan wrote:
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?
Am 22.02.2016 um 12:08 schrieb Jan-Tarek Butt via Admin:
Ich kann dir da jetzt irgendwie nicht folgen was willst du damit sagen?
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,
Am 22.02.2016 um 12:18 schrieb Jan-Tarek Butt via Admin:
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.
On 02/22/16 12:28, Stefan wrote:
Hi,
Am 22.02.2016 um 12:18 schrieb Jan-Tarek Butt via Admin:
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,
Am 22.02.2016 um 12:34 schrieb Jan-Tarek Butt via Admin:
Und wie soll die configuration von puppet sonst erfolgen ?
derzeit werden die Module doch in der Config aufgeführt. Hieradata würde ja "nur" bedeuten, das mehrfache Einträge nicht mehr nötig sind.
Wie lange würde den die gesamte Umschreibung der Module (insbesondere von Simon) dauern?
Am Montag, 22. Februar 2016, 11:46:01 CET schrieb Jan-Tarek Butt via Admin:
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