Host-Registrierung
Einleitung
Das manuelle Anlegen von neuen Hosts kann in größeren Setups recht mühselig sein. Über die Host Registrierung gibt es die Möglichkeit, neue Hosts automatisch in der WebGUI zu registrieren und den Host direkt in die gewünschten Gruppen und Templates hinzuzufügen. Auf diese Weise können Hosts über Automatisierungstools wie Ansible, Salstack, Puppet oder Chef in der WebGUI registriert werden.
Zusätzlich können bereits eingerichtete Hosts im späteren Verlauf über die Host Registrierung weiteren Templates hinzugefügt und Variablen gesetzt werden.
Einrichtung in der WebGUI
Um eine neue Konfiguration zur automatischen Registrierung einzurichten, klicke dich wie in der folgenden Grafik durch die Menüs:
Nachdem das Formular ausgefüllt und abgesendet wurde, erweitern sich die Konfigurationsmöglichkeiten:
Über die Optionen kann festgelegt werden, zu welchen Gruppen und Templates ein Host automatisch hinzugefügt werden soll, wenn sich der Host registriert. Es können darüber hinaus Template-Tags festgelegt werden, zu denen ein Host automatisch hinzugefügt wird oder bei der Registrierung selbst angegeben werden dürfen.
Registrierung über bloonix-register-host
Ist die Einrichtung abgeschlossen, so können nun neue Hosts in der WebGUI registriert werden. Hierzu verwendest du einfach den Befehl bloonix-register-host. Das Skript benötigt als Argument eine Konfigurationsdatei mit den Daten, welche für eine Registrierung notwendig sind. Die Registrierungsdatei sieht beispielhaft wie folgt aus:
webgui_url https://bloonix-webgui.example
authkey secret
hostname bloonix.example
ipaddr1 127.0.0.1
ipaddr2 127.0.0.2
ipaddr3 127.0.0.3
ipaddr4 127.0.0.4
sysinfo linktext=url
country_code DE
location_class /DC1/Rack410
project_class /Customer/Projectname
tags tag1, tag2, tag3
allow_from ip1, ip2, ip3
variables {
interface.0.name eth0
interface.1.name eth1
}
Mit dem Parameter tags sind die Template-Tags gemeint, zu denen der Host hinzugefügt werden soll.
Nachdem der Host erfolgreich eingerichtet wurde, werden die Authentifizierungsdaten automatisch in der Datei /etc/bloonix/agent/conf.d/host.conf eingetragen und der Agent wird neu gestartet.
Registrierung über cURL
Es ist ebenfalls möglich, die Registrierung über einen cURL Request abzusenden.
curl https://your-webgui.example/register -H 'Content-Type: application/json' -d '{
"authkey": "your-very-long-secret-authkey",
"hostname": "test.example",
"ipaddr1": "127.0.0.1"
}'
Folgende Parameter mit Datentyp sind erlaubt:
Parameter | Datentyp | Bedeutung |
---|---|---|
webgui | String | Die URL zur WebGUI |
authkey | String | Der Authentifizierungsschlüssel |
hostname | String | Der Name des Hosts |
description | String | Eine kleine Beschreibung des Hosts |
ipaddr1 | String | Die 1. IP Adresse des Hosts |
ipaddr2 | String | Die 2. IP Adresse des Hosts |
ipaddr3 | String | Die 3. IP Adresse des Hosts |
ipaddr4 | String | Die 4. IP Adresse des Hosts |
sysinfo | String | Ein Freitextfeld für eine detaillierte Beschreibung |
country_code | String | Der Ländercode zum Standort des Hosts |
location_class | String | Standort des Hosts im PATH Format |
project_class | String | Projektbeschreibung im PATH Format |
tags | List [ ] | Eine Liste mit TAGS der Templates, zu denen der Host hinzugefügt werden soll |
variables | Dict { } | Host Variablen, um Variablen von Templates zu überschreiben |
allow_from | List [ ] | Eine Liste mit IPs und Netzen, von denen aus der Zugriff der Bloonix Agenten zum Bloonix Server erlaubt ist |
Als Rückgabe bei erfolgter Einrichtung erhälst du die ID und das Passwort des Hosts. Das Passwort wird automatisch generiert und ist ein 64-Zeichen langer String.
{
"status": "ok",
"data": {
"host_id": 12345,
"password": "secret"
}
}
Es folgt ein Beispiel mit allen erlaubten Parametern:
{
"authkey": "your-very-long-secret-authkey",
"hostname": "test.example",
"ipaddr1": "127.0.0.1",
"ipaddr2": "127.0.0.2",
"ipaddr2": "127.0.0.3",
"ipaddr2": "127.0.0.4",
"sysinfo": "My first Host registered",
"country_code": "DE",
"location_class": "/DC1/Rack100",
"project_class": "/Bloonix/Project1/Loadbalancer",
"tags": [
"linux",
"postgresql",
"redis",
"nginx",
"port80",
"port443"
],
"variables": {
"ifname.public": "eth0",
"ifname.private": "eth1"
},
"allow_from": [
"127.0.0.0/8",
"::1"
],
}
Aktivierung registrierter Hosts
Nachdem ein Host registriert wurde, kann dieser aktiviert werden.
Vor der Aktivierung hast du zusätzlich noch die Möglichkeit den Host zu überprüfen und ein paar Anpassungen vorzunehmen.
Hosts zu Templates hinzufügen
Nachdem ein Host registriert und aktiviert wurde, ist es möglich den Host zu weiteren Templates hinzuzufügen und Variablen zu setzen. Hierfür ist es notwendig, den Schalter “Host Updates sind erlaubt” zu aktivieren.
Um einen Host weiteren Templates hinzuzufügen ist folgender Aufruf notwendig:
curl https://your-webgui.example/register/host/template/add -H 'Content-Type: application/json' -d '{
"authkey": "your-very-long-secret-authkey",
"host_id": 12345,
"password": "secret",
"tags": ["linux", "mariadb", "redis"],
"variables": {
"mariadb.host": "127.0.0.1",
"mariadb.port": 3306
}
}'
Folgende Parameter mit Datentyp sind erlaubt:
Parameter | Datentyp | Bedeutung |
---|---|---|
authkey | String | Der Authentifizierungsschlüssel |
host_id | Integer | Die ID des Hosts |
password | String | Das Passwort des Hosts |
tags | List [ ] | Eine Liste mit TAGS der Templates, zu denen der Host hinzugefügt werden soll |
variables | Dict { } | Host Variablen, um Variablen von Templates zu überschreiben |
Es ist zu beachten, dass nur Variablen gesetzt werden dürfen, die in den Templates vorhanden sind.