Compare commits

3 changed files with 151 additions and 135 deletions
+1 -1
View File
@@ -1,2 +1,2 @@
# ansible-networkconfig # ansible-networkconfig
This repo is intended to be used as an ansible role This repo is intended to be used as an ansible role called network-config
+43 -6
View File
@@ -5,6 +5,8 @@
'ifenslave', 'ifenslave',
] ]
tags: interfaces tags: interfaces
when: ansible_distribution == "Ubuntu" and ansible_distribution_version != "22.04"
- name: Configure /etc/network/interfaces - name: Configure /etc/network/interfaces
template: template:
@@ -19,16 +21,37 @@
state: absent state: absent
tags: interfaces tags: interfaces
- name: Remove /etc/netplan/01-netcfg.yaml # - name: Get directory stats
file: # stat:
path: /etc/netplan/01-netcfg.yaml # path: "/etc/netplan"
state: absent # register: directory_stat
# - name: Delete directory
# file:
# path: "/etc/netplan"
# state: absent
# - name: Create directory
# file:
# path: "/etc/netplan"
# state: directory
# owner: "{{ directory_stat.stat.pw_name }}"
# group: "{{ directory_stat.stat.gr_name }}"
# mode: "{{ directory_stat.stat.mode }}"
- name: 'Collect files in netplan dir'
find:
paths: "/etc/netplan/"
hidden: True
recurse: True
# file_type: any # Added in ansible 2.3
register: collected_files
tags: interfaces tags: interfaces
- name: Remove /etc/netplan/50-cloud-init.yaml - name: Remove collected files
file: file:
path: /etc/netplan/50-cloud-init.yaml path: "{{ item.path }}"
state: absent state: absent
with_items: "{{ collected_files.files }}"
tags: interfaces tags: interfaces
- name: Add the bonding module - name: Add the bonding module
@@ -56,3 +79,17 @@
state: present state: present
line: 'bonding' line: 'bonding'
tags: interfaces tags: interfaces
- name: Make sure ip-tables makes it into /etc/modules for loading at boot time
lineinfile:
path: /etc/modules
state: present
line: 'ip-tables'
tags: interfaces
- name: Make sure ip6-tables makes it into /etc/modules for loading at boot time
lineinfile:
path: /etc/modules
state: present
line: 'ip6-tables'
tags: interfaces
+26 -47
View File
@@ -9,18 +9,20 @@ iface lo:1 inet static
{% if OOBNET_NIC is defined %} {% if OOBNET_NIC is defined %}
auto {{OOBNET_NIC}} auto {{OOBNET_NIC}}
allow-hotplug {{OOBNET_NIC}} allow-hotplug {{OOBNET_NIC}}
iface {{OOBNET_NIC}} inet static iface {{OOBNET_NIC}} inet {% if OOBNET_DHCP is defined and OOBNET_DHCP|lower == "true" %}dhcp{% else %}static
address {{OOBNET_IP}}/{{OOBNET_Netmask}} address {{OOBNET_IP}}/{{OOBNET_Netmask}}
{% if OOBNET_GW is defined %}gateway {{OOBNET_GW}}{% endif %} {% if OOBNET_GW is defined %}gateway {{OOBNET_GW}}{% endif %}
{% endif %} {% endif %}
{% endif %}
{% if autobgp_interfaces is defined %} {% if autobgp_interfaces is defined %}
{% for item in autobgp_interfaces %} {% for item in autobgp_interfaces %}
auto {{ item['name'] }} auto {{ item['name'] }}
allow-hotplug {{ item['name'] }} allow-hotplug {{ item['name'] }}
iface {{ item['name'] }} inet static iface {{ item['name'] }} inet {% if item['dhcp'] is defined and item['dhcp']|lower == "true" %}dhcp{% else %}static
address {{host_loopback_IP}}/32 address {{host_loopback_IP}}/32
{% endif %}
{% if item['mtu'] is defined %} {% if item['mtu'] is defined %}
mtu {{ item['mtu'] }} mtu {{ item['mtu'] }}
{% endif %} {% endif %}
@@ -34,12 +36,10 @@ iface {{ item['name'] }} inet static
pre-up sudo ethtool -s {{ item['name'] }} autoneg off pre-up sudo ethtool -s {{ item['name'] }} autoneg off
pre-up sudo ethtool -s {{ item['name'] }} speed 40000 pre-up sudo ethtool -s {{ item['name'] }} speed 40000
{% endif %} {% endif %}
{% if item['auto40G'] is defined and item['auto40G']|lower == "true" %} {% if item['routes'] is defined %}
#Auto speed {% for route in item['routes'] %}
pre-up sudo /bin/ip link set down {{ item['name'] }} && sleep 1 up ip route add {{ route['network'] }} via {{ route['gateway'] }} || true
pre-up sudo ethtool -s {{ item['name'] }} speed 40000 duplex full autoneg on {% endfor %}
post-up sudo /bin/ip link set up {{ item['name'] }}
{% endif %} {% endif %}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
@@ -49,17 +49,16 @@ iface {{ item['name'] }} inet static
auto {{ item['name'] }} auto {{ item['name'] }}
allow-hotplug {{ item['name'] }} allow-hotplug {{ item['name'] }}
iface {{ item['name'] }} inet static iface {{ item['name'] }} inet {% if item['dhcp'] is defined and item['dhcp']|lower == "true" %}dhcp{% else %}static
address {{item['ip_address']}}/{{item['ip_netmask']}} address {{item['ip_address']}}/{{item['ip_netmask']}}
{% endif %}
{% if item['mtu'] is defined %} {% if item['mtu'] is defined %}
mtu {{ item['mtu'] }} mtu {{ item['mtu'] }}
{% endif %} {% endif %}
{% if item['ip_gateway'] is defined %} {% if item['routes'] is defined %}
gateway {{item['ip_gateway']}} {% for route in item['routes'] %}
{% endif %} up ip route add {{ route['network'] }} via {{ route['gateway'] }} || true
{% if item['force10G'] is defined and item['force10G']|lower == "true" %} {% endfor %}
post-up sudo ethtool -s {{ item['name'] }} autoneg off
post-up sudo ethtool -s {{ item['name'] }} speed 10000
{% endif %} {% endif %}
{% endfor %} {% endfor %}
@@ -74,53 +73,33 @@ iface {{slave['name']}} inet manual
{% endfor %} {% endfor %}
auto {{ item['name'] }} auto {{ item['name'] }}
{% if item['ip_address'] is defined %} iface {{ item['name'] }} inet {% if item['dhcp'] is defined and item['dhcp']|lower == "true" %}dhcp{% else %}{% if item['ip_address'] is defined %}static
iface {{ item['name'] }} inet static
address {{item['ip_address']}}/{{item['ip_netmask']}} address {{item['ip_address']}}/{{item['ip_netmask']}}
{% else %} {% else %}manual{% endif %}{% endif %}
iface {{ item['name'] }} inet manual {% if item['routes'] is defined %}
{% for route in item['routes'] %}
up ip route add {{ route['network'] }} via {{ route['gateway'] }} || true
{% endfor %}
{% endif %} {% endif %}
{% if item['ip_gateway'] is defined %}
gateway {{item['ip_gateway']}}
{% endif %}
{% if item['mtu'] is defined %}
mtu {{ item['mtu'] }}
{% endif %}
bond-mode active-backup
bond-miimon 100
bond-slaves none
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if vlan_interfaces is defined and vlan_interfaces != [] %} {% if vlan_interfaces is defined and vlan_interfaces != [] %}
{% for item in vlan_interfaces %} {% for item in vlan_interfaces %}
auto {{ item['name'] }} auto {{ item['name'] }}
{% if item['ip_address'] is defined %} iface {{ item['name'] }} inet {% if item['dhcp'] is defined and item['dhcp']|lower == "true" %}dhcp{% else %}{% if item['ip_address'] is defined %}static
iface {{ item['name'] }} inet static
address {{item['ip_address']}}/{{item['ip_netmask']}} address {{item['ip_address']}}/{{item['ip_netmask']}}
{% else %} {% else %}manual{% endif %}{% endif %}
iface {{ item['name'] }} inet manual {% if item['routes'] is defined %}
{% for route in item['routes'] %}
up ip route add {{ route['network'] }} via {{ route['gateway'] }} || true
{% endfor %}
{% endif %} {% endif %}
{% if item['ip_gateway'] is defined %}
gateway {{item['ip_gateway']}}
{% endif %}
{% if item['mtu'] is defined %}
mtu {{ item['mtu'] }}
{% endif %}
vlan-raw-device {{ item['vlan-raw-device'] }}
{% endfor %} {% endfor %}
{% endif %} {% endif %}
{% if unused_interfaces is defined and unused_interfaces != [] %} {% if unused_interfaces is defined and unused_interfaces != [] %}
{% for item in unused_interfaces %} {% for item in unused_interfaces %}
allow-hotplug {{ item['name'] }} allow-hotplug {{ item['name'] }}
iface {{ item['name'] }} inet manual iface {{ item['name'] }} inet manual
{% endfor %} {% endfor %}