Close

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.