【问题标题】:OpsWorks: How to set Chef environment?OpsWorks:如何设置 Chef 环境?
【发布时间】:2013-11-23 04:48:26
【问题描述】:

使用 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

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

{
  "chef_environment": "staging"
}

然后我将my_environment_cookbook 包含在运行列表中,在我想要获得node.chef_environment 属性的食谱之前。

【问题讨论】:

  • 您好,问题是我使用的是 OpsWorks,不知道如何设置环境。你有什么建议吗?谢谢。
  • 你以为你在使用 vagrant 吗?听起来像是一个不同的问题。
  • 我对这个不清楚的问题不好。我更新了。

标签: chef-infra vagrant environment aws-opsworks


【解决方案1】:

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

node.chef_environment = "environment_name"

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

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

【讨论】:

    猜你喜欢
    • 2017-09-04
    • 2013-06-30
    • 2011-09-11
    • 1970-01-01
    • 2012-10-08
    • 1970-01-01
    • 2016-05-31
    • 2015-02-06
    • 2013-09-07
    相关资源
    最近更新 更多