Skip to content

update from MartinVerges #14

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 13 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
273 changes: 247 additions & 26 deletions README.md

Large diffs are not rendered by default.

5 changes: 2 additions & 3 deletions tasks/debian.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
- name: Install the required packages in Debian derivatives
apt:
name: "{{ item }}"
state: installed
with_items: "{{ network_pkgs }}"
name: "{{ network_pkgs }}"
state: present
environment: "{{ env }}"
when: network_check_packages

Expand Down
28 changes: 25 additions & 3 deletions tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
include: debian.yml
when: ansible_os_family == "Debian"


# Create network configuration files for any general interface
- name: Create the network configuration file for ethernet interfaces
template:
src: "ethernet_{{ ansible_os_family }}.j2"
Expand All @@ -18,14 +20,19 @@
when: network_ether_interfaces is defined
register: ether_result


# Create configs for bond devices and their slaves
- name: Create the network configuration file for slave in the bond devices
template:
src: "bond_slave_{{ ansible_os_family }}.j2"
dest: "{{ net_path }}/ifcfg-{{ item.1 }}"
with_subelements:
- "{{ network_bond_interfaces }}"
- bond_slaves
when: network_bond_interfaces is defined
when: network_bond_interfaces is defined and
not item.1 in network_ether_interfaces|map(attribute='device')|list and
not item.1 in network_bridge_interfaces|map(attribute='device')|list and
not item.1 in network_vlan_interfaces|map(attribute='device')|list
register: bond_port_result

- name: Create the network configuration file for bond devices
Expand All @@ -52,6 +59,8 @@
- network_bond_interfaces
- network_modprobe_persist


# Create configs for vlans
- name: Create the network configuration file for vlan devices
template:
src: "ethernet_{{ ansible_os_family }}.j2"
Expand All @@ -76,6 +85,8 @@
- network_vlan_interfaces
- network_modprobe_persist


# Create configs for bridge devices and their ports
- name: Create the network configuration file for bridge devices
template:
src: "bridge_{{ ansible_os_family }}.j2"
Expand All @@ -91,12 +102,23 @@
with_subelements:
- '{{ network_bridge_interfaces }}'
- bridge_ports
when: network_bridge_interfaces is defined
- skip_missing: True
when: network_bridge_interfaces is defined and
not item.1 in network_ether_interfaces|map(attribute='device')|list and
not item.1 in network_bond_interfaces|map(attribute='device')|list and
not item.1 in network_vlan_interfaces|map(attribute='device')|list
register: bridge_port_result


# Restart Network Interfaces (deconfigurate & reconfigurate interfaces)
- include: restartscript.yml
when: network_allow_service_restart and ansible_os_family == 'Debian'
and (ether_result is changed
or bond_port_result is changed
or bond_result is changed
or vlan_result is changed
or bridge_result is changed
or bridge_port_result is changed)

- name: Enable the "network" service
service:
Expand Down Expand Up @@ -145,7 +167,7 @@

