From 2349b59ecaba0a35ba832c9346e927acab6d277b Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Thu, 30 Jul 2026 18:05:46 +0200 Subject: [PATCH] role prepare node --- .../group_vars/pangolin/node_setup.yaml | 3 ++ .../tasks/iptables.yaml} | 33 ++----------------- .../roles/prepare_node/tasks/main.yaml | 6 ++++ .../roles/prepare_node/tasks/swap.yaml | 15 +++++++++ .../roles/prepare_node/tasks/updates.yaml | 15 +++++++++ 5 files changed, 41 insertions(+), 31 deletions(-) create mode 100644 ansible/inventories/group_vars/pangolin/node_setup.yaml rename ansible/playbooks/roles/{pangolin/tasks/prepare_node.yaml => prepare_node/tasks/iptables.yaml} (53%) create mode 100644 ansible/playbooks/roles/prepare_node/tasks/main.yaml create mode 100644 ansible/playbooks/roles/prepare_node/tasks/swap.yaml create mode 100644 ansible/playbooks/roles/prepare_node/tasks/updates.yaml diff --git a/ansible/inventories/group_vars/pangolin/node_setup.yaml b/ansible/inventories/group_vars/pangolin/node_setup.yaml new file mode 100644 index 0000000..7b192e7 --- /dev/null +++ b/ansible/inventories/group_vars/pangolin/node_setup.yaml @@ -0,0 +1,3 @@ +--- +configure_swap: true +ip_tables_config: true \ No newline at end of file diff --git a/ansible/playbooks/roles/pangolin/tasks/prepare_node.yaml b/ansible/playbooks/roles/prepare_node/tasks/iptables.yaml similarity index 53% rename from ansible/playbooks/roles/pangolin/tasks/prepare_node.yaml rename to ansible/playbooks/roles/prepare_node/tasks/iptables.yaml index 95581b0..d98b3b5 100644 --- a/ansible/playbooks/roles/pangolin/tasks/prepare_node.yaml +++ b/ansible/playbooks/roles/prepare_node/tasks/iptables.yaml @@ -1,34 +1,4 @@ --- -- name: Update all packages - ansible.builtin.apt: - update_cache: true - upgrade: dist - -- name: Install essential packages - ansible.builtin.apt: - name: - - net-tools - - curl - - wget - - htop - - vim - state: present - -- name: Add 1GB swap file - ansible.builtin.shell: | - fallocate -l 1G /swapfile - chmod 600 /swapfile - mkswap /swapfile - swapon /swapfile - args: - creates: /swapfile - -- name: Make swap persistent - ansible.builtin.lineinfile: - dest: /etc/fstab - line: '/swapfile none swap sw 0 0' - state: present - - name: Configure iptables firewall rules ansible.builtin.iptables: chain: INPUT @@ -42,9 +12,10 @@ - { protocol: tcp, port: '443', description: 'HTTPS for secure web traffic' } - { protocol: udp, port: '51820', description: 'WireGuard VPN traffic' } become: true + become_exe: "{{ become_exe_value }}" register: iptables_result - name: Display iptables configuration status ansible.builtin.debug: msg: "Configured firewall rules for ports: 80 (HTTP), 443 (HTTPS), 51820 (WireGuard UDP)" - when: iptables_result is changed + when: iptables_result is changed \ No newline at end of file diff --git a/ansible/playbooks/roles/prepare_node/tasks/main.yaml b/ansible/playbooks/roles/prepare_node/tasks/main.yaml new file mode 100644 index 0000000..967613a --- /dev/null +++ b/ansible/playbooks/roles/prepare_node/tasks/main.yaml @@ -0,0 +1,6 @@ +--- +- include_role: updates.yaml +- include_role: swap.yaml + when: configure_swap is defined +- include_role: iptables.yaml + when: ip_tables_coonfig is defined diff --git a/ansible/playbooks/roles/prepare_node/tasks/swap.yaml b/ansible/playbooks/roles/prepare_node/tasks/swap.yaml new file mode 100644 index 0000000..1476d93 --- /dev/null +++ b/ansible/playbooks/roles/prepare_node/tasks/swap.yaml @@ -0,0 +1,15 @@ +--- +- name: Add 1GB swap file + ansible.builtin.shell: | + fallocate -l 1G /swapfile + chmod 600 /swapfile + mkswap /swapfile + swapon /swapfile + args: + creates: /swapfile + +- name: Make swap persistent + ansible.builtin.lineinfile: + dest: /etc/fstab + line: '/swapfile none swap sw 0 0' + state: present diff --git a/ansible/playbooks/roles/prepare_node/tasks/updates.yaml b/ansible/playbooks/roles/prepare_node/tasks/updates.yaml new file mode 100644 index 0000000..6a3ca46 --- /dev/null +++ b/ansible/playbooks/roles/prepare_node/tasks/updates.yaml @@ -0,0 +1,15 @@ +--- +- name: Update all packages + ansible.builtin.apt: + update_cache: true + upgrade: dist + +- name: Install essential packages + ansible.builtin.apt: + name: + - net-tools + - curl + - wget + - htop + - vim + state: present