Handle bridge creation more sensibly
This commit is contained in:
		@@ -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
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user