Chef infra 向knife.rb添加默认机密文件的正确方法是什么?

Chef infra 向knife.rb添加默认机密文件的正确方法是什么?,chef-infra,knife,databags,Chef Infra,Knife,Databags,在my knife.rb中添加机密文件的正确格式是什么?我已经并且似乎无法获得正确的格式,或者它可能不起作用 我已尝试添加这两个选项: knife[:secret_file] = "/path/to/data_bag_secret" 及 当我使用刀形数据包创建包密钥时,这两种方法似乎都不能加密我的秘密 如果我使用刀数据包创建包密钥--secret file/path/to/data\u bag\u secret它会正确加密 当我看电视上的数据包时,它似乎没有加密,这就是为什么我认为它没有加密。

在my knife.rb中添加机密文件的正确格式是什么?我已经并且似乎无法获得正确的格式,或者它可能不起作用

我已尝试添加这两个选项:

knife[:secret_file] = "/path/to/data_bag_secret"

当我使用
刀形数据包创建包密钥时,这两种方法似乎都不能加密我的秘密

如果我使用
刀数据包创建包密钥--secret file/path/to/data\u bag\u secret
它会正确加密


当我看电视上的数据包时,它似乎没有加密,这就是为什么我认为它没有加密。当我手动传递开关时,它确实正确地加密。

因此有点奇怪,但是
--secret文件
没有填充它自己的配置值。如果您查看,您会看到它运行的是一个自定义进程,定义如下。设置
knife[:secret_file]
应该仍然有效,所有与行李加密相关的代码都使用这两种方法。一般来说,您不会为此使用
数据包创建
,也就是说,对于初始的包/项目创建。对于一般更新,请使用文件中的数据包
。还请记住,您需要从配置文件中删除该值才能实际查看加密数据,否则,
knife data bag show
将自动为您解密。

tl;dr:如果您使用的是Chef 12+,请另外传入命令行参数
--encrypt
标志。e、 g.
foo/data\u bags/foo.json文件中的刀数据包——加密

自Chef 12以来,您需要在使用
刀数据包[create | from file]
命令时输入
--encrypt
标志,以便使用
刀[secret]
刀[secret_file
knife.rb中的配置选项。这里的主要问题是chef文档尚未更新,以表明这一点。如果调用
knife数据包[create | from file]--help
您将在此处看到--encrypt标志选项的说明


答案来源于此处:。

当我查看manage.chef.io上的数据包时,它似乎没有加密,这就是为什么我认为它没有加密。当我手动通过交换机时,它在manage.chef.io上正确加密。等等,我想我误解了你。你是说我应该直接尝试设置该配置吗?是的,如果你设置
knife[:机密文件]
并从文件运行
刀数据包
上传时应该会加密。我从厨师支持那里得到了答案,尽管我还没有验证。希望今天或明天这样做,并回答我自己的问题。如果你对他们说的话感兴趣,请点击我。鼓励链接到外部资源,但请添加c链接周围的上文本,以便您的其他用户了解它是什么以及为什么存在。请始终引用重要链接中最相关的部分,以防目标站点无法访问或永久脱机。谢谢@pableiros,我已更新了原始答案,希望这会更好
secret_file "/path/to/data_bag_secret"