使用厨师更新EC2实例

我上个星期被炒到厨师的最后,现在我被困在了一件事上。 我在AWS中创build了一个实例(在这个时候很多次),当厨师开始做它的事情时,我得到一个编译错误。 好吧,我会弄清楚什么事情,然后重新申请。

我的问题:我如何更新现有的实例? 我可以使用$ knife ec2 server create [coptions]但有没有相应的更新命令? 我的大脑想要执行像$ knife ec2 server update [AWS instance ID] -x userXXX -r 'recipe[yyy::zzzz]'我没有看到更新作为一个选项,所以有什么类似的?

我不想在对配方进行故障排除时不断创build和终止实例,我宁愿将更改应用于现有实例。

尝试刀独奏 ,它允许您与厨师独奏 (而不是厨师客户端)更新远程服务器,如:

 knife solo cook ec2-user@your-node-fqdn -o "your-run-list" 

在厨师服务器的情况下,你并没有更新远程ec2服务器,而只是更新ec2服务器的节点对象,chef-client会在启动时同步你的改变。 所以你只需要通过刀更新你的节点/angular色/环境。

如果Chef在服务器上成功引导,请运行

 knife ssh -m [server-id] chef-client 

http://docs.opscode.com/knife_ssh.html

使用EC2,服务器标识是由AWS分配的实例标识。