当 Puppet 启动 Apache 时出现问题,我该如何让 Puppet 显示真正的错误?这是 Puppet 的限制吗?是 Apache 的限制吗?是我如何将它们组合在一起的限制吗?
我为 Apache 创建了一个 Puppet 模块。(我知道已经有一个了,但我正在做教程。)当我通过 运行该模块时puppet agent --test
,Apache 无法启动。我知道这是因为 httpd.conf 中的一个 Apache 模块未安装。这很正常。但我在代理运行中没有看到确切的错误消息。我只看到这个:
信息:/Stage[main]/Apache/File[httpd.conf]:计划刷新服务 [httpd] 错误:无法启动服务 [httpd]:执行“/sbin/service httpd start”返回 1:错误:/Stage[main]/Apache/Service[httpd]/ensure:从停止更改为运行失败:无法启动服务 [httpd]:执行“/sbin/service httpd start”返回 1:
然后,当我尝试自己启动 Apache 时,我看到了有用的错误消息。
[root@learn apache]# service httpd start 启动 httpd:httpd:/etc/httpd/conf/httpd.conf 第 197 行语法错误:无法将 /etc/httpd/modules/mod_mem_cache.so 加载到服务器:/etc/httpd/modules/mod_mem_cache.so:无法打开共享对象文件:没有此文件或目录
看来 Puppet 应该告诉我到底发生了什么。
答案1
据我所知,这就是你所能得到的一切。
Puppet 运行 init 脚本,只能检查返回代码。所以我总是使用和你一样的方法,手动运行 init 脚本并查看错误。