我有一个带有 2 个虚拟机的 Vagrant (1.7.2)。我想使用厨师(现在是 12 的最新版本?)来配置它们。我试图让一个成为 nagios 服务器,另一个成为受 nagios 监控的机器。
使用内置 chef-zero vagrant provisioner时,可以很好地配置每个节点。但是社区 nagios 食谱会搜索要监控的节点。由于每个 vagrant vm 都有一个新鲜的本地厨师零,它不知道其他主机,因此它不是“厨师驱动的 nagios”的真正测试。
这篇博文(使用 Vagrant 和 chef-zero 的多节点拓扑)似乎涵盖了我想要做的事情,并建议我在本地机器上运行 chef-zero 服务器,并将其设置为chef_server_url
Vagrantfile 中的内容。
但是,当我这样做时,我从 chef_client 供应商那里得到一个错误:
==> nagiosserver: [2015-01-23T15:59:09+00:00] INFO: *** Chef 12.0.3 ***
==> nagiosserver: [2015-01-23T15:59:09+00:00] INFO: Chef-client pid: 6916
==> nagiosserver: [2015-01-23T15:59:12+00:00] INFO: Setting the run_list to ["role[rorytestvm1]"] from CLI options
==> nagiosserver: [2015-01-23T15:59:12+00:00] INFO: HTTP Request Returned 404 Not Found : Object not found: http://192.168.33.1:8889/roles/rorytestvm1
解决方案是什么?
(有一个vagrant chef-zero 插件,但大约 8 个月没有更新,我和其他人一样,遇到错误)
我已经解决了这个问题。问题是我开始
chef-zero
并把它留在那里。我没有使用knife
. 那是一个空服务器。我以为 chef-zero 会使用当前目录中的节点/食谱/等,但事实并非如此。我制作了一个新
knife.rb
文件,它以 localhost 作为服务器 URL 并做了一个knife upload . -c /path/to/new/knife.rb
,它工作正常。