这是一项超级基本任务,但我找不到相关文档。我正在使用厨师服务器和厨师启动EC2机器。如果失败了,我想修复配方,然后在该机器上重新安装角色和配方,而无需取出节点并再次创建它。我找不到那样做的命令。
如果我在机器上运行chef-client,我会得到:
chef-client
[Wed, 18 Jan 2012 11:23:58 +0000] INFO: *** Chef 0.10.0 ***
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List is []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Run List expands to []
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Starting Chef Run for gidsy-staging-web
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Loading cookbooks []
[Wed, 18 Jan 2012 11:23:59 +0000] WARN: Node gidsy-staging-web has an empty run list.
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Chef Run complete in 0.508629 seconds
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Running report handlers
[Wed, 18 Jan 2012 11:23:59 +0000] INFO: Report handlers complete
由于
答案 0 :(得分:8)
我遇到了同样的问题,这就是我解决问题的方法。
首先,我使用knife:
将有问题的角色应用于实例$ knife node run_list add [NODE] [ENTRY]
Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]").
将角色应用于EC2实例后,我会在相关实例上调用chef-client。
$ sudo chef-client
这应该会大大加快您的开发周期。
答案 1 :(得分:2)
乔丹的回答确实帮助了我,但对于那些像我这样的厨师,我会更详细地解释一下。
我在EC2上运行并遇到上述错误。这就是我解决它的方法:
knife ec2 server list
以获取EC2服务器上的主机节点knife node run_list add i-xxxxx "role[aws-db-deploy]"
其中i-xxxxx是您的节点名称sudo chef-client
希望这有帮助
答案 2 :(得分:0)
您可以使用运行列表运行chef-client:
$ sudo chef-client --runlist <role>