- name: Restart the "NetworkManager" service on Red Hat systems
service:
name: network
name: NetworkManager
state: restarted
when: >
(network_allow_service_restart
Expand Down
9 changes: 4 additions & 5 deletions tasks/redhat.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,8 @@
---
- name: Install the required packages in Redhat derivatives
- name: Install the required packages in Redhat derivatives
yum:
name: "{{ item }}"
state: installed
with_items: "{{ network_pkgs }}"
name: "{{ network_pkgs }}"
state: present
when: network_check_packages

- name: Write configuration files for rhel route configuration with vlan
Expand Down Expand Up @@ -34,7 +33,7 @@
with_items: "{{ network_bridge_interfaces }}"
when: network_bridge_interfaces is defined and item.route is defined

- name: Cleanup gateway dev that does not set to the one we want
- name: Cleanup gateway dev that is not set to the one we want
lineinfile:
dest: /etc/sysconfig/network
regexp: "^GATEWAYDEV=(?!{{ gateway_dev }})"
Expand Down
50 changes: 50 additions & 0 deletions templates/Debian_bond_options.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
bond-mode {{ item.bond_mode }}
bond-miimon {{ item.bond_miimon | default(100) }}
{% if item.bond_mode == '802.3ad' or item.bond_mode == 4 %}
bond-lacp-rate {{ item.bond_lacp_rate | default('slow') }}
{% endif %}
{% if item.bond_mode == 2 or item.bond_mode == 'balance-xor'
or item.bond_mode == 4 or item.bond_mode == '802.3ad'
or item.bond_mode == 6 or item.bond_mode == 'balance-tlb'
%}
bond-xmit-hash-policy {{ item.bond_xmit_hash_policy | default('layer3+4') }}
{% endif %}
{% if item.bond_downdelay is defined %}
bond-downdelay {{ item.bond_downdelay }}
{% endif %}
{% if item.bond_updelay is defined %}
bond-updelay {{ item.bond_updelay }}
{% endif %}
{% if item.bond_ad_select is defined %}
bond-ad-select {{ item.bond_ad_select }}
{% endif %}
{% if item.bond_arp_interval is defined %}
bond-arp-interval {{ item.bond_arp_interval }}
{% endif %}
{% if item.bond_arp_ip_target is defined %}
bond-arp-ip-target {{ item.bond_arp_ip_target }}
{% endif %}
{% if item.bond_arp_validate is defined %}
bond-arp-validate {{ item.bond_arp_validate }}
{% endif %}
{% if item.bond_num_grat_arp is defined %}
bond-num-grat-arp {{ item.bond_num_grat_arp }}
{% endif %}
{% if item.bond_num_unsol_na is defined %}
bond-num-unsol-na {{ item.bond_num_unsol_na }}
{% endif %}
{% if item.bond_primary is defined %}
bond-primary {{ item.bond_primary }}
{% endif %}
{% if item.bond_primary_reselect is defined %}
bond-primary-reselect {{ item.bond_primary_reselect }}
{% endif %}
{% if item.bond_use_carrier is defined %}
bond-use-carrier {{ item.bond_use_carrier }}
{% endif %}
{% if item.bond_slaves is defined %}
bond-slaves {{ item.bond_slaves|join(' ') }}
{% endif %}
{% if item.bond_active_slave is defined %}
bond-active-slave {{ item.bond_active_slave }}
{% endif %}
41 changes: 41 additions & 0 deletions templates/Debian_bridge_options.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{% if item.bridge_ports is defined %}
bridge_ports {{ item.bridge_ports|join(' ') }}
{% else %}
bridge_ports none
{% endif %}
{% if item.bridge_ageing is defined %}
bridge_ageing {{ item.bridge_ageing }}
{% endif %}
{% if item.bridge_bridgeprio is defined %}
bridge_bridgeprio {{ item.bridge_bridgeprio }}
{% endif %}
{% if item.bridge_fd is defined %}
bridge_fd {{ item.bridge_fd }}
{% endif %}
{% if item.bridge_gcint is defined %}
bridge_gcint {{ item.bridge_gcint }}
{% endif %}
{% if item.bridge_hello is defined %}
bridge_hello {{ item.bridge_hello }}
{% endif %}
{% if item.hwaddress is defined %}
bridge_hw {{ item.hwaddress }}
{% endif %}
{% if item.bridge_maxage is defined %}
bridge_maxage {{ item.bridge_maxage }}
{% endif %}
{% if item.bridge_maxwait is defined %}
bridge_maxwait {{ item.bridge_maxwait }}
{% endif %}
{% if item.bridge_pathcost is defined %}
bridge_pathcost {{ item.bridge_pathcost }}
{% endif %}
{% if item.bridge_portprio is defined %}
bridge_portprio {{ item.bridge_portprio }}
{% endif %}
{% if item.bridge_stp is defined %}
bridge_stp {{ item.bridge_stp }}
{% endif %}
{% if item.bridge_waitport is defined %}
bridge_waitport {{ item.bridge_waitport }}
{% endif %}
3 changes: 3 additions & 0 deletions templates/RedHat_bond_options.j2
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ BONDING_OPTS="mode={{ item.bond_mode }} miimon={{ item.bond_miimon|default(100)
{%- if item.bond_use_carrier is defined %}
use_carrier={{ item.bond_use_carrier }}
{%- endif -%}
{%- if item.bond_ad_select is defined %}
ad_select={{ item.bond_ad_select }}
{%- endif -%}
{%- if item.bond_extra_opts is defined %}
{{ item.bond_extra_opts }}
{%- endif -%}
Expand Down
27 changes: 27 additions & 0 deletions templates/RedHat_generic_options.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
{% if item.dns_nameservers is defined %}
{% for dns_nameserver in item.dns_nameservers %}
DNS{{ loop.index }}={{ dns_nameserver }}
{% endfor %}
{% endif -%}

{% if item.nm_controlled is defined %}
NM_CONTROLLED={{ item.nm_controlled | bool | ternary("yes", "no") }}
{% endif -%}

{% if item.defroute is defined %}
DEFROUTE={{ item.defroute | bool | ternary("yes", "no") }}
{% endif -%}

{% if item.stp is defined %}
STP={{ item.stp }}
{% endif -%}

{% if item.mtu is defined %}
MTU={{ item.mtu }}
{% endif -%}

{% if item.firewalld_zone is defined %}
ZONE={{ item.firewalld_zone }}
{% endif -%}

ONBOOT={{ item.onboot|default("yes") }}
15 changes: 15 additions & 0 deletions templates/RedHat_ipv6_options.j2
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
{% if item.ipv6_address is defined %}
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_FORWARDING="yes"
IPV6_PEERDNS="yes"
IPV6_PEERROUTES="yes"
IPV6_PRIVACY="no"
IPV6ADDR={{ item.ipv6_address }}
{% endif -%}

{% if item.ipv6_gateway is defined %}
IPV6_DEFAULTGW="{{ item.ipv6_gateway }}"
{% endif -%}
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
VLAN=yes
TYPE=Vlan
{% if item.vlan_physdev is defined %}
PHYSDEV={{ item.vlan_physdev }}
{% else %}
Expand Down
55 changes: 1 addition & 54 deletions templates/bond_Debian.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,59 +7,7 @@ iface {{ item.device }} inet {% if item.bootproto is defined %}{{ item.bootproto
{% include 'route_Debian.j2' %}

{% if item.bond_mode is defined and item.bond_slaves is defined %}
{% if item.bond_mode is defined %}
bond-mode {{ item.bond_mode }}
bond-miimon {{ item.bond_miimon | default(100) }}
{% if item.bond_mode == '802.3ad' or item.bond_mode == 4 %}
bond-lacp-rate {{ item.bond_lacp_rate | default('slow') }}
{% endif %}
{% if item.bond_mode == 2 or item.bond_mode == 'balance-xor'
or item.bond_mode == 4 or item.bond_mode == '802.3ad'
or item.bond_mode == 6 or item.bond_mode == 'balance-tlb'
%}
bond-xmit-hash-policy {{ item.bond_xmit_hash_policy | default('layer3+4') }}
{% endif %}

{% if item.bond_downdelay is defined %}
bond-downdelay {{ item.bond_downdelay }}
{% endif %}
{% if item.bond_updelay is defined %}
bond-updelay {{ item.bond_updelay }}
{% endif %}
{% if item.bond_ad_select is defined %}
bond-ad-select {{ item.bond_bond_ad_select }}
{% endif %}
{% if item.bond_arp_interval is defined %}
bond-arp-interval {{ item.bond_arp_interval }}
{% endif %}
{% if item.bond_arp_ip_target is defined %}
bond-arp-ip-target {{ item.bond_arp_ip_target }}
{% endif %}
{% if item.bond_arp_validate is defined %}
bond-arp-validate {{ item.bond_arp_validate }}
{% endif %}
{% if item.bond_num_grat_arp is defined %}
bond-num-grat-arp {{ item.bond_num_grat_arp }}
{% endif %}
{% if item.bond_num_unsol_na is defined %}
bond-num-unsol-na {{ item.bond_num_unsol_na }}
{% endif %}
{% if item.bond_primary is defined %}
bond-primary {{ item.bond_primary }}
{% endif %}
{% if item.bond_primary_reselect is defined %}
bond-primary-reselect {{ item.bond_primary_reselect }}
{% endif %}
{% if item.bond_use_carrier is defined %}
bond-use-carrier {{ item.bond_use_carrier }}
{% endif %}
{% if item.bond_slaves is defined %}
bond-slaves {{ item.bond_slaves|join(' ') }}
{% endif %}
{% if item.bond_active_slave is defined %}
bond-active-slave {{ item.bond_active_slave }}
{% endif %}
{% endif %}
{% include 'Debian_bond_options.j2' %}
{% endif %}

{% if item.hwaddress is defined %}
Expand All @@ -81,4 +29,3 @@ iface {{ item.device }} inet6 static
{% endfor %}
{% endif %}
{% endif %}

Loading