【发布时间】:2017-04-08 00:03:59
【问题描述】:
我有一个刚刚构建的新虚拟机。它已使用与所有其他节点相同的说明书进行引导。他们可以很好地加载这个数据包。新虚拟机不能。
堆栈跟踪错误::
/usr/bin/chef-client:57:in `load'
/usr/bin/chef-client:57:in `<main>'
>>>> Caused by ChefVault::Exceptions::SecretDecryption: DATABAG_NAME/ITEM is not encrypted with your public key. Contact an administrator of the vault item to encrypt for you!
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-vault-2.9.1/lib/chef-vault/item.rb:152:in `secret'
/opt/chef/embedded/lib/ruby/gems/2.3.0/gems/chef-vault-2.9.1/lib/chef-vault/item.rb:74:in `load_keys'
导致问题的代码 sn-p ::
databag_contents = ChefVault::Item.load(node['DATABAG_NAME']['ITEM']['databag'], node['DATABAG_NAME']['ITEM']['databag_item'])
我已经从 Chef 服务器更新了保管库
knife vault update DATABAG_NAME ITEM -S "name:new_node_name_here"
我认为这基本上是一个保管库错误,但事实上我已经运行了文档说应该用公钥加密数据包的单个命令......我不知道还能做什么.
谢谢。
(实际信息已被删除并替换为“DATABAG_NAME”和“ITEM”)
编辑::
我尝试过的一些其他事情在聊天中。我还做了一个knife vault update DATABAG_NAME ITEM -S "name:new_vm_name_here" --verbose --verbose 从那里的输出中获取密钥。我拿了这些钥匙,一一使用knife data bag edit DATABAG ITEM_keys手动添加钥匙。他们都没有工作。
【问题讨论】:
-
签入
DATABAG_ITEM_keys以查看已生成哪些加密副本。 -
你说的是数据包本身吗?用
knife data bag show DATABAG_NAME?我看到带有_keys的第二个条目,但之后没有任何内容。那是问题吗?这是其他人生成的,但它可能已被篡改 -
因此 chef-vault 创建了第二个带有
_keys后缀的数据包,其中的项目与原始数据包同名。其中包含 chef-vault 的元数据和非对称加密密钥。 -
您可以手动查看它的状态。
-
@coderanger 当我尝试
knife vault show DATABAG_NAME_keys时,它只是说找不到。
标签: chef-infra knife databags chef-vault