diff --git a/roles/homelab/wireguard/vars/main.yml b/roles/homelab/wireguard/defaults/main.yml similarity index 100% rename from roles/homelab/wireguard/vars/main.yml rename to roles/homelab/wireguard/defaults/main.yml diff --git a/roles/homelab/wireguard/handlers/main.yml b/roles/homelab/wireguard/handlers/main.yml index 17178fc..3edbe76 100644 --- a/roles/homelab/wireguard/handlers/main.yml +++ b/roles/homelab/wireguard/handlers/main.yml @@ -10,7 +10,7 @@ name: "nftables" state: restarted -- name: "restart named" +- name: "restart bind9" ansible.builtin.systemd: - name: "named" + name: "bind9" state: restarted \ No newline at end of file diff --git a/roles/homelab/wireguard/tasks/configure_bind9.yml b/roles/homelab/wireguard/tasks/configure_bind9.yml index 5cbd215..1e74276 100644 --- a/roles/homelab/wireguard/tasks/configure_bind9.yml +++ b/roles/homelab/wireguard/tasks/configure_bind9.yml @@ -17,4 +17,4 @@ owner: root group: bind mode: '0644' - notify: "restart named" \ No newline at end of file + notify: "restart bind9" \ No newline at end of file diff --git a/roles/homelab/wireguard/tasks/install_package.yml b/roles/homelab/wireguard/tasks/install_package.yml index c937426..c286abe 100644 --- a/roles/homelab/wireguard/tasks/install_package.yml +++ b/roles/homelab/wireguard/tasks/install_package.yml @@ -1,14 +1,17 @@ --- -- name: "Install default packages" - ansible.builtin.apt: - name: "{{ default_packages }}" - state: present - become: true - register: deps_installed -- name: "Install wireguard" +- name: "Change repos" + ansible.builtin.template: + src: mirror-yandex.ru.j2 + dest: /etc/apt/sources.list + owner: root + group: root + mode: '0744' + +- name: "Install packages" ansible.builtin.apt: - name: "{{ wireguard_packages }}" + name: "{{ default_packages + wireguard_packages }}" state: present + update_cache: true become: true register: deps_installed \ No newline at end of file diff --git a/roles/homelab/wireguard/tasks/main.yml b/roles/homelab/wireguard/tasks/main.yml index 94e2acf..edf72f8 100644 --- a/roles/homelab/wireguard/tasks/main.yml +++ b/roles/homelab/wireguard/tasks/main.yml @@ -1,18 +1,5 @@ --- -- name: "Change repos" - ansible.builtin.template: - src: mirror-yandex.ru.j2 - dest: /etc/apt/sources.list - owner: root - group: root - mode: '0744' - -- name: "Update cache" - ansible.builtin.apt: - update_cache: true - cache_valid_time: 3600 - - name: "Install packages" ansible.builtin.include_tasks: install_package.yml @@ -22,7 +9,7 @@ - name: "Configure wireguard server" ansible.builtin.include_tasks: configure_wireguard_server.yml -- name: "Create client dirrectory" +- name: "Create client directory" ansible.builtin.file: path: "{{ wireguard_client_config_dir }}" state: directory @@ -42,9 +29,8 @@ group: root mode: '0600' notify: "restart wireguard" - #notify: restart wireguard_client_config_dir -- name: "Confiugre bind9" +- name: "Configure bind9" tags: bind9 ansible.builtin.include_tasks: configure_bind9.yml @@ -64,10 +50,4 @@ ansible.builtin.systemd: name: "bind9" state: started - enabled: yes - -- name: "Enable and start named" - ansible.builtin.systemd: - name: "named" - state: started - enabled: yes + enabled: yes \ No newline at end of file diff --git a/roles/homelab/wireguard/tasks/peers.yml b/roles/homelab/wireguard/tasks/peers.yml index bdd133b..3c0c559 100644 --- a/roles/homelab/wireguard/tasks/peers.yml +++ b/roles/homelab/wireguard/tasks/peers.yml @@ -1,28 +1,22 @@ --- -- name: "Generate private keys" - ansible.builtin.shell: - cmd: wg genkey - register: "peer_keys" +- name: "Check if peer private key exist" + ansible.builtin.stat: + path: "{{ wireguard_config_dir }}/peer_{{ item.name }}_private.key" + register: peer_key_stat loop: "{{ wireguard_clients }}" loop_control: label: "{{ item.name }}" - args: - creates: "{{ wireguard_config_dir }}/peer_{{ item.name }}_private.key" - no_log: true -- name: "Save private keys" - ansible.builtin.copy: - content: "{{ item.stdout }}" - dest: "{{ wireguard_config_dir }}/peer_{{ item.item.name }}_private.key" - owner: root - group: root - mode: "0600" - loop: "{{ peer_keys.results }}" +- name: "Generate and save peer private keys" + ansible.builtin.shell: | + wg genkey > {{ wireguard_config_dir }}/peer_{{ item.item.name }}_private.key + chmod 0600 {{ wireguard_config_dir }}/peer_{{ item.item.name }}_private.key + loop: "{{ peer_key_stat.results }}" loop_control: label: "{{ item.item.name }}" - when: item.change | default(false) - no_log: true + when: not item.stat.exists + no_log: false - name: "Read all private keys" ansible.builtin.slurp: @@ -62,10 +56,22 @@ loop_control: label: "{{ item.0.name }}" -- name: "Generate QR codes for moblie clients" +- name: "Generate QR codes for mobile clients via text format" ansible.builtin.shell: cmd: "qrencode -t ansiutf8 < {{ wireguard_client_config_dir }}/{{ item.name }}.conf > {{ wireguard_client_config_dir }}/{{ item.name }}_qr.txt" loop: "{{ wireguard_clients }}" loop_control: label: "{{ item.name }}" + args: + creates: "{{ wireguard_client_config_dir }}/{{ item.name }}_qr.txt" + changed_when: false + +- name: "Generate QR codes for mobile clients via image format" + ansible.builtin.shell: + cmd: "qrencode -t png -o {{ wireguard_client_config_dir }}/{{ item.name }}.png < {{ wireguard_client_config_dir }}/{{ item.name }}.conf" + loop: "{{ wireguard_clients }}" + loop_control: + label: "{{ item.name }}" + args: + creates: "{{ wireguard_client_config_dir }}/{{ item.name }}.png" changed_when: false