Chef infra 厨师长:具有环境和数据包的属性

Chef infra 厨师长:具有环境和数据包的属性,chef-infra,Chef Infra,我不太明白如何将我的属性填充到我的食谱中 我能弄到它们是干什么用的。。。尽管如此,我还是尝试使用环境和数据包 我的数据包类似于: { "id": "aws", { "dev": {"access_key": "XXX", "secret_key": "YYY"}, "qa": {"access_key": "RRR", "secret_key": "TTT"}, "prod": {"access_key": "PPP", "secret_key": "DDD"}

我不太明白如何将我的属性填充到我的食谱中

我能弄到它们是干什么用的。。。尽管如此,我还是尝试使用
环境
数据包

我的
数据包类似于:

{
  "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\u bag\u项目
不可用

  • 为什么我不能使用这种方法
  • 那么我应该设置哪些默认属性的值

  • 数据包与属性无关,这样使用它们是不安全的。数据包在寻找钉子方面有点像锤子,但它们主要用于非节点特定的数据,您希望将这些数据存储在cookbook版本控制系统之外的某个地方。更具体地说,在这种情况下,
    data\u bag\u item
    DSL方法仅在配方代码中可用,而不在属性中可用。在节点属性中存储秘密是一个主要的解决方法,因为它们在运行结束后会被保存回Chef服务器


    tl;dr这不是一件事,请注意有关在自动化infra中管理机密的更多信息。

    数据包与属性无关,这样使用它们是不安全的。数据包在寻找钉子方面有点像锤子,但它们主要用于非节点特定的数据,您希望将这些数据存储在cookbook版本控制系统之外的某个地方。更具体地说,在这种情况下,
    data\u bag\u item
    DSL方法仅在配方代码中可用,而不在属性中可用。在节点属性中存储秘密是一个主要的解决方法,因为它们在运行结束后会被保存回Chef服务器


    tl;dr这不是一件事,请关注更多有关在自动化infra中管理机密的信息。

    看看这里,这些文章将解释所有(如果不是大多数的话)属性和数据包问题:以及。属性评估顺序表特别方便。看看这里,这些文章将解释所有(如果不是大多数的话)属性和数据包问题:和。属性求值顺序表特别方便。