kso512.checkmk_server
checkmk_server
Ein Ansible Role zur Installation der CheckMK RAW Edition und zur Einrichtung einer initialen Site.
Dies ist ein kompletter Neuanfang der install-check_mk-server Rolle, die ich jahrelang erstellt und gepflegt habe, verursacht durch Änderungen in CI/CD und Namenskonventionen in Ansible Galaxy & CheckMK.
Alle Aufgaben sind mit checkmk-server
gekennzeichnet.
Ich empfehle NICHT die Standardkonfiguration für ungeschützte Verbindungen direkt zum Internet, da die Serverkonfiguration unverschlüsselten HTTP-Zugriff umfasst.
Die folgenden Distributionen wurden automatisch getestet:
- Debian 10 "Buster"
- Debian 11 "Bullseye"
- Debian 12 "Bookworm"
- Ubuntu 20.04 LTS "Focal Fossa"
- Ubuntu 22.04 LTS "Jammy Jellyfish"
- Ubuntu 24.04 LTS "Noble Numbat"
Zur Erklärung steht „OMD“ unten für die Open Monitoring Distribution, die ein Vorgänger der CheckMK RAW Edition ist. Diese "omd" Befehle wurden für die Abwärtskompatibilität beibehalten.
Aktuelle Versionsmatrix
CheckMK Raw Edition Version | Rollen Version/Tag |
---|---|
2.3.0p13 | 1.0.88 |
2.3.0p12 | 1.0.87 |
2.3.0p11 | 1.0.86 |
2.3.0p10 | 1.0.85 |
2.2.0p9 | 1.0.84 |
Anforderungen
Wenn der Server eine Firewall aktiviert hat, muss diese möglicherweise geändert werden, um eingehende Pakete an TCP-Port 80 für den Zugriff auf das Webportal und/oder TCP-Port 514 sowie UDP-Ports 162 & 514 für den Eingangsbereich (Syslog) zuzulassen.
Wie bei jeder modernen Linux-Installation kann SELinux eine Rolle spielen.
Zur Erfüllung dieser Anforderungen empfehle ich die Verwendung einer anderen Ansible-Rolle.
Pflege (Updates und veraltete Versionen)
Obwohl diese Rolle die neueste stabile Version von CheckMK installiert, wendet sie keine Update-Befehle auf bestehende Installationen an. Dies dient dazu, Produktionssites nicht zu stören und eine Überwachung der Upgrades zu ermöglichen.
Die folgenden Schritte können befolgt werden, um ein Upgrade auf einer Site namens "test" nach dem Ausführen eines neueren Updates dieser Rolle durchzuführen; ändern Sie "test" in den Namen der Site, die Sie aktualisieren möchten:
- Werden Sie zum Benutzer "test":
sudo omd su test
- Stoppen Sie die Site "test":
omd stop
- Aktualisieren Sie die Site "test"; um diesen Schritt abzuschließen, müssen Sie auch mit der Textschnittstelle interagieren:
omd update
- Starten Sie die Site "test":
omd start
Wenn Sie viele Sites aktualisieren müssen, kann die folgende Einzeiler helfen. Ändern Sie einfach die site
Variable nach Bedarf:
site=test ; sudo omd stop $site ; sudo omd update $site ; sudo omd start $site
Für die Mutigen erlaubt der omd
Befehl vollständig automatisierte Upgrades, die dann über Ansible wie folgt ausgeführt werden können (für eine bestimmte Gruppe hq-cmk
in der testing.ini
Inventardatei, eine Site namens test
und mit einem Upgrade auf die Version 2.2.0p12
in diesem Beispiel):
ansible hq-cmk -b -i testing.ini -m shell -a "site=test ; omd stop $site ; omd -f -V 2.2.0p12.cre update --conflict=install $site ; omd start $site" -vvvv
Ältere Versionen bleiben in den Systemen von dieser Rolle zurück, und es liegt am Administrator, unbenötigte Versionen zu entfernen. Verwenden Sie diesen Befehl, um alle unbenötigten CheckMK-Versionen zu entfernen: sudo omd cleanup
Rollenvariablen
Einige dieser Variablen scheinen möglicherweise redundant zu sein, sind jedoch angegeben, damit zukünftige Benutzer sie nach Bedarf mit lokalen Variablen überschreiben können.
Tabelle der Variablen, die für alle Distributionen gelten (mit Standardeinstellungen)
Variable | Beschreibung | Standard |
---|---|---|
checkmk_server_adminpw | Passwort für den Benutzer cmkadmin , der für die Testseite erstellt wurde; Wenn es leer gelassen wird, kann das Passwort für diesen Benutzer in der Datei checkmk_server_log_dest gefunden werden, die auf der Remote-Instanz erstellt wurde |
undefiniert |
checkmk_server_base_url | Basis-URL, auf der andere URLs basieren | https://download.checkmk.com/checkmk |
checkmk_server_cache_valid_time | Aktualisieren Sie den apt-Cache, wenn er älter als diese Zeit in Sekunden ist. | 3600 |
checkmk_server_download | Dateiname des Quellinstallationspakets | check-mk-raw-{{ checkmk_server_version }}_0.{{ ansible_distribution_release }}_amd64.deb |
checkmk_server_download_dest | Vollständiger Endpfad des Quellinstallationspakets | "{{ checkmk_server_download_dest_folder }}/{{ checkmk_server_download }}" |
checkmk_server_download_dest_folder | Zielordner des Quellinstallationspakets | /opt |
checkmk_server_download_mode | Dateimodell Einstellungen des Quellinstallationspakets | 0755 |
checkmk_server_download_url | URL des Quellinstallationspakets zum Herunterladen | "{{ checkmk_server_base_url }}/{{ checkmk_server_version }}/{{ checkmk_server_source }}" |
checkmk_server_htpasswd_group | Name der Gruppe, die die htpasswd-Datei besitzen soll, wie an chown übergeben werden würde | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_mode | Dateimodell Einstellungen der htpasswd-Datei | 0660 |
checkmk_server_htpasswd_name | Name des Benutzers, dessen Passwort festgelegt wird, wenn checkmk_server_adminpw gesetzt ist |
cmkadmin |
checkmk_server_htpasswd_owner | Name des Benutzers, der die htpasswd-Datei besitzen soll, wie an chown übergeben werden würde | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_path | Vollständiger Endpfad der htpasswd-Datei | /opt/omd/sites/{{ checkmk_server_site }}/etc/htpasswd |
checkmk_server_install_package | Vollständiger Endpfad des Installationspakets | "{{ checkmk_server_download_dest }}" |
checkmk_server_key_url | URL des öffentlichen Schlüssels für CheckMK | "{{ checkmk_server_base_url }}/Check_MK-pubkey.gpg" |
checkmk_server_log_dest | Vollständiger Endpfad des OMD-Erstellungsprotokolls, das das cmkadmin-Passwort erfasst, wenn checkmk_server_adminpw nicht gesetzt ist |
/opt/omd/sites/{{ checkmk_server_site }}/omd-create.log |
checkmk_server_log_group | Name der Gruppe, die das OMD-Erstellungsprotokoll besitzen soll, wie an chown übergeben werden würde | "{{ checkmk_server_site }}" |
checkmk_server_log_mode | Dateimodell Einstellungen des OMD-Erstellungsprotokolls | 0600 |
checkmk_server_log_owner | Name des Benutzers, der das OMD-Erstellungsprotokoll besitzen soll, wie an chown übergeben werden würde | "{{ checkmk_server_site }}" |
checkmk_server_man_mode | Dateimodell Einstellungen des erforderlichen man-Ordners | 0755 |
checkmk_server_man_path | Vollständiger Endpfad des erforderlichen man-Ordners | /usr/share/man/man8 |
checkmk_server_omd_create_command | Befehl zum Erstellen einer neuen OMD-Site | omd create {{ checkmk_server_site }} |
checkmk_server_omd_create_creates | Datei, die durch das Erstellen einer neuen OMD-Site erstellt wurde | /opt/omd/sites/{{ checkmk_server_site }} |
checkmk_server_omd_setup_command | Befehl zum Einrichten von OMD | omd setup |
checkmk_server_omd_setup_creates | Ordner, der durch das Einrichten von OMD erstellt wurde | /opt/omd |
checkmk_server_omd_start_command | Befehl zum Starten von OMD | omd start {{ checkmk_server_site }} |
checkmk_server_omd_start_creates | Datei, die durch den Start von OMD erstellt wurde | /opt/omd/sites/{{ checkmk_server_site }}/tmp/apache/run/apache.pid |
checkmk_server_prerequisites | Pakete, die vor der Installation der CheckMK RAW Edition benötigt werden | python3-apt python3-passlib |
checkmk_server_site | Name der OMD "Site", die erstellt werden soll; dies wird oft als my-site in den Dokumentationsbeispielen von CheckMK angezeigt |
test |
checkmk_server_version | Version der CheckMK RAW Edition, die installiert werden soll | 2.3.0p13 |
checkmk_server_web_service | Name des Webdienstes, der gestartet und aktiviert werden soll | apache2 |
Tabellen der Variablen, die für mindestens eine Distribution einzigartig sind (mit Standardeinstellungen)
Um die Unterstützung mehrerer Distributionen zu ermöglichen, definiert die Rolle distributionsspezifische Variablen mit den Mechanismen include_vars
und with_first_found
.
checkmk_server_download_checksum
Beschreibung: SHA256-Prüfziffer des Quellinstallationspakets
Distribution | Standard |
---|---|
Debian 10 | sha256:ee083910c336c841a4851964543fd44c7e9ac60df6a9223c2df0ca3c49c9d3e9 |
Debian 11 | sha256:684bf333ed397e805f455e07296bcbef58fd6cfb1360f606b0b02bcfd14e56dc |
Debian 12 | sha256:d4d102ce0917c86b8181d32dfd5718ea752cfeac0eea01e4dbcbe04cd7b3592b |
Ubuntu 20.04 | sha256:beca6209ff3c565dd1f9e1e4ad874b0c657efa303d6edf6efb1af286f0fc2ae0 |
Ubuntu 22.04 | sha256:c86c03997429005aff81ac9fbc0a03b9ab4fdfb8494b75c59f8f119c1680c959 |
Ubuntu 24.04 | sha256:e5f030738cd970ea78465f36517a53550865ea8ef3b37d61841cee5df58407e6 |
Abhängigkeiten
Derzeit sind keine definiert.
Beispiel-Playbook
Beispiel, das ein bestimmtes Passwort für den Benutzer cmkadmin
durchsetzt:
- hosts: monitoring-servers
roles:
- { role: kso512.checkmk_server, checkmk_server_adminpw: "wintermute" }
Lizenz
GNU General Public License Version 2
Mitwirken
Wenn Sie Vorschläge oder Ideen haben, können Sie gerne ein Issue eröffnen oder das Repository forken und eine Merge-Anfrage stellen.
Autoreninformation
@kso512 mit Beiträgen zum ursprünglichen Code "install-check_mk-server" von diesen hilfreichen Github-Nutzern:
A role to install CheckMK RAW edition and set up an initial site.
ansible-galaxy install kso512.checkmk_server