kso512.checkmk_server
checkmk_server
一个用于安装 CheckMK RAW 版本 并设置初始站点的 Ansible 角色。
这是对我多年来创建和维护的 install-check_mk-server 角色的全面重建,因 CI/CD 和 Ansible Galaxy & CheckMK 的命名约定的变化而进行。
所有任务都标记为 checkmk-server
。
我不推荐在未经保护的情况下直接连接到互联网的默认配置,因为服务器配置包括未加密的 HTTP 访问。
以下发行版已通过自动化测试:
- 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"
作为参考,下面的 "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" 更改为要升级的站点名称:
- 切换为 "test" 用户:
sudo omd su test
- 停止 "test" 站点:
omd stop
- 更新 "test" 站点;完成此步骤时需要与文本界面进行交互:
omd update
- 启动 "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_vars
和 with_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" }
许可
贡献
如果您有任何建议或想法,欢迎随时提交问题,或分叉该库并提交合并请求。
作者信息
@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