network/tasks/RedHat/network_manager.yaml

61 lines
2.6 KiB
YAML
Raw Normal View History

2021-10-26 21:34:13 +00:00
---
- block:
- name: Configure interfaces with nmcli
community.general.nmcli:
conn_name: "{{ iface.conn_name }}"
type: "{{ iface.type | default('ethernet') }}"
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
gw4: "{{ iface.gw4 | default(omit) }}"
gw6: "{{ iface.gw6 | default(omit) }}"
never_default4: "{{ iface.never_default4 | default('yes') }}"
vlanid: "{{ iface.vlanid | default(omit) }}"
mtu: "{{ iface.mtu | default(0) }}"
zone: "{{ iface.zone | default(omit) }}"
state: present
notify:
- Reload interface with nmcli
2021-10-27 11:31:55 +00:00
- name: Get existing ipv4 routes
2021-10-26 21:34:13 +00:00
shell: nmcli -g ipv4.routes connection show {{ iface.conn_name }}
register: existing_routes4_res
changed_when: False
2021-10-27 11:31:55 +00:00
- name: Get existing ipv6 routes
shell: nmcli -g ipv6.routes connection show {{ iface.conn_name }}
register: existing_routes6_res
changed_when: False
2021-10-26 21:34:13 +00:00
2021-10-27 11:31:55 +00:00
- name: Set fact about existing and new ipv4/ipv6 routes
2021-10-26 21:34:13 +00:00
set_fact:
existing_routes4: "{{ existing_routes4_res.stdout | hash('sha256') }}"
new_routes4: "{{ '' if iface.routes4 is not defined else (iface.routes4|join(', ') | hash('sha256')) }}"
2021-10-27 11:31:55 +00:00
existing_routes6: "{{ existing_routes6_res.stdout | hash('sha256') }}"
new_routes6: "{{ '' if iface.routes6 is not defined else (iface.routes6|join(', ') | hash('sha256')) }}"
2021-10-26 21:34:13 +00:00
#- debug:
# msg: "{{ existing_routes4_res.stdout | hash('sha256') }}"
#- debug:
# msg: "{{ '' if iface.routes4 is not defined else (iface.routes4|join(', ') | hash('sha256')) }}"
2021-10-27 11:31:55 +00:00
- name: Update routes and rules with nmcli
2021-10-26 21:34:13 +00:00
community.general.nmcli:
conn_name: "{{ iface.conn_name }}"
type: "{{ iface.type | default('ethernet') }}"
ip4: "{{ omit if iface.ip4 is not defined else (iface.ip4|join(', ')) }}"
ip6: "{{ omit if iface.ip6 is not defined else (iface.ip6|join(', ')) }}"
gw4: "{{ iface.gw4 | default(omit) }}"
gw6: "{{ iface.gw6 | default(omit) }}"
never_default4: "{{ iface.never_default4 | default('yes') }}"
vlanid: "{{ iface.vlanid | default(omit) }}"
2021-10-27 11:38:22 +00:00
routes4: "{{ omit if existing_routes4 == new_routes4 else iface.routes4 }}"
2021-10-26 21:34:13 +00:00
routing_rules4: "{{ iface.routing_rules4 | default(omit) }}"
2021-10-27 11:38:22 +00:00
routes6: "{{ omit if existing_routes6 == new_routes6 else iface.routes6 }}"
2021-10-26 21:34:13 +00:00
routing_rules6: "{{ iface.routing_rules6 | default(omit) }}"
mtu: "{{ iface.mtu | default(0) }}"
zone: "{{ iface.zone | default(omit) }}"
state: present
notify:
- Reload interface with nmcli