ansible - 在不知道键名的情况下遍历 Ansible 中的字典列表
问题描述
我一直在寻找解决方案,到目前为止似乎都没有。
我有一个任务输出注册为:
"action_list.start_artifacts": [
{
"account-troubletree-v1-1-0-18-21001": "docker run -d -p 21001:8080 -v /apps/projects/logs/account-troubletree-v1-1-0-18-21001:/logs -v /apps/projects/logs/account-troubletree-v1-1-0-18-21001/.configmap:/tibco/config -v /apps/gwportal/appdynamics/:/apps/gwportal/appdynamics/ --env-file /apps/projects/logs/account-troubletree-v1-1-0-18-21001/config.env --name account-troubletree-v1-1-0-18-21001 account-troubletree-v1:1.0.18"
},
{
"account-troubletree-v1-1-0-17-21002": "docker run -d -p 21002:8080 -v /apps/projects/logs/account-troubletree-v1-1-0-17-21002:/logs -v /apps/projects/logs/account-troubletree-v1-1-0-17-21002/.configmap:/tibco/config -v /apps/gwportal/appdynamics/:/apps/gwportal/appdynamics/ --env-file /apps/projects/logs/account-troubletree-v1-1-0-17-21002/config.env --name account-tree-v1-1-0-17-21002 account-tree-v1:1.0.17"
}
]
我正在尝试使用以下任务获取密钥名称,但它失败了。
- debug:
msg: "{{ item.key }}"
loop: "{{ action_list.start_artifacts }}"
解决方案
下面的任务完成了这项工作
- debug:
msg: "{{ item.keys()|first }}"
loop: "{{ action_list.start_artifacts }}"
下一个选项是
- debug:
msg: "{{ (item|dict2items).0.key }}"
loop: "{{ action_list.start_artifacts }}"
推荐阅读
- python - Conda 不会使用“conda update -n base -c defaults conda”更新到 4.6.14
- vba - 如果使用 DateDiff 函数,使用间隔“yyyy”,该函数是否只是减去 date1 和 date2 的年份值之间的差?
- scikit-learn - 如何解决无法从“sklearn.datasets”导入名称“fetch_openml”
- php - 如何将变量值组合为常量值并作为常量输出
- wordpress - 每页重复菜单,想删除
- ios - 在 Alamofire 中使用 get 请求时如何快速修复无效的 JSON 响应?
- java - Junit:为从组中删除学生编写单元测试用例
- javascript - 计算 ReactJS 中父评论的线程数
- google-sheets - 搜索多列并返回顶部单元格值
- jquery - 如何使用轮播关闭 X 上的 Bootstrap 4 弹出窗口