Handle bridge creation more sensibly

This commit is contained in:
Joshua Boniface 2020-04-06 12:32:52 -04:00
parent b557b7d65d
commit 2afccf44fb
1 changed files with 29 additions and 15 deletions

View File

@ -1,35 +1,49 @@
--- ---
- name: bring up interfaces interface - name: bring up interfaces interface
command: ifup {{ item }} command: ifup {{ item }}
with_items: with_items: "{% for network in networks %}{{ networks[network].device }} {% endfor %}"
- "{{ pvc_cluster_device }}"
- "{{ pvc_storage_device }}"
- name: create bridge interfacec - name: set bridges dictionary (cluster != storage)
command: brctl addbr {{ item }} set_fact:
bridges:
- { "bridge": "brupstream", "device": "{{ pvc_upstream_device }}" }
- { "bridge": "brcluster", "device": "{{ pvc_cluster_device }}" }
- { "bridge": "brstorage", "device": "{{ pvc_storage_device }}" }
when: pvc_storage_device != pvc_cluster_device
- name: set bridges dictionary (cluster == storage)
set_fact:
bridges:
- { "bridge": "brupstream", "device": "{{ pvc_upstream_device }}" }
- { "bridge": "brcluster", "device": "{{ pvc_cluster_device }}" }
when: pvc_storage_device == pvc_cluster_device
- name: create bridge interfaces
command: brctl addbr {{ item.bridge }}
ignore_errors: yes ignore_errors: yes
with_items: with_items:
- "brcluster" - "{{ bridges }}"
- "brstorage"
- name: add underlying interfaces to bridges - name: add underlying interfaces to bridges
command: brctl addif {{ item.bridge }} {{ item.device }} command: brctl addif {{ item.bridge }} {{ item.device }}
ignore_errors: yes ignore_errors: yes
with_items: with_items:
- { "bridge": "brcluster", "device": "{{ pvc_cluster_device }}" } - "{{ bridges }}"
- { "bridge": "brstorage", "device": "{{ pvc_storage_device }}" }
- name: set bridge interfaces up - name: set bridge interfaces up
command: ip link set {{ item }} up command: ip link set {{ item.bridge }} up
ignore_errors: yes ignore_errors: yes
with_items: with_items:
- "brcluster" - "{{ bridges }}"
- "brstorage"
- name: add IP addresses to upstream bridge
command: ip address add {% for node in pvc_nodes if node.hostname == inventory_hostname %}{{ node.upstream_ip }}/{{ pvc_upstream_netmask }}{% endfor %} dev brupstream
ignore_errors: yes
- name: add IP addresses to cluster bridge - name: add IP addresses to cluster bridge
command: ip address add {% for node in pvc_nodes if node.hostname == ansible_hostname %}{{ node.cluster_ip }}/{{ pvc_cluster_netmask }}{% endfor %} dev brcluster command: ip address add {% for node in pvc_nodes if node.hostname == inventory_hostname %}{{ node.cluster_ip }}/{{ pvc_cluster_netmask }}{% endfor %} dev brcluster
ignore_errors: yes ignore_errors: yes
- name: add IP addresses to storage bridge - name: add IP addresses to storage bridge (will error if storage == cluster)
command: ip address add {% for node in pvc_nodes if node.hostname == ansible_hostname %}{{ node.storage_ip }}/{{ pvc_storage_netmask }}{% endfor %} dev brstorage command: ip address add {% for node in pvc_nodes if node.hostname == inventory_hostname %}{{ node.storage_ip }}/{{ pvc_storage_netmask }}{% endfor %} dev brstorage
ignore_errors: yes ignore_errors: yes