2012-01-18 48 views
6

这是一项超级基本任务,但我找不到相关文档。我正在使用厨师服务器和厨师启动EC2机器。如果失败了,我想修复配方,然后在该机器上重新安装角色和配方,而不需要将节点取出并重新创建。我找不到执行该操作的命令。如果安装失败或更新可用,重新装载厨师食谱

如果我的机器上运行厨师客户端,我得到:

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

您的问题描述不是很清楚,EC2和厨师之间有一些术语重叠。目前还不清楚“没有取出节点并重新创建节点”(主厨节点或EC2节点?) 失败运行的输出是什么? 你的运行列表为什么是空的?我还没有看到Chef运行失败的情况,会清空节点的运行列表。 – lhagemann 2012-01-19 23:00:58

回答

8

我也遇到同样的问题,这是我已经解决了这个问题。

首先,我用小刀适用于问题的实例中的作用(S):

$ knife node run_list add [NODE] [ENTRY] 

Be sure and include the items in [ENTRY] in quotes (for example, "role[my-role]"). 

一旦角色已经被应用到EC2实例,我然后调用厨师的客户端有问题的情况下。

$ sudo chef-client 

这应该会大大加快您的开发周期。

+0

是的,这是有效的。谢谢!这将为我节省很多时间。 – 2012-01-22 15:56:45

+0

非常欢迎菲利普! – 2012-01-23 00:49:58

2

约旦的答案真的帮了我很大的忙,但对于像我这样的厨师来说,我会详细解释一下。

我在EC2上运行,并得到上述错误。这是我做过什么来解决这个问题:

  1. 在我的本地机器上,运行:knife ec2 server list获取主机节点的EC2服务器
  2. 上运行列表从我的本地dev的机器添加到该节点:knife node run_list add i-xxxxx "role[aws-db-deploy]"哪里I-xxxxx是您的节点名
  3. SSH到您的AWS EC2实例,然后运行命令:sudo chef-client

希望这有助于

0

您可以运行第e厨师客户与运行列表:

$ sudo chef-client --runlist <role>