From 94a32cf9b30aa5d01f2ff700cfca540a449a0c59 Mon Sep 17 00:00:00 2001 From: Markus Katharina Brechtel Date: Tue, 20 Dec 2016 05:36:08 +0000 Subject: [PATCH] current --- defaults/main.yml | 1 + tasks/main.yml | 12 +++++--- templates/network-interfaces.j2 | 49 +++++++++++++++++++++++++++++++ templates/persistent-net.rules.j2 | 3 ++ 4 files changed, 61 insertions(+), 4 deletions(-) create mode 100644 defaults/main.yml create mode 100644 templates/network-interfaces.j2 create mode 100644 templates/persistent-net.rules.j2 diff --git a/defaults/main.yml b/defaults/main.yml new file mode 100644 index 0000000..222750a --- /dev/null +++ b/defaults/main.yml @@ -0,0 +1 @@ +#network_interfaces_default_interface: "{{ undefined | default(ansible_default_ipv6.interface) | default(ansible_default_ipv4.interface) }}" diff --git a/tasks/main.yml b/tasks/main.yml index 7f9d57b..56b72ca 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -1,7 +1,11 @@ --- -- setup: -- debug: msg={{ hostvars[inventory_hostname] }} +- name: network interfaces configuration + template: + src: network-interfaces.j2 + dest: "{{ root_target_directory | default('') }}/etc/network/interfaces" -#- name: network interface configuration -# template: src=interface.j2 dest={{ network_config_target }}/etc +#- name: persistent net rules +# template: +# src: persistent-net.rules.j2 +# dest: "{{ network_interfaces_target }}/etc/udev/rules.d/z25_persistent-net.rules" diff --git a/templates/network-interfaces.j2 b/templates/network-interfaces.j2 new file mode 100644 index 0000000..e1c1e5c --- /dev/null +++ b/templates/network-interfaces.j2 @@ -0,0 +1,49 @@ +# interfaces(5) file used by ifup(8) and ifdown(8) + +{{ ansible_managed | comment }} + +auto lo +iface lo inet loopback + +{% for netname,netif in network_interfaces.iteritems() %} +### {{ netname }} ### +auto {{ netif.device }} +allow-hotplug {{ netif.device }} + +{% if netif.bridge is defined %} +iface {{ netif.device }} inet manual + bridge_ports {{ netif.bridge.ports | join(" ") }} + bridge_stp {{ netif.bridge.stp | default(false) | ternary('on','off') }} +{% endif %} + +{% for ipv6 in netif.ipv6 | default([]) %} +iface {{ netif.device }} inet6 {{ ipv6.method }} +{% if ipv6.method == "static" %} + address {{ ipv6.address | ipv6('address') }} + netmask {{ ipv6.address | ipv6('prefix') }} +{% if ipv6.gateway is defined %} + gateway {{ ipv6.gateway | ipv6('address') }} +{% endif %} +{% endif %} +{% endfor %} + +{% for ipv4 in netif.ipv4 | default([]) %} +iface {{ netif.device }} inet {{ ipv4.method }} +{% if ipv4.method == "static" %} + address {{ ipv4.address | ipv4('address') }} + network {{ ipv4.address | ipv4('network') }} + netmask {{ ipv4.address | ipv4('netmask') }} + broadcast {{ ipv4.address | ipv4('broadcast') }} +{% if ipv4.gateway is defined %} + gateway {{ ipv4.gateway | ipv4('address') }} +{% endif %} +{% if ipv4.gateway is defined %} + gateway {{ ipv4.gateway | ipv4('address') }} +{% endif %} +{% endif %} +{% endfor %} + +{% endfor %} + +# Include files from /etc/network/interfaces.d: +source-directory /etc/network/interfaces.d diff --git a/templates/persistent-net.rules.j2 b/templates/persistent-net.rules.j2 new file mode 100644 index 0000000..4e442fe --- /dev/null +++ b/templates/persistent-net.rules.j2 @@ -0,0 +1,3 @@ +{% for netif in network_interfaces %} +SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="{{ netif.mac_address }}", ATTR{type}=="1", KERNEL=="eth*", NAME="{{ netif.device }}" +{% endfor %}