Chef:具有环境和数据库的属性

时间:2017-05-31 06:56:24

标签: chef

我不太清楚如何将我的属性填充到我的食谱中。

我能够得到它们的用途......然而,我尝试使用environmentsdata bags

我的data bags就像:

{
  "id": "aws",
  {
    "dev": {"access_key": "XXX", "secret_key": "YYY"},
    "qa": {"access_key": "RRR", "secret_key": "TTT"},
    "prod": {"access_key": "PPP", "secret_key": "DDD"}
  }
}

因此,为了获取aws密钥以便访问aws服务,我使用了这个:

aws = data_bag_item('db','aws');

所以,我能够写出类似的东西,以便获得食谱和设置"根据目前的环境:

default['aws']['access_key'] = aws[node.chef_environment]

尽管如此,我已经将这句话写入了我的属性文件中,并且我无法获得node_bag_item

  1. 为什么我不能使用这种方法?
  2. 哪些默认属性'我应该设置值吗?

1 个答案:

答案 0 :(得分:0)

数据包与属性无关,使用它们是不安全的。数据包对于寻找钉子来说是一个锤子,但它们主要用于非节点特定的数据,您希望存储在烹饪书版本控制系统之外的某个地方。更具体地说,在这种情况下,data_bag_item DSL方法仅在配方代码中可用,而不在属性中。在节点属性中存储机密是一个主要的步枪,因为它们会在运行结束后保存回Chef服务器。

tl; dr这不是一件事,请观看https://coderanger.net/talks/secrets/以获取有关在自动化基础设施中管理机密的更多信息。