【问题标题】:Where is my Chef data bag item?我的 Chef 数据包项目在哪里?
【发布时间】:2015-04-16 15:05:49
【问题描述】:

我尝试使用以下命令从 chef-repo 目录中创建 Chef 数据包:

knife data bag create users deployer

我得到了回应:

Created data_bag[users]
Created data_bag_item[deployer]

但我无法找到数据包用户及其数据包项。它不在 data_bags 文件夹或我能看到的任何其他地方。如果我做一个

knife data bag show users

它将显示数据包项目名称。所以它必须保存在某个地方。文档告诉我数据包应该在文件夹 chef-repo -> data_bags -> users 中。但我的 data_bags 文件夹似乎是空的。那么我刚刚创建的数据包在哪里呢?

【问题讨论】:

    标签: chef-infra knife databags


    【解决方案1】:

    使用 Chef,您的本地计算机(称为“工作站”)和远程 Chef 服务器之间存在差异。在您的情况下,knife 命令在 remote Chef Server 上创建了数据包。

    我明白这可能会产生误导。一个数据包只不过是一个包含一个或多个.json 文件的文件夹。通常您在工作站上手动生成此结构(使用 GUI 或终端)。

    因此,在您的示例中,只需创建您描述的文件夹 (chef-repo -> data_bags -> users),然后使用说明书描述的架构创建一个 chef-repo/data_bags/users/deployer.json 文件。

    【讨论】:

    • 感谢您的解释。我回去重新阅读文档,果然它确实说“创建参数用于添加数据包服务器”。不知怎的,我错过了。无论如何,我不得不说,对于一个厨师菜鸟来说,这可能有点令人困惑。
    • 我们所有的文档都是在 GitHub 上的开源。 Chef 的技术作家很乐意听到这种反馈(Twitter 上的@chefdocs)。
    【解决方案2】:

    当你使用

    刀数据包创建用户部署器

    knife 在 chef-server 上创建该数据包。它在您当地的厨师工作站上不可用。但是您可以在本地工作站上下载此数据包。只需使用以下命令

    刀下载data_bags

    这个命令会在 chef-repo/data_bags/users/deployer.json 中下载你的数据包 你可以去那里直接更新这个 JSON 文件。完成后记得用“knife upload.”再次上传这个数据包

    【讨论】:

    • 命令knife upload . 真的帮助了我,因为我找不到任何地方如何将我的数据包上传到服务器。出于某种原因,knife data bag from file ... 没有找到我的数据包
    猜你喜欢
    • 1970-01-01
    • 2016-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多