kso512.checkmk_server
checkmk_server
Un Ansible Rôle pour installer l'édition RAW de CheckMK et configurer un site initial.
Ceci est une reconstruction complète du rôle install-check_mk-server que j'ai créé et maintenu pendant des années, entreprise en raison des changements dans CI/CD et les conventions de nommage dans Ansible Galaxy & CheckMK.
Toutes les tâches sont étiquetées avec checkmk-server
.
Je ne recommande pas la configuration par défaut pour une connexion non protégée directement à Internet, car la configuration du serveur inclut un accès HTTP non crypté.
Les distributions suivantes ont été testées automatiquement :
- 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"
Pour référence, "OMD" ci-dessous signifie Open Monitoring Distribution, qui est un prédécesseur de l'édition RAW de CheckMK. Ces commandes "omd" ont été conservées pour la compatibilité.
Matrice des Versions Récentes
Version de CheckMK Raw Edition | Version/Tag du Rôle |
---|---|
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 |
Exigences
Si le serveur a un pare-feu activé, il peut être nécessaire de le modifier pour autoriser les paquets entrants sur le port TCP 80 pour l'accès au portail Web, et/ou le port TCP 514, plus les ports UDP 162 et 514 pour l'entrée console d'événements (syslog).
Comme pour tout déploiement Linux moderne, SELinux peut entrer en jeu.
Pour répondre à ces exigences, je recommande d'utiliser un autre Rôle Ansible.
Entretien (mises à jour et versions obsolètes)
Bien que ce rôle installe la dernière version stable de CheckMK, il n'applique pas de commandes de mise à jour aux déploiements existants. Cela évite de perturber les sites de production et permet d'avoir un contrôle lors des mises à niveau.
Ces étapes peuvent être suivies pour effectuer une mise à niveau sur un site nommé "test" après avoir exécuté une mise à jour plus récente de ce rôle ; changez "test" pour le nom du site que vous souhaitez mettre à niveau :
- Devenez l'utilisateur "test" :
sudo omd su test
- Arrêtez le site "test" :
omd stop
- Mettez à jour le site "test" ; pour compléter cette étape, vous devez également interagir avec l'interface texte :
omd update
- Démarrez le site "test" :
omd start
Si vous avez de nombreux sites à mettre à niveau, la ligne de commande suivante peut vous aider. Changez simplement la déclaration de variable site
au besoin :
site=test ; sudo omd stop $site ; sudo omd update $site ; sudo omd start $site
Pour les braves, la commande omd
permet des mises à niveau entièrement automatisées, qui peuvent ensuite être exécutées via ansible de la manière suivante (pour un groupe donné hq-cmk
dans l'inventaire testing.ini
, un site nommé test
, et une mise à niveau vers la version 2.2.0p12
dans cet exemple) :
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
De la même manière, les anciennes versions sont laissées sur les systèmes par ce rôle et il incombe à l'administrateur de supprimer les versions non nécessaires. Utilisez cette commande pour supprimer toutes les versions non nécessaires de CheckMK : sudo omd cleanup
Variables du Rôle
Certaines d'entre elles peuvent sembler redondantes mais sont spécifiées afin que les futurs utilisateurs puissent les remplacer par des variables locales si nécessaire.
Tableau des Variables Communes à Toutes les Distributions (avec Valeurs Par Défaut)
Variable | Description | Par Défaut |
---|---|---|
checkmk_server_adminpw | Mot de passe pour l'utilisateur cmkadmin créé pour le site de test ; s'il est laissé vide, le mot de passe pour cet utilisateur peut être trouvé dans le fichier checkmk_server_log_dest créé sur l'instance distante |
non défini |
checkmk_server_base_url | URL de base sur laquelle d'autres URL sont basées | https://download.checkmk.com/checkmk |
checkmk_server_cache_valid_time | Met à jour le cache apt s'il est plus ancien que ce temps, en secondes. | 3600 |
checkmk_server_download | Nom du fichier du paquet d'installation source | check-mk-raw-{{ checkmk_server_version }}_0.{{ ansible_distribution_release }}_amd64.deb |
checkmk_server_download_dest | Chemin complet final du paquet d'installation source | "{{ checkmk_server_download_dest_folder }}/{{ checkmk_server_download }}" |
checkmk_server_download_dest_folder | Dossier de destination du paquet d'installation source | /opt |
checkmk_server_download_mode | Paramètres de mode fichier du paquet d'installation source | 0755 |
checkmk_server_download_url | URL du paquet d'installation source à télécharger | "{{ checkmk_server_base_url }}/{{ checkmk_server_version }}/{{ checkmk_server_source }}" |
checkmk_server_htpasswd_group | Nom du groupe qui doit posséder le fichier htpasswd, comme l'indique la commande chown | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_mode | Paramètres de mode fichier du fichier htpasswd | 0660 |
checkmk_server_htpasswd_name | Nom de l'utilisateur dont le mot de passe sera défini, si checkmk_server_adminpw est défini |
cmkadmin |
checkmk_server_htpasswd_owner | Nom de l'utilisateur qui doit posséder le fichier htpasswd, comme l'indique la commande chown | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_path | Chemin complet final du fichier htpasswd | /opt/omd/sites/{{ checkmk_server_site }}/etc/htpasswd |
checkmk_server_install_package | Chemin complet final du paquet d'installation | "{{ checkmk_server_download_dest }}" |
checkmk_server_key_url | URL de la clé publique pour CheckMK | "{{ checkmk_server_base_url }}/Check_MK-pubkey.gpg" |
checkmk_server_log_dest | Chemin complet final du journal de création OMD, qui capture le mot de passe cmkadmin si checkmk_server_adminpw n'est pas défini |
/opt/omd/sites/{{ checkmk_server_site }}/omd-create.log |
checkmk_server_log_group | Nom du groupe qui doit posséder le journal de création OMD, comme l'indique la commande chown | "{{ checkmk_server_site }}" |
checkmk_server_log_mode | Paramètres de mode fichier du journal de création OMD | 0600 |
checkmk_server_log_owner | Nom de l'utilisateur qui doit posséder le journal de création OMD, comme l'indique la commande chown | "{{ checkmk_server_site }}" |
checkmk_server_man_mode | Paramètres de mode fichier du dossier man requis | 0755 |
checkmk_server_man_path | Chemin complet final du dossier man requis | /usr/share/man/man8 |
checkmk_server_omd_create_command | Commande utilisée pour créer un nouveau site OMD | omd create {{ checkmk_server_site }} |
checkmk_server_omd_create_creates | Fichier créé par la création d'un nouveau site OMD | /opt/omd/sites/{{ checkmk_server_site }} |
checkmk_server_omd_setup_command | Commande utilisée pour configurer OMD | omd setup |
checkmk_server_omd_setup_creates | Dossier créé par la configuration d'OMD | /opt/omd |
checkmk_server_omd_start_command | Commande utilisée pour démarrer OMD | omd start {{ checkmk_server_site }} |
checkmk_server_omd_start_creates | Fichier créé par le démarrage de l'OMD | /opt/omd/sites/{{ checkmk_server_site }}/tmp/apache/run/apache.pid |
checkmk_server_prerequisites | Paquets nécessaires avant d'installer l'édition RAW de CheckMK | python3-apt python3-passlib |
checkmk_server_site | Nom du "site" OMD à créer ; cela est souvent montré comme my-site dans les exemples de documentation de CheckMK |
test |
checkmk_server_version | Version de l'édition RAW de CheckMK à installer | 2.3.0p13 |
checkmk_server_web_service | Nom du service Web à démarrer et activer | apache2 |
Tableaux de Variables Uniques à Au Moins Une Distribution (avec Valeurs Par Défaut)
Pour activer le support multi-distro, le rôle définit des variables spécifiques à la distribution avec les mécanismes include_vars
et with_first_found
.
checkmk_server_download_checksum
Description : Somme de contrôle SHA256 du paquet d'installation source
Distribution | Valeur Par Défaut |
---|---|
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 |
Dépendances
Aucune définition pour l'instant.
Exemple de Playbook
Exemple qui impose un mot de passe spécifique pour l'utilisateur cmkadmin
:
- hosts: monitoring-servers
roles:
- { role: kso512.checkmk_server, checkmk_server_adminpw: "wintermute" }
Licence
Licence Publique Générale GNU version 2
Contribution
Si vous avez des suggestions ou des idées, n'hésitez pas à ouvrir un problème ou à forker le dépôt et soumettre une demande de fusion.
Informations sur l'Auteur
@kso512 avec des contributions au code original "install-check_mk-server" de ces utilisateurs utiles de Github :
A role to install CheckMK RAW edition and set up an initial site.
ansible-galaxy install kso512.checkmk_server