pvc-ansible/roles/pvc/tasks/common/add_cluster_ips.yml
Joshua M. Boniface d24cb8a8ef Unify and standardize inventory_hostname
This was causing some confusing conflicts, so create a new fact called
"this_node" which is inventory_hostname.split('.')[0], i.e. the short
name, and use that everywhere instead of an FQDN or true inventory
hostname.
2023-09-01 15:42:28 -04:00

51 lines
1.9 KiB
YAML

---
- name: bring up interfaces
command: ifup {{ item }}
with_items: "{% for network in networks %}{{ networks[network].device }} {% endfor %}"
ignore_errors: yes
- name: set bridges dictionary (cluster != storage)
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
with_items:
- "{{ bridges }}"
- name: add underlying interfaces to bridges
command: brctl addif {{ item.bridge }} {{ item.device }}
ignore_errors: yes
with_items:
- "{{ bridges }}"
- name: set bridge interfaces up
command: ip link set {{ item.bridge }} up
ignore_errors: yes
with_items:
- "{{ bridges }}"
- name: add IP addresses to upstream bridge
command: ip address add {% for node in pvc_nodes if node.hostname == this_node %}{{ node.upstream_ip }}/{{ pvc_upstream_netmask }}{% endfor %} dev brupstream
ignore_errors: yes
- name: add IP addresses to cluster bridge
command: ip address add {% for node in pvc_nodes if node.hostname == this_node %}{{ node.cluster_ip }}/{{ pvc_cluster_netmask }}{% endfor %} dev brcluster
ignore_errors: yes
- name: add IP addresses to storage bridge (will error if storage == cluster)
command: ip address add {% for node in pvc_nodes if node.hostname == this_node %}{{ node.storage_ip }}/{{ pvc_storage_netmask }}{% endfor %} dev brstorage
ignore_errors: yes