2016-04-08 26 views
1

Benim oyun kitabımda iki sözlükten (veya bir sözlükten ve bir listeden) geçiş yapmak isterim. Bunlardan biri, Etki Alanları'nın bir listesi (veya sözlüğü), diğeri ise gecikme tabanlı yönlendirme için DNS Girişleri için kullanılacak karşılık gelen sunucu IP'leriyle birlikte aws bölgelerini içeren bir sözlüktür. Her alan için her bir aws bölgesi için bir DNS kaydı ayarlamak istiyorum.Birden çok sözlükte/listede okunabilir döngü

- 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 }}" 

İki liste ile örnek iyi çalışıyor. En az bir sözlük kullanarak çalışmaya nasıl başlarım?

domain_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 
+1

Referans numaralarını içeren birçok uygulama vardır: Değişkenlerinizin içeriğini içerebilir misiniz: "domain_dict" ve "aws_dict" lütfen? –

+1

Ekledim – Philipp

cevap

1

Özel bir lookup_plugin en iyi bahis:

domain_dict: 
    mytest1.example: 
    mytest2.example: 
    mytest3.example: 

aws_dict (aynı zamanda bir liste olabilir). Aksi takdirde, set_fact'un çirkin bir dizisi olacaktır.

PS: Normal olarak, rastgele veri yapılarına geçiş yapmak için kendi yöntemlerinizi yazmak isterseniz, bazı başlangıç ​​bilgileri için Developing Plugins'u okuyabilirsiniz. Yukarıdaki özelliklerin her biri ansible eklentileri olarak uygulanmıştır, bu nedenle