6

这是一项超级基本的任务,但我找不到有关它的文档。我正在使用厨师服务器和厨师启动 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

谢谢

4

3 回答 3

8

我遇到了同样的问题,这就是我解决问题的方法。

首先,我使用刀将相关角色应用于实例:

$ 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

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

于 2012-01-20T22:51:23.937 回答
2

乔丹的回答真的帮助了我,但对于像我这样开始厨师的人,我会更详细地解释一下。

我在 EC2 上运行并收到上述错误。这是我为解决它所做的:

  1. 在我的本地机器上,运行:knife ec2 server list以获取 EC2 服务器上的主机节点
  2. 从我的本地开发机器将运行列表添加到该节点:knife node run_list add i-xxxxx "role[aws-db-deploy]"其中 i-xxxxx 是您的节点名称
  3. SSH 到您的 aws ec2 实例并运行以下命令:sudo chef-client

希望这可以帮助

于 2013-08-26T14:17:22.733 回答
0

您可以使用运行列表运行 chef-client:

$ sudo chef-client --runlist <role>
于 2014-11-20T15:55:28.573 回答