允许Chef节点上传cookbook

 微笑 发布于 2023-02-03 10:19

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

但是,客户端无权上传cookbook,但我无法弄清楚如何调整ACL设置以使其工作.

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

我试过了(但失败了同样的错误):

    ci在Opscode公司管理客户机的读取权限.

    使用验证器用户上传cookbook.

    进行非Spork上传(sudo bundle exec knife upload cookbooks/teamcity),但失败了403

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

客户端和验证器密钥位于/etc/chef,但我有一个Knife配置/.chef/knife.rb(我正在尝试从上传).

我猜我需要设置一些权限,但是在新旧Opscode管理界面中进行了调整之后,我已经没有线索了.

是什么赋予了?

注意:我们使用的是Opscode Enterprise Chef版本.

1 个回答
  • 根据Chef支持,执行此操作的首选方法是创建新用户并使用它从CI节点与Chef Server进行交互:

    用户更恰当地称为"Chef Server API的任何用户,而不是运行chef-client程序的节点"

    如果您想避免上述必须为客户端分配管理员权限的问题,您可以创建一个新用户,该用户将用于从构建服务器进行上载.允许所有用户上传cookbook,而无需成为Admins组的成员.

    所以,总结一下:

      在Opscode管理员中创建一个新用户

      使用户的密钥(.pem)在CI节点上可用.

      确保(1)中的用户用于所有刀具命令(参见--user--key刀具选项),例如knife upload cookbook <name> --user ci_user --key .chef/ci_user.pem

    2023-02-03 10:24 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有