gpt4 book ai didi

chef-infra - 允许 Chef 节点上传 Recipe

转载 作者:行者123 更新时间:2023-12-04 07:38:35 25 4
gpt4 key购买 nike

我正在尝试让我们的 CI 机器(运行 Teamcity)在完成所有测试后上传和推广 Chef 食谱,使其成为我们部署管道的适当部分。

但是,客户端无权上传食谱,但我不知道如何调整 ACL 设置以使其工作。

$ sudo bundle exec knife spork upload teamcity --environment production
ERROR: You authenticated successfully to https://api.opscode.com/organizations/<my-org> as ci but you are not authorized for this action
Response: missing create permission

我试过(但因同样的错误而失败):
  • ci Opscode 管理中的客户端读取权限。
  • 使用验证器用户上传食谱。
  • 执行非 Spork 上传 ( sudo bundle exec knife upload cookbooks/teamcity ),但失败并显示 403

  • 我也试过只列出客户( sudo bundle exec knife client list ),但失败了 Response: missing create permission .

    客户端和验证器 key 位于 /etc/chef ,但我在 <repo-path>/.chef/knife.rb 中有一个 Knife 配置(我正在尝试从 <repo-path> 上传)。

    我猜我需要设置某种权限,但是在新旧 Opscode 管理界面中摸索之后,我一无所知。

    是什么赋予了?

    注意:我们使用的是由 Opscode 托管的 Enterprise Chef 版本。

    最佳答案

    根据 Chef 支持,执行此操作的首选方法是创建一个新用户并使用它从 CI 节点与 Chef 服务器交互:

    A User is more properly termed "Any user of the Chef Server API that is not a node running the chef-client program"

    If you would like to avoid the above problem of having to assign Admin rights to a client, you can create a new User that will be used for doing uploads from the build server. All Users are allowed to upload cookbooks without needing to be members of the Admins group.



    所以,总结一下:
  • 在 Opscode 管理中创建一个新用户
  • 使用户的 key ( .pem ) 在 CI 节点上可用。
  • 确保 (1) 中的用户用于所有 Knife 命令(参见 --user--key Knife 选项),例如knife upload cookbook <name> --user ci_user --key .chef/ci_user.pem
  • 关于chef-infra - 允许 Chef 节点上传 Recipe ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101974/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com