Betriebsplattform der ITKom der Pfadibewegung Schweiz

Tractor

Automation

Dieses Dokument beschreibt die Möglichkeiten, die Betriebsplattform der PBS automatisiert zu verwalten.

Ziel ist, dass die Plattform möglichst wenig manuelle Eingriffe benötigt, um zu funktionieren und eine Single Source of Truth für alle Projekte, User und Konfigurationen hat.

VMs & Object Storage

VMs können bei Infomaniak über die Public Cloud (OpenStack) bezogen werden.

OpenStack kann sowohl mit den OpenStack eigenen Heat-Template als auch mit Terraform deklarativ verwaltet werden.

Als dritte Möglichkeit gibt es auch ein Ansible OpenStack modul: https://docs.ansible.com/ansible/latest/collections/openstack/cloud/index.html

Vor und Nachteile der beiden Ansätze:

OpenStack HeatTerraformAnsible
Native Konfigurationsspache => Neue Features sofort verfügbar, Potentiall mehr Abdeckung aller funktionen.Kann mittels “Providern” auf unterschiedlichen Clouds genutzt werden.Kann sowohl für das Provisioning als auch für die Konfiguration der VMs selbst genutzt werden.
Keine Abhängigkeiten zu externen ToolsKein einlernen in anders Tooling erforderlich sollte die Platform mal wechselnArbeitet nicht deklarativ
Usage Knowledge kann auch für andere Projekte weitergenutzt werdenIst eher für den Betrieb von OpenStack und nicht das nutzen der Plattform gedacht.

Meine Empfehlung wäre wohl Heat zu nutzen, da wir keine gemischte Cloud-Umgebung haben und die Plattform in absehbarer Zeit auch nicht wechseln werden.

Ansible für Infomaniak

Zusätzlich zu den obengenannten Tools, gibt es auch die möglichkeit, die VMs mittels Ansible zu konfigurieren. (https://galaxy.ansible.com/ui/repo/published/linuxfabrik/lfops/content/role/infomaniak_vm/)

Ich empfehle das jedoch nur bedingt, da wir dann wieder ein weiteres Tool haben, welches wir lernen und warten müssen.

Kubernetes

Kubernets kann mittels https://docs.infomaniak.cloud/documentation/tutorials/06.kubernetes/02.install/ auf der Infomaniak Cloud installiert werden.

Kubernetes hat per Design config as code und eine Api. Darauf wird hier nicht weiter eingegangen.

Infomaniak Resource Management

Leider ist die Infomaniak API ein wenig enttäuschend und eingeschränkt. Weder kann man User verwalten (man kann sie bloss lesen) noch kann man Domains oder Jelastic Clouds verwalten.

Das einzige was da Automatisierbar wäre, ist das erstellen von Public Clouds/OpenStack Instanzen und Projekten.

Unter umständen wäre es interessant, eigene Ansible-Module zu schreiben, welche die API nutzen. (Allenfall swäre dieses Repo ein Startpunkt: https://github.com/ogrnz/infomaniakclient)

Interessant (dies allenfalls auch in Auftrag zu geben) wäre das aber erst, wenn zumindest die User ebenfalls automatisiert verwaltet werden können.

Ebenfalls interessant könnte eine Verknüpfung des IT-Landscape Tools mit der Infomaniak API sein, um die Infrastruktur zu visualisieren und für eingelogget User gleich die Credentials etc anzuzeigen.