我一直在尝试使用 ansible playbook 安装 monit。我正在更改 monitrc 文件,当 playbook 重新启动 monit 时,我得到:
Jun 8 08:00:30 myserver monit[1857462]: Starting daemon monitor: monit
Jun 8 08:00:30 myserver monit[1857465]: /etc/monit/monitrc:10: invalid mail format '#015'
Jun 8 08:00:30 myserver monit[1857465]: /etc/monit/monitrc:11: syntax error 'subject: $HOST -- $EVENT $SERVICE#015'
Jun 8 08:00:30 myserver monit[1857466]: failed!
Jun 8 08:00:30 myserver systemd[1]: monit.service: Control process exited, code=exited, status=1/FAILURE
Jun 8 08:00:30 myserver systemd[1]: monit.service: Failed with result 'exit-code'.
Jun 8 08:00:30 myserver systemd[1]: Failed to start LSB: service and resource monitoring daemon.
monitrc 中存在冲突的行:
set mail-format {
from: Monit <[email protected]>
subject: $HOST -- $EVENT $SERVICE
message: $EVENT Service $SERVICE
Date: $DATE
Action: $ACTION
Host: $HOST
}
以下是我做过的不同测试:
- 从 playbook 安装 monit(从 apt 安装然后将 monitrc 文件复制到其位置):不起作用
- 手动安装 monit(从 apt 安装,然后将配置复制粘贴到 monitrc):有效
- 在 ansible 安装后复制粘贴 monitrc :不起作用
两种情况下的 Monit 版本都是 5.27.2,机器是 Debian 11。
答案1
问题是我用 ansible 复制的文件是 CRLF 格式。我必须将它们切换为 LF,以便 monit 可以读取文件。