linux - Chef 运行时未使用 Chef DataBag 值

标签 linux chef-infra databags

有一个简单的 DataBag 类似于:

{
    "dsa-key": {
      "app-key": "xxxxxxxx"
    },
    "region": {
        "dev": {
            "app-db": {
                    "user":"xxxxx",
                    "pass":"xxxxx"
            },
            "app-test-user": {
                    "user":"xxxxx",
                    "pass":"xxxxx"
            }
        },
        "qe": {
            "app-db": {
                    "user":"xxxxx",
                    "pass":"xxxxx"
            },
            "app-test-user": {
                    "user":"xxxxx",
                    "pass":"xxxxx"
            }
        },
    }
}

这是一个现有的数据包,但我不得不更换它,因为最初创建它的人离开了,knife 提示数据包没有使用我的 key 加密。

这就是我创建数据包的方式

knife vault create myDataBag auth "" --json myDataBag-credentials.json --search='role:build-myApp' --admins $USER --mode client

但是现在 cookbook 不会从新创建的数据包中获取值。

是否还有其他需要采取的步骤?当我通过 ChefManage 网站查看时,我确实注意到数据包中有一个“auth_keys”,在那里我看到了一个“客户端”(节点)列表,但列表很短,不包含我想要的节点要使用的数据包,也许这是问题所在?

如有任何帮助,我将不胜感激。

最佳答案

您的措辞非常含糊,但我猜问题是您对保险库的搜索查询不正确。出于安全考虑,我首先不鼓励使用该功能,但您可以通过 -A 添加您缺少的节点或修复您的搜索查询。使用 knife search 确保查询正确,然后根据需要刷新库。您应该在 _keys 项中看到所有客户端。

关于linux - Chef 运行时未使用 Chef DataBag 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39797830/

相关文章:

linux - 将 yubikey 用于 sudo

ruby - Chef Recipe : can't capture output from backticks to variable in ruby_block

ruby - Chef/Vagrant/Serverspec : specs ensuring that packages are installed fail, 但它们已安装

templates - 如何将2个数据包变量传递给模板 Chef

linux - runit 的服务重新启动如何立即返回?

php - 无法让 mbstring 在 Amazon linux 2 AMI 上工作

ruby - EncryptedDataBagItem.load 产生 'cannot convert nil into String'

c++ - Vim + OmniCppComplete : Completing on Class Members which are STL containers

ruby - libreadline5-dev 在 apt-cache 中没有候选者