OpsWorks:如何设置Chef环境?

时间:2013-11-11 11:39:41

标签: chef vagrant environment aws-opsworks

使用 AWS OpsWorks ,您将如何设置环境(登台,制作等),这些环境将应用于 node.chef_environment 属性,然后应用于食谱能读取这个属性吗? (我想这可以使用自定义JSON完成,对吗?)

我遇到了这个link,但仍然不知道该怎么办。

使用 Vagrant ,我可以在Vagrantfile中将其设置为:

config.vm.provision :chef_solo do |chef|
  ...
  chef.environment = "local"
  ...
end

谢谢。

更新

我最后通过编写my_environment_cookbook来解决问题,if node[:chef_environment] != nil node.chef_environment = node[:chef_environment] end 只有默认配方中的代码:

{
  "chef_environment": "staging"
}

在OpsWorks堆栈的自定义JSON中,我有类似的东西:

my_environment_cookbook

然后我在运行列表中包含node.chef_environment,在我希望获得{{1}}属性的食谱之前。

1 个答案:

答案 0 :(得分:4)

Amazon Opsworks目前不支持本机Chef环境。您可以在配方中手动设置节点的环境:

node.chef_environment = "environment_name"

由于Opsworks不会在Chef Client运行之间保留数据,因此每次运行cookbook时都需要包含此配方。

您可以从您想要的任何数据源中提取"environment_name"的值:硬编码,数据包,节点属性等。