在我的攻略中,我想遍历两个字典(或者一个字典和一个列表)。一个是域的列表(或字典),另一个是字典,其中包括aws区域和相应的服务器is,用于基于延迟的路由的DNS条目。我想为每个域为每个aws区域设置一个DNS记录。
- name: set DNS records for Domains
route53:
zone: "{{ item[0].key }}"
record: "{{ item[0].key }}"
value: "{{ item[1].value.server_ip }}"
region: "{{ item[1].key }}"
identifier: "{{ item[1].key }}"
with_nested:
- "{{ domain_dict }}"
- "{{ aws_dict }}"有了两个列表,示例就可以正常工作了。如何在至少使用一个字典的情况下使其工作?
domain_dict:(也可以是一个列表)
domain_dict:
mytest1.example:
mytest2.example:
mytest3.example:aws_dict:
aws_dict:
us-east-1:
# some other region-related stuff like ami-id,...
server_ip: 1.2.3.4
us-west-1:
# some other region-related stuff
server_ip: 1.2.3.5
us-west-2:
# some other region-related stuff
server_ip: 1.2.3.6
#all other aws-regions发布于 2016-04-09 06:11:43
定制的lookup_plugin是您最好的选择。否则这将是一个丑陋的set_fact序列。
PS:虽然你通常不应该这样做,但如果你想编写自己的方法来循环遍历任意数据结构,你可以阅读Developing Plugins来获得一些入门信息。上面的每一个特性在ansible中都是作为插件实现的,所以有很多实现可以参考
https://stackoverflow.com/questions/36500699
复制相似问题