2017-06-27 4 views
0

Ich versuche eine Rolle zu schreiben, um einen Keepalived-Cluster zu konfigurieren. Ich hatte gehofft, einzigartige Informationen in die Vorlage basierend auf der IP der Zielbox zu übergeben.Ist es möglich, mit dem Modul with_dict zu antworten?

In diesem Szenario: Server A ist 192.168.1.140 und Server B ist 192.182.1.141 und die VIP 192.168.1.142

das Wörterbuch so etwas wie dieses wäre aussehen würde:

--- 
    192.168.1.140: 
    peer: 192.168.1.141 
    priority: 110 
    vip: 192.168.1.142 

    192.1.168.1.141 
    peer:192.168.1.140 
    priority: 100 
    vip: 192.168.1.142 

Ich war die Aufgabe der Hoffnung, wie dies aussehen würde:

--- 
- name: keepalived template 
    template: 
    src: keepalived.j2 
    dest: /etc/keepalived/keepalived.conf 
    owner: root 
    group: root 
    mode: 0644 
    with_dict: '{{ ansible_default_ipv4.address }}' 

und die Vorlage würde wie folgt aussehen:

} 
vrrp_instance VI_1 { 
interface eth0 
priority {{ item.value.priority }} 
... 
unicast_scr {{ ansible_default_ipv4.address }} 
unicast_peer { 
    {{ item.value.peer }} 
} 
virtual_ipaddresses { 
    {{ item.value.vip }} } 
} 

würde Einsicht sein schätzten John

Antwort

0

Gruppe Ihre Kollegen Details unter einem gemeinsamen Wörterbuch:

--- 
peer_configs: 
    192.168.1.140: 
    peer: 192.168.1.141 
    priority: 110 
    vip: 192.168.1.142 
    192.1.168.1.141 
    peer:192.168.1.140 
    priority: 100 
    vip: 192.168.1.142 

with_... ist in der Regel für Looping, Sie jede Schleife nicht brauchen, wie ich sehe, verwenden, so:

- name: keepalived template 
    template: 
    src: keepalived.j2 
    dest: /etc/keepalived/keepalived.conf 
    owner: root 
    group: root 
    mode: 0644 
    vars: 
    peer_config: '{{ peer_configs[ansible_default_ipv4.address] }}' 

und Vorlage:

vrrp_instance VI_1 { 
interface eth0 
priority {{ peer_config.priority }} 
... 
unicast_scr {{ ansible_default_ipv4.address }} 
unicast_peer { 
    {{ peer_config.peer }} 
} 
virtual_ipaddresses { 
    {{ peer_config.vip }} } 
} 
+0

Ahh ich sehe den Unterschied. Das ist sehr hilfreich. Vielen Dank. –

Verwandte Themen