Hallo ihr lieben,
ich habe auf Arbeit ein Thema bei dem ich gerne das Feedback und auch Inspiration anderer suche. Ich habe die Aufgabe u.a. Linux Systeme bereitzustellen für unsere Kollegen.
Derzeit ist der Weg dieser:
Ich habe eine Vorlage in VMWare erstellt. Diese beinhaltet ein "fertiges" System.
Sprich es ist ein Ubuntu 22.04 LTS
auf dem bereits Ubuntu Pro aktiviert ist.
der Systembenutzer angelegt und Konfiguriert ist
die sshd Konfiguration passt
die netplan vorbereitet ist
Eine Netplan file in der dann für statisch oder Dynamisch auskommentiert oder ein kommentiert werden kann, je nach Netz
Beim ersten Boot wird ein Service gestartet, der den Hostnamen dynamisch generiert, sodass ich bei mehreren VMs keine zwei gleichen DNS-Namen habe
Partitionen angelegt und eingerichtet
Der zweite Schritt ist, dass ich mit Ansible das System passend konfiguriere:
Beispiel: Es wird ein System benötigt auf dem ein Nginx Reverse Proxy installiert ist der http / https anfragen an Docker weiter leitet. Weiterhin sollen Benutzer: Eins, Zwei und Drei lokalen Zugriff haben. Eins und Zwei normale Benutzer, Drei darf sudo verwenden
Jetzt habe ich ein Ansible Playbook, welches ich genau für dieses System fertig mache. Dazu habe ich auch eine Vorlage erstellt. In dem Playbook muss ich am Ende nur hostnamen und Benutzernamen eintragen.
Der Rest (die rollen) werden dann einfach drangehängt:
Also venv-salt-minion installieren und aktivieren (uyuni als Patchmanagement),
docker installieren und konfigurieren,
nginx installieren und Konfigurieren,
hostnamen vom System ändern
etc.
Das ganze dauert für mich am Ende keine 20 Minuten. Dann ist ein neues System hochgezogen. Reproduzierbar. Also wenn man eine Kopie davon braucht ziehe ich es schnell wieder hoch. Ziel ist es, eine Playbook File zu haben in der auch eine Art Dokumentation steht, logisch: Durch die Tasks sehe ich genau was an dem System gemacht wurde etc.
Jetzt würde mich interessieren wie andere das machen oder ob jemand Ideen hat wie ich mich verbessern könnte bei der Aufgabe.
Uyuni unterstützt auch Kickstart Files, Terraform wäre eine Option, CloudInit auch aber mit keinem habe ich Erfahrungen.
Was sagt ihr dazu? Habt ihr Tipps, Ideen wie ich es besser oder effizienter machen kann?
Wie ist der Weg bei euch?
Liebe Grüße