diff --git a/defaults/main.yml b/defaults/main.yml index 51a9d6c35f98874ab016f7e898ce82d00d8c8da3..1988c19836a9797fa6ef1ce70a9025a2d57051ee 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -1,22 +1,22 @@ -interface_default_file: /etc/network/interfaces -interface_directory: '{{ interface_default_file }}.d' -interface_file_name: -interface_file: ' - {%- if interface_file_name is defined and interface_file_name -%} - {{ interface_directory }}/{{ interface_file_name }} +kypo_interface_default_file: /etc/network/interfaces +kypo_interface_directory: '{{ kypo_interface_default_file }}.d' +kypo_interface_file_name: +kypo_interface_file: ' + {%- if kypo_interface_file_name is defined and kypo_interface_file_name -%} + {{ kypo_interface_directory }}/{{ kypo_interface_file_name }} {%- else -%} - {{ interface_default_file }} + {{ kypo_interface_default_file }} {%- endif %}' -interface_clean: True -interface_mtu: 1442 +kypo_interface_clean: True +kypo_interface_mtu: 1442 -interface_interfaces: [] -# - interface_default_gateway: -# interface_routes: [] -# interface_mac: +kypo_interface_interfaces: [] +# - kypo_interface_default_gateway: +# kypo_interface_routes: [] +# kypo_interface_mac: -interface_required_variables: - interface_interfaces: '{{ interface_interfaces }}' +kypo_interface_required_variables: + kypo_interface_interfaces: '{{ kypo_interface_interfaces }}' diff --git a/handlers/main.yml b/handlers/main.yml index 34553f66237ce5bfa2b75cff663b452a2402eae4..d402ec21b5a3e84d64f19cca2d2df7f8fbdeaa32 100644 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -1,5 +1,5 @@ -- name: interface_networking_restart +- name: kypo_interface_networking_restart service: name: networking state: restarted diff --git a/meta/main.yml b/meta/main.yml index 333fcff5a965eb4455314c9c8ff5fe485f1eea5e..0bbc9f2045a068297edea923c0b3b878e9d5dc02 100644 --- a/meta/main.yml +++ b/meta/main.yml @@ -1,9 +1,8 @@ dependencies: - - src: git@git-internal-ssh:/repos/ansible-roles/common.git - scm: git + - kypo-common galaxy_info: - role_name: interface + role_name: kypo-interface author: Kamil Andoniadis description: Basic network interface configuration licence: MIT diff --git a/tasks/clean.yml b/tasks/clean.yml index 36a651b9e5b6bff74029196dc471219b519fcc64..5b4294541ebaab43a935eb080d6727e7e3f5e47c 100644 --- a/tasks/clean.yml +++ b/tasks/clean.yml @@ -2,30 +2,30 @@ - name: find all interfaces configuration files find: paths: - - '{{ interface_directory }}' - register: interface_extra_files + - '{{ kypo_interface_directory }}' + register: kypo_interface_extra_files - set_fact: - interface_config_files: '{{ (interface_extra_files.files | map(attribute="path") | list) + [interface_default_file] }}' + kypo_interface_config_files: '{{ (kypo_interface_extra_files.files | map(attribute="path") | list) + [kypo_interface_default_file] }}' - name: remove old iface settings for retrieved interface name replace: path: '{{ item }}' - regexp: ^iface[ \t]{{ interface_device }}[ \t].*(\n[ \t]+.*)* - notify: interface_networking_restart - with_items: '{{ interface_config_files }}' + regexp: ^iface[ \t]{{ kypo_interface_device }}[ \t].*(\n[ \t]+.*)* + notify: kypo_interface_networking_restart + with_items: '{{ kypo_interface_config_files }}' - name: remove the rest of old settings for retrieved interface name replace: path: '{{ item }}' - regexp: '^.*(?<=\s){{ interface_device }}(?=\s).*$' - notify: interface_networking_restart - with_items: '{{ interface_config_files }}' + regexp: '^.*(?<=\s){{ kypo_interface_device }}(?=\s).*$' + notify: kypo_interface_networking_restart + with_items: '{{ kypo_interface_config_files }}' - name: remove multiple consecutive new line characters replace: path: '{{ item }}' regexp: '(\n)+' replace: '\n' - with_items: '{{ interface_config_files }}' + with_items: '{{ kypo_interface_config_files }}' diff --git a/tasks/interface.yml b/tasks/interface.yml index a75b068208d989891afbcce1eb3488f358f36c9b..f226c9eeb50e044cb863785fb960aa6f4edfb4e7 100644 --- a/tasks/interface.yml +++ b/tasks/interface.yml @@ -1,23 +1,23 @@ - name: configure interface blockinfile: - path: '{{ interface_file }}' + path: '{{ kypo_interface_file }}' create: yes - marker: '# {mark} {{ interface_device }}' + marker: '# {mark} {{ kypo_interface_device }}' block: | - allow-hotplug {{ interface_device }} - auto {{ interface_device }} - iface {{ interface_device }} inet dhcp - mtu {{ interface_mtu }} - {% if interface_default_gateway -%} - gateway {{ interface_default_gateway }} - up route add default gw {{ interface_default_gateway }} + allow-hotplug {{ kypo_interface_device }} + auto {{ kypo_interface_device }} + iface {{ kypo_interface_device }} inet dhcp + mtu {{ kypo_interface_mtu }} + {% if kypo_interface_default_gateway -%} + gateway {{ kypo_interface_default_gateway }} + up route add default gw {{ kypo_interface_default_gateway }} {% endif -%} - {% if interface_routes -%} - {% for route in interface_routes -%} + {% if kypo_interface_routes -%} + {% for route in kypo_interface_routes -%} post-up ip route add {{ route['network'] }}/{{ route['mask'] }} via {{ route['gateway'] }} pre-down ip route del {{ route['network'] }}/{{ route['mask'] }} via {{ route['gateway'] }} {% endfor %} {% endif %} - notify: interface_networking_restart + notify: kypo_interface_networking_restart diff --git a/tasks/main-interface.yml b/tasks/main-interface.yml index 8fb3a4bfb90aa9d7065a65701c03d91428b5fa7c..4ccab52f480614e24d708c7bbf6dd96e9c3e8fe6 100644 --- a/tasks/main-interface.yml +++ b/tasks/main-interface.yml @@ -1,15 +1,15 @@ - name: check existence of required variables fail: - msg: interface_mac is not defined - when: not interface_mac + msg: kypo_interface_mac is not defined + when: not kypo_interface_mac - set_fact: - interface_device: '{%- from "roles/common/templates/network.j2" import mac_to_interface with context -%} - {{ mac_to_interface(interface_mac) | default("") }}' + kypo_interface_device: '{%- from "roles/kypo-common/templates/network.j2" import mac_to_interface with context -%} + {{ mac_to_interface(kypo_interface_mac) | default("") }}' - include: clean.yml - when: interface_clean is defined and interface_clean + when: kypo_interface_clean is defined and kypo_interface_clean - include: interface.yml diff --git a/tasks/main.yml b/tasks/main.yml index 3e4b92fd040ed53f29d5a381712d9b9926f96607..2ff0968c92ecdc7195b35d8da6e10c62e6f17012 100644 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -3,14 +3,14 @@ fail: msg: required variable '{{ item.key }}' is undefined when: item.value is undefined or not item.value - with_dict: '{{ interface_required_variables }}' + with_dict: '{{ kypo_interface_required_variables }}' - include: main-interface.yml loop_control: - loop_var: interface_interface + loop_var: kypo_interface_interface vars: - interface_default_gateway: '{{ interface_interface.interface_default_gateway | default() }}' - interface_routes: '{{ interface_interface.interface_routes | default([]) }}' - interface_mac: '{{ interface_interface.interface_mac | default() }}' - with_items: '{{ interface_interfaces }}' + kypo_interface_default_gateway: '{{ kypo_interface_interface.kypo_interface_default_gateway | default() }}' + kypo_interface_routes: '{{ kypo_interface_interface.kypo_interface_routes | default([]) }}' + kypo_interface_mac: '{{ kypo_interface_interface.kypo_interface_mac | default() }}' + with_items: '{{ kypo_interface_interfaces }}'