From 73a29b06191302b6b1148e7958ae2eab44841bad Mon Sep 17 00:00:00 2001 From: Robert Kaussow Date: Sun, 18 Sep 2022 13:02:53 +0200 Subject: [PATCH] fix: fix rhel9 compatibility --- defaults/main.yml | 15 +++-- tasks/config.yml | 52 ----------------- tasks/main.yml | 56 ++++++++++++++++++- templates/etc/hosts.j2 | 8 +-- templates/etc/resolv.conf.j2 | 2 +- .../etc/sysconfig/network-scrips/ifcfg.j2 | 12 +++- 6 files changed, 78 insertions(+), 67 deletions(-) delete mode 100644 tasks/config.yml diff --git a/defaults/main.yml b/defaults/main.yml index 5ac9e6f..1096628 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,10 +1,11 @@ --- network_hostname: localhost network_fqdn: localdomain -network_defaultif: eth0 + +network_reboot_enabled: True network_ipv6_enabled: True -network_dns_server: 8.8.8.8 +network_defaultif: eth0 network_interfaces: {} # @var network_interfaces:example: > # network_interfaces: @@ -26,9 +27,13 @@ network_routes: {} # 10.168.0.0/27 via 10.168.0.1 dev eth0 # @end -network_hosts_entries: [] -# @var network_hosts_entries:example: > -# network_hosts_entries: +network_resolve_enabled: False +network_resolve_server: + - 8.8.8.8 + +network_hosts_extra: [] +# @var network_hosts_extra:example: > +# network_hosts_extra: # - hostname: myhost # fqdn: myhost.rknet.org # address: 1.2.3.4 diff --git a/tasks/config.yml b/tasks/config.yml deleted file mode 100644 index 0424c51..0000000 --- a/tasks/config.yml +++ /dev/null @@ -1,52 +0,0 @@ ---- -- block: - - name: Set hostname - hostname: - name: "{{ network_hostname }}" - when: network_hostname - notify: __host_reboot - - - name: Set hosts file - template: - src: etc/hosts.j2 - dest: /etc/hosts - owner: root - group: root - mode: 0644 - notify: __host_reboot - - - name: Add network interface configuration - template: - src: etc/sysconfig/network-scrips/ifcfg.j2 - dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.key }}" - owner: root - group: root - mode: 0644 - loop: "{{ network_interfaces | dict2items }}" - loop_control: - label: "{{ item.key }}" - when: item.key in ansible_interfaces or item.key.split(":")[0] in ansible_interfaces - notify: __network_restart - - - name: Add static routes - copy: - content: "{{ item.value }}" - dest: "/etc/sysconfig/network-scripts/route-{{ item.key }}" - owner: root - group: root - mode: 0644 - loop: "{{ network_routes | dict2items }}" - loop_control: - label: "{{ item.key }}" - when: item.key in ansible_interfaces - notify: __network_restart - - - name: Set dns server - template: - src: etc/resolv.conf.j2 - dest: /etc/resolv.conf - owner: root - group: root - mode: 0644 - become: True - become_user: root diff --git a/tasks/main.yml b/tasks/main.yml index 388eba4..6197a25 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,5 +1,57 @@ --- - name: Set flag require_reboot set_fact: - require_reboot: "{{ True if network_fqdn != ansible_fqdn else False }}" -- include_tasks: config.yml + require_reboot: "{{ True if (network_fqdn != ansible_fqdn and network_reboot_enabled == True) else False }}" + +- block: + - name: Set hostname + hostname: + name: "{{ network_hostname }}" + when: network_hostname + notify: __host_reboot + + - name: Write hosts file + template: + src: etc/hosts.j2 + dest: /etc/hosts + owner: root + group: root + mode: 0644 + notify: __host_reboot + + - name: Add network interface configuration + template: + src: etc/sysconfig/network-scrips/ifcfg.j2 + dest: "/etc/sysconfig/network-scripts/ifcfg-{{ item.key }}" + owner: root + group: root + mode: 0644 + loop: "{{ network_interfaces | dict2items }}" + loop_control: + label: "{{ item.key }}" + when: item.key in ansible_interfaces or item.key.split(":")[0] in ansible_interfaces + notify: __network_restart + + - name: Add static routes + copy: + content: "{{ item.value }}" + dest: "/etc/sysconfig/network-scripts/route-{{ item.key }}" + owner: root + group: root + mode: 0644 + loop: "{{ network_routes | dict2items }}" + loop_control: + label: "{{ item.key }}" + when: item.key in ansible_interfaces + notify: __network_restart + + - name: Set DNS servers + template: + src: etc/resolv.conf.j2 + dest: /etc/resolv.conf + owner: root + group: root + mode: 0644 + when: network_resolve_enabled | bool + become: True + become_user: root diff --git a/templates/etc/hosts.j2 b/templates/etc/hosts.j2 index 9da906f..e18f659 100644 --- a/templates/etc/hosts.j2 +++ b/templates/etc/hosts.j2 @@ -1,14 +1,14 @@ #jinja2: lstrip_blocks: True {{ ansible_managed | comment }} -127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 +127.0.0.1 localhost localhost.localdomain {% if network_ipv6_enabled %} -::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 +::1 localhost6 localhost6.localdomain6 {% endif %} {% if network_hostname is defined and network_fqdn is defined and network_interfaces[network_defaultif].ipaddr is defined %} {{ network_interfaces[network_defaultif].ipaddr }} {{ network_fqdn }} {{ network_hostname }} {% endif %} -{% if network_hosts_entries %} -{% for item in network_hosts_entries %} +{% if network_hosts_extra %} +{% for item in network_hosts_extra %} {{ item.address }} {{ item.fqdn }} {{ item.hostname }} {% endfor %} {% endif %} diff --git a/templates/etc/resolv.conf.j2 b/templates/etc/resolv.conf.j2 index 195de64..4618f4a 100644 --- a/templates/etc/resolv.conf.j2 +++ b/templates/etc/resolv.conf.j2 @@ -1,4 +1,4 @@ {{ ansible_managed | comment }} -{% for item in network_dns_server %} +{% for item in network_resolve_server %} nameserver {{ item }} {% endfor %} diff --git a/templates/etc/sysconfig/network-scrips/ifcfg.j2 b/templates/etc/sysconfig/network-scrips/ifcfg.j2 index a799cc7..b343770 100644 --- a/templates/etc/sysconfig/network-scrips/ifcfg.j2 +++ b/templates/etc/sysconfig/network-scrips/ifcfg.j2 @@ -1,6 +1,12 @@ -#jinja2: trim_blocks: True, lstrip_blocks: True +#jinja2: lstrip_blocks: True {{ ansible_managed | comment }} DEVICE="{{ item.key }}" -{%+ for key, value in item.value.items() -%} - {{ key | upper }}="{{ value }}" +{% for key, value in item.value.items() %} + {% if key | lower == "dns" and not value is string and value is iterable %} + {% for item in value -%} + DNS{{ loop.index }}={{ item }} + {% endfor %} + {% else %} + {{- key | upper }}={{ value }} + {% endif %} {% endfor %}