Da ich jetzt seit zwei Jahren auch beruflich unter und mit Linux arbeite, kommt mir natürlich auch Ansible unter die Finger. Mit Ansible (siehe erster Link, eine kurze erste Anleitung auf der Linux Bibel) lassen sich Dinge unter Linux viel einfacher managen – vor allem die Administrierung mehrerer Hosts. Bei diesen Hosts muss es sich aber nicht unbedingt um Linux handeln – mit Ansible lässt sich so gut wie jedes Betriebssystem und jede Hardware administrieren. Im Grunde muss man dazu nicht einmal Linux, ein anderes Betriebssystem oder die jeweilige Hardware kennen oder verstehen – man muss nur Ansible verstehen.
Mit welchen Betriebssystemen und mit welcher Hardware Ansible umgehen kann, erfahren Sie unter Ansible Docs – nur um einmal zu verstehen, welche Macht man mit dieser freien Software hat. Hier nur einmal ein kurzer Auszug:
- Amazon AWS
- Windows
- Linux
- Arista
- AWX
- Azure
- Checkpoint
- Cisco
- Cloudscale
- Podman
- Docker
- MongoDB
- MySQL
- PostgreSQL
- SAP
- VMWare
- Zabbix
- Dell
- Fortinet
- Google Cloud
- HPE
- IBM
- Kubernetes
- NetApp
- OpenStack
Wie gesagt – hierbei handelt es sich nur um einen kurzen Auszug. Grundsätzlich können Sie mit Ansible alles machen. Ein Nachteil für manche User, mit Ansible arbeitet man grundsätzlich am Terminal – den Texteditor und das Erlernen von Ansible kann man nicht weglassen, das Terminal hingegen schon. Es gibt unterschiedliche grafische Oberflächen für Ansible – einige kosten natürlich Geld – und gar nicht so wenig, für manche kann man sich im Jahr schon ein recht teures neues Auto kaufen. Semaphore ist freie Software und kostenlos, lässt sich mittels Docker oder Podman einfach installieren.
Semaphore UI installieren
Sie können Semaphore via Docker / Podman installieren – siehe GitHub, oder Sie nutzen einfach das Debian-Paket von Semaphore. Jetzt installieren Sie das heruntergeladene Paket per Mausklick – besser als root am Terminal:
apt update
apt ansible ansible-core
cd Downloads/
apt install ./semaphore...
Was Sie noch benötigen, ist eine Datenbank – etwa MariaDB. Hier erstelle ich jetzt schnell eine Datenbank für Semaphore – als root am Terminal:
mysql
CREATE DATABASE semaphore;
CREATE USER 'semaphore'@'%' IDENTIFIED BY 'PASSWORT';
GRANT ALL PRIVILEGES ON semaphore.* TO 'semaphore'@'%';
FLUSH PRIVILEGES;
QUIT;
„PASSWORT“ ersetzen Sie natürlich durch ein sicheres. Anschließend starten Sie als normaler Benutzer das Setup von Semaphore am Terminal:
semaphore setup
Sie wählen die Datenbank – im Beispiel also MySQL (MariaDB) mit der 1. Es folgt der Host der Datenbank mit dessen Port. Standardmäßig:
db Hostname (default 127.0.0.1:3306):
Also localhost, alternativ geben Sie einfach die IP-Adresse und den Port an. Es folgt der Benutzer der Datenbank – in meinem Beispiel als semaphore
und das Passwort, sowie der Name der angelegten Datenbank – also wieder semaphore
. Jetzt geben Sie das Verzeichnis mit den Playbooks an – in meinem Beispiel „/home/robert/Projekte/Ansible/„. Die Adresse, unter der die Software im Browser erreichbar sein soll – in meinem Beispiel einfach „http://localhost/semaphore„. Zuletzt fragt die Software noch ab, ob Sie Alarmmeldungen über diverse Dienste erhalten möchten – entsprechende Accounts müssen natürlich vorhanden sein.
Jetzt wird noch ein Benutzername angelegt, Ihre E-Mail-Adresse und Ihr richtiger Name, sowie ein zugehöriges Passwort zum Anmelden:
Jetzt sehen Sie auch, wie Sie die Software starten können – im Beispiel:
semaphore server --config /home/robert/config.json
In meinem Fall habe ich festgestellt – Sie sollten die URL nicht anpassen, die lässt sich nach der Konfiguration in der Datei „.config.json“ in Ihrem Home-Verzeichnis anpassen (Webseite war leer – wahrscheinlich lässt sich die Seite mit der URL nur von einem entfernten Server öffnen), die URL einfach entfernen oder eben entsprechend anpassen. Geöffnet mit der Adresse „localhost:3000„.
Jetzt melden Sie sich mit dem erstellten Benutzernamen und dem zugehörigen Passwort ein:
Zu Beginn erstellen Sie natürlich ein Erstes Projekt – jetzt landen Sie in der eigentlichen GUI:
Anschließend sollten Sie den Schlüsselspeicher einrichten – also die Zugangsdaten für die Hosts:
Hier können Sie einen SSH-Key nutzen oder ganz einfach und schlicht Benutzername und Passwort. Weiter geht es mit dem Inventar – hier landen die zu administrierenden Hosts aller Art:
Über die Repositorys geben Sie jetzt die Ansible-Scripte an, diese können Sie über ein lokales Verzeichnis angeben, über Git – siehe etwa Gogs oder GitLab, per SSH oder mit weiteren Möglichkeiten in die Software ziehen:
Haben Sie alle Einstellungen vorgenommen, lassen Sie die Aufgaben über die GUI laufen, ohne je wieder das Terminal zu nutzen.
Noch keine Reaktion