kso512.checkmk_server

checkmk_server

Release GitHub issues GitHub repo size

made-with-Markdown GitHub

一个用于安装 CheckMK RAW 版本 并设置初始站点的 Ansible 角色

这是对我多年来创建和维护的 install-check_mk-server 角色的全面重建,因 CI/CD 和 Ansible Galaxy & CheckMK 的命名约定的变化而进行。

所有任务都标记为 checkmk-server

我不推荐在未经保护的情况下直接连接到互联网的默认配置,因为服务器配置包括未加密的 HTTP 访问。

以下发行版已通过自动化测试:

作为参考,下面的 "OMD" 代表 开放监控发行版,这是 CheckMK RAW 版本的前身。这些 "omd" 命令保留下来以便与旧版本兼容。

最近版本矩阵

CheckMK RAW 版本 角色版本/标签
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

要求

如果服务器启用了防火墙,则可能需要调整它,以允许在 TCP 80 端口上接收数据包以访问 Web 门户,和/或在 TCP 514 端口以及 UDP 162 和 514 端口上接收事件控制台(syslog)输入。

与任何现代的 Linux 部署一样,SELinux 可能会生效。

为了满足这些要求,我建议使用另一个 Ansible 角色。

维护(更新和过时版本)

虽然该角色会安装最新的稳定版本 CheckMK,但它不会对现有部署应用任何更新命令。这是为了避免妨碍生产站点,并在升级时进行监督。

在运行该角色的较新版本后,可按照以下步骤对名为 "test" 的站点进行升级;将 "test" 更改为要升级的站点名称:

  1. 切换为 "test" 用户:sudo omd su test
  2. 停止 "test" 站点:omd stop
  3. 更新 "test" 站点;完成此步骤时需要与文本界面进行交互:omd update
  4. 启动 "test" 站点:omd start

如果您需要升级多个站点,以下一行代码可能会有所帮助。只需根据需要更改 site 变量的声明:

site=test ; sudo omd stop $site ; sudo omd update $site ; sudo omd start $site

对于勇敢的人,omd 命令允许完全自动化的升级,随后可以通过 ansible 执行,如下所示(以 testing.ini 库中的给定组 hq-cmk、名为 test 的站点以及升级到该示例中的版本 2.2.0p12):

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

类似地,旧版本在系统上由这个角色保留,管理员来决定删除不需要的版本。使用下面的命令删除所有不需要的 CheckMK 版本:sudo omd cleanup

角色变量

这些变量中有些可能显得重复,但被指定,以便将来的用户可以根据需要用本地变量重写它们。

所有发行版通用变量表(带默认值)

变量 描述 默认值
checkmk_server_adminpw 为测试站点创建的 cmkadmin 用户设置的密码;如果留空,则可以在创建于远程实例的 checkmk_server_log_dest 文件中找到该用户的密码 未定义
checkmk_server_base_url 其他 URL 所基于的基本 URL https://download.checkmk.com/checkmk
checkmk_server_cache_valid_time 如果 apt 缓存的时间早于此值(以秒为单位),则更新其缓存。 3600
checkmk_server_download 源安装包的文件名 check-mk-raw-{{ checkmk_server_version }}_0.{{ ansible_distribution_release }}_amd64.deb
checkmk_server_download_dest 源安装包的最终完整路径 "{{ checkmk_server_download_dest_folder }}/{{ checkmk_server_download }}"
checkmk_server_download_dest_folder 源安装包的目标文件夹 /opt
checkmk_server_download_mode 源安装包的文件模式设置 0755
checkmk_server_download_url 要下载的源安装包的 URL "{{ checkmk_server_base_url }}/{{ checkmk_server_version }}/{{ checkmk_server_source }}"
checkmk_server_htpasswd_group 应拥有 htpasswd 文件的组名 "{{ checkmk_server_site }}"
checkmk_server_htpasswd_mode htpasswd 文件的文件模式设置 0660
checkmk_server_htpasswd_name 如果设置 checkmk_server_adminpw,则将其密码设置的用户名称 cmkadmin
checkmk_server_htpasswd_owner 应拥有 htpasswd 文件的用户名称 "{{ checkmk_server_site }}"
checkmk_server_htpasswd_path htpasswd 文件的最终完整路径 /opt/omd/sites/{{ checkmk_server_site }}/etc/htpasswd
checkmk_server_install_package 安装包的最终完整路径 "{{ checkmk_server_download_dest }}"
checkmk_server_key_url CheckMK 的公钥 URL "{{ checkmk_server_base_url }}/Check_MK-pubkey.gpg"
checkmk_server_log_dest OMD 创建日志的最终完整路径,如果未设置 checkmk_server_adminpw ,则会捕获 cmkadmin 密码 /opt/omd/sites/{{ checkmk_server_site }}/omd-create.log
checkmk_server_log_group 应拥有 OMD 创建日志的组名 "{{ checkmk_server_site }}"
checkmk_server_log_mode OMD 创建日志的文件模式设置 0600
checkmk_server_log_owner 应拥有 OMD 创建日志的用户名称 "{{ checkmk_server_site }}"
checkmk_server_man_mode 所需 man 文件夹的文件模式设置 0755
checkmk_server_man_path 所需 man 文件夹的最终完整路径 /usr/share/man/man8
checkmk_server_omd_create_command 用于创建新 OMD 站点的命令 omd create {{ checkmk_server_site }}
checkmk_server_omd_create_creates 创建新 OMD 站点时创建的文件 /opt/omd/sites/{{ checkmk_server_site }}
checkmk_server_omd_setup_command 用于设置 OMD 的命令 omd setup
checkmk_server_omd_setup_creates 设置 OMD 时创建的文件夹 /opt/omd
checkmk_server_omd_start_command 启动 OMD 的命令 omd start {{ checkmk_server_site }}
checkmk_server_omd_start_creates 启动 OMD 时创建的文件 /opt/omd/sites/{{ checkmk_server_site }}/tmp/apache/run/apache.pid
checkmk_server_prerequisites 安装 CheckMK RAW 版本前所需的包 python3-apt python3-passlib
checkmk_server_site 要创建的 OMD "站点" 名称;在 CheckMK 文档示例中通常显示为 my-site test
checkmk_server_version 要安装的 CheckMK RAW 版本 2.3.0p13
checkmk_server_web_service 要启动和启用的 Web 服务名称 apache2

至少一个发行版特有变量表(带默认值)

为了支持多种发行版,角色定义了特定于发行版的变量,使用 include_varswith_first_found 机制。

checkmk_server_download_checksum

描述:源安装包的 SHA256 校验和

发行版 默认值
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

依赖

目前尚未定义。

示例剧本

强制为 cmkadmin 用户设置特定密码的示例:

- hosts: monitoring-servers
  roles:
     - { role: kso512.checkmk_server, checkmk_server_adminpw: "wintermute" }

许可

GNU通用公共许可证第2版

贡献

如果您有任何建议或想法,欢迎随时提交问题,或分叉该库并提交合并请求。

作者信息

@kso512 和这些有助于原始 "install-check_mk-server" 代码的 GitHub 用户共同完成:

关于项目

A role to install CheckMK RAW edition and set up an initial site.

安装
ansible-galaxy install kso512.checkmk_server
许可证
gpl-2.0
下载
1.1k
拥有者