在knife.rb中添加秘密文件的正确格式是什么?我read the docs似乎无法正确格式化,或者可能无效。
我尝试过添加两者:
knife[:secret_file] = "/path/to/data_bag_secret"
和
secret_file "/path/to/data_bag_secret"
当我使用knife data bag create bag key
如果我使用knife data bag create bag key --secret-file /path/to/data_bag_secret
,则会正确加密。
当我查看https://manage.chef.io上的数据包时,它似乎没有加密,这就是我认为它不加密的原因。当我手动通过交换机时,它会在https://manage.chef.io上正确加密。
答案 0 :(得分:1)
tl; dr:如果您使用的是Chef 12+,则另外传入命令行参数--encrypt
标志。例如knife data bag from file foo ./data_bags/foo.json --encrypt
从Chef 12开始,您需要在使用--encrypt
命令时传递knife data bag [create|from file]
标志,以便在knife.rb中使用knife[secret]
或knife[secret_file
配置选项。这里的主要问题是厨师文档尚未更新以表明这一点。如果你致电knife data bag [create|from file] --help
,你会看到--encrypt标志选项的解释。
答案来源:https://github.com/chef/chef/issues/3223#issuecomment-93338211。
答案 1 :(得分:0)
所以它有点奇怪,但--secret-file
没有填充自己的配置值。如果你查看https://github.com/chef/chef/blob/master/lib/chef/knife/data_bag_secret_options.rb#L48,你会看到它运行一个自定义proc,它定义如下。虽然设置knife[:secret_file]
仍然有效,但与包加密相关的所有代码都使用两者。一般情况下,您不会使用data bag create
来创建初始包/项目。对于常规更新,请使用data bag from file
。另请记住,您需要从配置文件中删除该值才能真正查看加密数据,否则knife data bag show
会自动为您解密。