Ank*_*pta 6 ansible ansible-2.x ansible-facts
我遇到了一种情况,我试图从列表中删除该项目。但我没有得到预期的结果。请帮助我我在这里做错了什么?
这是清单:
"get_ec2_id.instances[0].tags": {
"Name": "test-db-system-2",
"aws:cloudformation:logical-id": "DBInstance",
"aws:cloudformation:stack-id": "arn:aws:cloudformation:us-east-1:123456789012:stack/test-db-system-2/0115v0a0-5d44-17e8-a024-503ama4a5qd1",
"aws:cloudformation:stack-name": "test-db-system-2",
"dbsystem:stack": "test-db-system-2",
"dbsystem:type": "db"
}
Run Code Online (Sandbox Code Playgroud)
}
我正在尝试使用以下过滤器从列表中删除所有“aws:cloudformation”标签:
"{{ get_ec2_id.instances[0].tags | reject('search','aws:') | list }}"
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
ok: [10.52.8.101] => {
"instances_tags": [
"dbsystem:type",
"dbsystem:stack",
"Name"
]
}
Run Code Online (Sandbox Code Playgroud)
但我预计结果如下:
"instances_tags": [
"dbsystem:stack": "test-db-system-2",
"dbsystem:type": "db"
"Name" : "test-db-system-2",
]
}
Run Code Online (Sandbox Code Playgroud)
帮我解决问题。
更通用的解决方案,其中输入是字典,黑名单是列表:
---
- set_fact:
blacklist:
- bad1
- bad2
- set_fact:
output: {}
- name: remove blacklisted items from input
set_fact:
output: "{{ output | combine({item.key: item.value}) }}"
when: item.key not in blacklist
loop: "{{ input | dict2items }}"
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
9861 次 |
最近记录: |