我不太清楚如何将我的属性填充到我的食谱中。
我能够得到它们的用途......然而,我尝试使用environments
和data 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
。
答案 0 :(得分:0)
数据包与属性无关,使用它们是不安全的。数据包对于寻找钉子来说是一个锤子,但它们主要用于非节点特定的数据,您希望存储在烹饪书版本控制系统之外的某个地方。更具体地说,在这种情况下,data_bag_item
DSL方法仅在配方代码中可用,而不在属性中。在节点属性中存储机密是一个主要的步枪,因为它们会在运行结束后保存回Chef服务器。
tl; dr这不是一件事,请观看https://coderanger.net/talks/secrets/以获取有关在自动化基础设施中管理机密的更多信息。