Chef infra 如果安装失败或更新可用,请重新加载厨师配方

Chef infra 如果安装失败或更新可用,请重新加载厨师配方,chef-infra,Chef Infra,这是一项非常基本的任务,但我找不到相关文档。我正在使用chef服务器和chef引导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

这是一项非常基本的任务,但我找不到相关文档。我正在使用chef服务器和chef引导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

谢谢

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

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

$ 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

这将大大加快您的开发周期

乔丹的回答确实帮助了我,但对于像我这样的厨师新手,我会更详细地解释

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

  • 在我的本地计算机上,运行:
    刀ec2服务器列表
    以获取ec2服务器上的主机节点
  • 将运行列表从我的本地开发计算机添加到该节点:
    刀节点运行列表添加i-xxxxx“角色[aws db部署]”
    其中i-xxxxx是您的节点名称
  • ssh到aws ec2实例上并运行命令:
    sudo chef client

  • 希望这有帮助

    您可以使用runlist运行chef客户端:

    $ sudo chef-client --runlist <role>
    
    $sudo chef客户端--运行列表
    
    您的问题描述不是很清楚,EC2和Chef之间有一些术语重叠。不清楚您所说的“不取出节点并再次创建它”(chef节点或EC2节点?)是什么意思。失败运行的输出是什么?为什么你的跑步列表是空的?我从未见过失败的Chef运行会清空节点的运行列表的情况。