如何使用awx-cli查询特定库存的用户/组访问权限信息
解决AWX CLI查询库存关联权限的问题
方法1:通过awx-cli role命令关联库存与权限
AWX CLI没有直接一键导出库存权限的命令,但可以通过角色(Role)对象关联查询,步骤如下:
获取目标库存ID
执行awx-cli inventory list -f json,从输出中提取目标库存的id值(例如123)。查询库存绑定的所有角色
运行以下命令(替换<inventory_id>为实际库存ID):awx-cli role list --filter "resource_type=inventory,resource_id=<inventory_id>" -a输出中的
name字段对应权限类型(如inventory_admin、inventory_view),id字段为角色ID。查询角色对应的用户/组/团队
针对每个角色ID(例如456),分别执行:# 查角色关联的用户 awx-cli role users list --role 456 -a # 查角色关联的组 awx-cli role groups list --role 456 -a # 查角色关联的团队 awx-cli role teams list --role 456 -a
方法2:结合AWX API批量查询(更高效)
AWX CLI本质是API的封装,直接调用API可批量获取数据,减少重复操作:
获取API令牌
先登录生成令牌:awx-cli login --username your_user --password your_pass令牌会自动保存到
~/.awx/credentials,后续请求可直接调用。查询库存权限关联数据
用curl请求API(替换<inventory_id>和<your-awx-url>为实际值):curl -H "Authorization: Bearer $(cat ~/.awx/credentials | grep token | cut -d' ' -f2)" \ https://<your-awx-url>/api/v2/inventories/<inventory_id>/roles/ \ -H "Content-Type: application/json" | jq '.results[] | {role_name: .name, role_id: .id, users: .related.users, groups: .related.groups, teams: .related.teams}'该请求会返回库存所有角色的权限类型,以及对应的用户/组/团队关联链接,可继续请求这些链接获取具体成员信息。
补充说明
awx-cli users list -a仅返回全局权限,库存级权限必须通过角色关联查询——AWX的权限模型是**角色-资源-主体(用户/组/团队)**的三层关联结构。- 若需批量处理多个库存,可编写简单shell脚本循环遍历库存ID,自动执行上述命令。
内容的提问来源于stack exchange,提问作者Alexia Rivera
相关产品推荐
相关产品推荐

