From c6dc7b00081faeb9b79527bbfb4424405140c8d5 Mon Sep 17 00:00:00 2001 From: lhahn Date: Mon, 29 Jul 2024 13:44:32 +0200 Subject: [PATCH] Include floating ip --- defaults/main.yml | 6 ++++++ handlers/main.yml | 8 +++++++- tasks/main.yml | 3 +++ tasks/networking.yml | 9 +++++++++ tasks/wireguard.yml | 2 +- .../networking/interfaces.d/60-floating-ip.cfg.j2 | 14 ++++++++++++++ 6 files changed, 40 insertions(+), 2 deletions(-) create mode 100644 tasks/networking.yml create mode 100644 templates/etc/networking/interfaces.d/60-floating-ip.cfg.j2 diff --git a/defaults/main.yml b/defaults/main.yml index af8559d..860964a 100755 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -36,6 +36,12 @@ swap_block_size: 1024 swap_block_count: 2097152 # Default is 2GB of swapfile +## NETWORKING +floating_ips: [] +# - ipv4: 10.11.12.13 +# ipv6: 2001:0db8:85a3:08d3::1/64 +# - ipv4: 192.168.0.2 +# ipv6: 2001:0db8:bca2:98d6::1/64 ## USER + GROUPS root_user_cred: MyVeryStrongPassword diff --git a/handlers/main.yml b/handlers/main.yml index ab7b1e7..bc50081 100755 --- a/handlers/main.yml +++ b/handlers/main.yml @@ -16,4 +16,10 @@ name: wg-quick@{{ cloud_name }} state: restarted enabled: yes - when: wireguard_installed is defined and not wireguard_installed.changed \ No newline at end of file + when: wireguard_installed is defined and not wireguard_installed.changed + +- name: restart networking service + service: + name: networking + state: restarted + enabled: yes \ No newline at end of file diff --git a/tasks/main.yml b/tasks/main.yml index 6517873..65ad11a 100755 --- a/tasks/main.yml +++ b/tasks/main.yml @@ -28,6 +28,9 @@ import_tasks: swap.yml when: swap_on +- name: Setup networking + import_tasks: networking.yml + - name: Setup basic cloud folders for apps and storage file: state: directory diff --git a/tasks/networking.yml b/tasks/networking.yml new file mode 100644 index 0000000..12828e1 --- /dev/null +++ b/tasks/networking.yml @@ -0,0 +1,9 @@ +--- +- name: setup floating ips + template: + src: "./etc/networking/interfaces.d/60-floating-ip.cfg.j2" + dest: "/etc/networking/interfaces.d/60-floating-ip.cfg" + owner: root + group: root + mode: 0644 + notify: restart networking service diff --git a/tasks/wireguard.yml b/tasks/wireguard.yml index 677b2b1..31e82f1 100644 --- a/tasks/wireguard.yml +++ b/tasks/wireguard.yml @@ -1,5 +1,5 @@ --- -- name: install fail2ban service +- name: install wireguard service apt: update_cache: yes state: "{% if cloud_update | bool %}latest{% else %}present{% endif %}" diff --git a/templates/etc/networking/interfaces.d/60-floating-ip.cfg.j2 b/templates/etc/networking/interfaces.d/60-floating-ip.cfg.j2 new file mode 100644 index 0000000..fdd5ba6 --- /dev/null +++ b/templates/etc/networking/interfaces.d/60-floating-ip.cfg.j2 @@ -0,0 +1,14 @@ +{% for config in floating_ips %} +{%if 'ipv4' in config % } +auto eth0:{{ loop.index }} +iface eth0:{{ loop.index }} inet static + address {{ config.ipv4 }} + netmask 32 +{% endif %} +{%if 'ipv6' in config % } +auto eth0:{{ loop.index }} +iface eth0:{{ loop.index }} inet6 static + address {{ config.ipv6 }} + netmask 64 +{% endif %} +{% endfor %} \ No newline at end of file