Hosted Chef权限问题:上传Cookbook失败、无法查看节点及权限修改方法
解决Hosted Chef权限问题的实操步骤
嘿,你的问题很典型——Hosted Chef里新创建的用户哪怕能成功和服务器建立通信,默认也没有操作Cookbook、查看节点这类资源的权限。我来一步步帮你搞定:
一、用Hosted Chef Web管理后台(Chef Manage)操作(推荐)
Hosted Chef自带可视化管理界面,操作起来最直观,你直接打开浏览器访问https://manage.chef.io,用你的组织管理员账号登录:
1. 先检查用户所属的组
- 登录后进入你的
samsam组织 - 左侧菜单点Users,找到
naganode这个用户 - 看一下它所属的组:如果不在
admins或者developers这类有权限的组里,那肯定会出现权限不足的提示
2. 给用户分配权限的两种方式
方式1:直接加入管理员组(快速解决,拥有全权限)
如果你不需要精细控制权限,直接把用户加到admins组最省事:
- 左侧菜单点Groups,找到
admins组进去 - 点Add User,选中
naganode添加进去就行 - 这样用户立刻就拥有组织内所有资源的操作权限,包括上传Cookbook、查看/修改节点
方式2:创建自定义组做精细权限控制(更安全)
如果不想给用户全管理员权限,可以建一个自定义组,只分配需要的权限:
- 左侧菜单点Groups → Create Group,比如建个叫
cookbook-publishers的组 - 进入这个组的Permissions标签页:
- 找到Cookbooks,勾选
Create和Read权限(上传需要Create,查看需要Read) - 找到Nodes,勾选
Read权限(这样就能列出节点了)
- 找到Cookbooks,勾选
- 最后把
naganode用户添加到这个自定义组里
3. 验证权限是否生效
退出管理后台,重新跑你的knife命令试试:
knife cookbook upload sample --config ./knife.rb knife node list --config ./knife.rb
二、用knife命令行操作(适合习惯命令行的用户)
如果你喜欢用命令行,前提是你当前用的账号有管理员权限,然后执行以下命令:
快速方案:把用户加到admins组
knife group add user admins naganode --config ./knife.rb
精细权限方案:直接给用户分配特定权限
# 给用户所有Cookbook的创建权限 knife acl add cookbook '*' create naganode --config ./knife.rb # 给用户所有节点的读取权限 knife acl add node '*' read naganode --config ./knife.rb
这里的*代表所有资源,如果你想限制到特定Cookbook或节点,把*换成具体名称就行。
额外提醒
- Hosted Chef的权限是基于组或者直接分配的,新用户默认没有任何资源的操作权限,哪怕能认证成功
- 权限变更后可能需要等个几秒钟同步,要是第一次执行还报错,稍等一下再试
- 如果你是组织的管理员,记得别随便给普通用户全权限,用自定义组做精细控制更安全
内容的提问来源于stack exchange,提问作者Sankar
相关产品推荐
相关产品推荐

