kso512.checkmk_server
checkmk_server
Un Ansible Rol para instalar la edición RAW de CheckMK y configurar un sitio inicial.
Este es un reconstrucción completa del rol install-check_mk-server que creé y mantuve durante años, realizada debido a cambios en CI/CD y convenciones de nombres en Ansible Galaxy y CheckMK.
Todas las tareas están etiquetadas con checkmk-server
.
NO recomiendo la configuración predeterminada para conexiones no protegidas directamente a Internet, ya que la configuración del servidor incluye acceso HTTP sin cifrar.
Las siguientes distribuciones han sido probadas automáticamente:
- 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"
Para referencia, "OMD" abajo se refiere a la Distribución de Monitoreo Abierto, que es un predecesor de la edición RAW de CheckMK. Esos comandos "omd" se dejaron para compatibilidad con versiones anteriores.
Matriz de Versiones Recientes
Versión de CheckMK Raw Edition | Versión/Etiqueta de Rol |
---|---|
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 |
Requisitos
Si el servidor tiene un firewall habilitado, puede ser necesario modificarlo para permitir paquetes entrantes en el puerto TCP 80 para el acceso al portal web, y/o en el puerto TCP 514, además de los puertos UDP 162 y 514 para la entrada de la consola de eventos (syslog).
Como en cualquier implementación moderna de Linux, SELinux también puede ser un factor.
Para cumplir con estos requisitos, recomiendo usar otro rol de Ansible.
Mantenimiento (actualizaciones y versiones obsoletas)
Mientras que este rol instala la última versión estable de CheckMK, no aplica comandos de actualización a implementaciones existentes. Esto es para evitar afectar sitios de producción y permitir supervisión durante las actualizaciones.
Estos pasos pueden seguirse para realizar una actualización en un sitio llamado "test" después de ejecutar una actualización más nueva de este rol; cambie "test" por el nombre del sitio que desea actualizar:
- Convertirse en el usuario "test":
sudo omd su test
- Detener el sitio "test":
omd stop
- Actualizar el sitio "test"; para completar este paso, también necesita interactuar con la interfaz de texto:
omd update
- Iniciar el sitio "test":
omd start
Si tiene muchos sitios que actualizar, la siguiente línea de comando puede ayudar. Solo cambie la declaración de la variable site
según sea necesario:
site=test ; sudo omd stop $site ; sudo omd update $site ; sudo omd start $site
Para los más valientes, el comando omd
permite actualizaciones completamente automatizadas, que pueden ser ejecutadas a través de Ansible así (para un grupo dado hq-cmk
en el inventario testing.ini
, un sitio llamado test
, y actualizando a la versión 2.2.0p12
en este ejemplo):
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 misma manera, versiones más antiguas quedan en los sistemas por este rol y es responsabilidad del administrador eliminar versiones no necesarias. Use este comando para eliminar todas las versiones no necesarias de CheckMK: sudo omd cleanup
Variables del Rol
Algunas de estas pueden parecer redundantes, pero están especificadas para que futuros usuarios puedan sobrescribirlas con variables locales según sea necesario.
Tabla de Variables Comunes a Todas las Distribuciones (con Valores Predeterminados)
Variable | Descripción | Predeterminado |
---|---|---|
checkmk_server_adminpw | Contraseña para el usuario cmkadmin creado para el sitio de prueba; si se deja en blanco, la contraseña para este usuario se puede encontrar en el archivo checkmk_server_log_dest creado en la instancia remota |
indefinido |
checkmk_server_base_url | URL base de la que se basan otras URL | https://download.checkmk.com/checkmk |
checkmk_server_cache_valid_time | Actualizar la caché de apt si es más antigua que este tiempo, en segundos. | 3600 |
checkmk_server_download | Nombre del archivo del paquete de instalación fuente | check-mk-raw-{{ checkmk_server_version }}_0.{{ ansible_distribution_release }}_amd64.deb |
checkmk_server_download_dest | Ruta completa final del paquete de instalación fuente | "{{ checkmk_server_download_dest_folder }}/{{ checkmk_server_download }}" |
checkmk_server_download_dest_folder | Carpeta de destino del paquete de instalación fuente | /opt |
checkmk_server_download_mode | Configuración de modo de archivo del paquete de instalación fuente | 0755 |
checkmk_server_download_url | URL del paquete de instalación fuente a descargar | "{{ checkmk_server_base_url }}/{{ checkmk_server_version }}/{{ checkmk_server_source }}" |
checkmk_server_htpasswd_group | Nombre del grupo que debe ser propietario del archivo htpasswd, como se usaría en chown | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_mode | Configuración de modo de archivo del archivo htpasswd | 0660 |
checkmk_server_htpasswd_name | Nombre del usuario que tendrá su contraseña establecida, si checkmk_server_adminpw está configurada |
cmkadmin |
checkmk_server_htpasswd_owner | Nombre del usuario que debe ser propietario del archivo htpasswd, como se usaría en chown | "{{ checkmk_server_site }}" |
checkmk_server_htpasswd_path | Ruta completa final del archivo htpasswd | /opt/omd/sites/{{ checkmk_server_site }}/etc/htpasswd |
checkmk_server_install_package | Ruta completa final del paquete de instalación | "{{ checkmk_server_download_dest }}" |
checkmk_server_key_url | URL de la clave pública para CheckMK | "{{ checkmk_server_base_url }}/Check_MK-pubkey.gpg" |
checkmk_server_log_dest | Ruta completa final del registro de creación de OMD, que captura la contraseña del cmkadmin si checkmk_server_adminpw no está configurada |
/opt/omd/sites/{{ checkmk_server_site }}/omd-create.log |
checkmk_server_log_group | Nombre del grupo que debe ser propietario del registro de creación de OMD, como se usaría en chown | "{{ checkmk_server_site }}" |
checkmk_server_log_mode | Configuración de modo de archivo del registro de creación de OMD | 0600 |
checkmk_server_log_owner | Nombre del usuario que debe ser propietario del registro de creación de OMD, como se usaría en chown | "{{ checkmk_server_site }}" |
checkmk_server_man_mode | Configuración de modo de archivo de la carpeta de man requerida | 0755 |
checkmk_server_man_path | Ruta completa final de la carpeta de man requerida | /usr/share/man/man8 |
checkmk_server_omd_create_command | Comando usado para crear un nuevo sitio OMD | omd create {{ checkmk_server_site }} |
checkmk_server_omd_create_creates | Archivo creado al crear un nuevo sitio OMD | /opt/omd/sites/{{ checkmk_server_site }} |
checkmk_server_omd_setup_command | Comando usado para configurar OMD | omd setup |
checkmk_server_omd_setup_creates | Carpeta creada al configurar OMD | /opt/omd |
checkmk_server_omd_start_command | Comando usado para iniciar OMD | omd start {{ checkmk_server_site }} |
checkmk_server_omd_start_creates | Archivo creado al iniciar OMD | /opt/omd/sites/{{ checkmk_server_site }}/tmp/apache/run/apache.pid |
checkmk_server_prerequisites | Paquetes necesarios antes de instalar la edición RAW de CheckMK | python3-apt python3-passlib |
checkmk_server_site | Nombre del "sitio" OMD a crear; a menudo se muestra como my-site en los ejemplos de la documentación de CheckMK |
test |
checkmk_server_version | Versión de la edición RAW de CheckMK a instalar | 2.3.0p13 |
checkmk_server_web_service | Nombre del servicio web a iniciar y habilitar | apache2 |
Tablas de Variables Únicas para Al Menos Una Distribución (con Valores Predeterminados)
Para habilitar el soporte multi-distro, el rol define variables específicas de la distribución con los mecanismos include_vars
y with_first_found
.
checkmk_server_download_checksum
Descripción: Suma de verificación SHA256 del paquete de instalación fuente
Distribución | Predeterminado |
---|---|
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 |
Dependencias
Aún no se han definido.
Ejemplo de Playbook
Ejemplo que impone una contraseña específica para el usuario cmkadmin
:
- hosts: servidores-de-monitoreo
roles:
- { role: kso512.checkmk_server, checkmk_server_adminpw: "wintermute" }
Licencia
Licencia Pública General de GNU versión 2
Contribuciones
Si tiene alguna sugerencia o idea, no dude en abrir un problema o bifurcar el repositorio y enviar una solicitud de fusión.
Información del Autor
@kso512 con contribuciones al código original "install-check_mk-server" de estos útiles usuarios de GitHub:
A role to install CheckMK RAW edition and set up an initial site.
ansible-galaxy install kso512.checkmk_server