main.yml 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. ---
  2. - name: Install wireguard-tools
  3. yum:
  4. name: wireguard-tools
  5. state: installed
  6. - name: Select a random endpoint
  7. set_fact:
  8. wg_info: "{{ vaulted_wg_info | shuffle | first }}"
  9. - name: Record new endpoint config
  10. set_fact:
  11. wg_public_key: "{{ wg_info.pubkey }}"
  12. wg_endpoint: "{{ wg_info.endpoint }}"
  13. - name: Copy wireguard config
  14. template:
  15. src: wg.conf.j2
  16. dest: /etc/wireguard/{{ wg_interface }}.conf
  17. owner: root
  18. group: root
  19. mode: '0644'
  20. notify:
  21. - Restart wireguard interface
  22. - name: Add {{ wg_interface }} to external zone
  23. firewalld:
  24. zone: external
  25. interface: "{{ wg_interface }}"
  26. permanent: yes
  27. state: enabled
  28. - name: Add {{ gateway_internal_interface }} to internal zone
  29. #- name: Add {{ ansible_interfaces | sort | first }} to internal zone
  30. firewalld:
  31. zone: internal
  32. interface: "{{ gateway_internal_interface }}"
  33. #interface: "{{ ansible_interfaces | sort | first }}"
  34. permanent: yes
  35. state: enabled
  36. - name: Allow source networks to use wireguard
  37. firewalld:
  38. source: "{{ item }}"
  39. zone: external
  40. state: enabled
  41. permanent: yes
  42. with_items:
  43. - "{{ allowed_access_cidrs }}"
  44. - name: Allow services
  45. firewalld:
  46. zone: external
  47. service: "{{ item }}"
  48. state: enabled
  49. permanent: yes
  50. immediate: yes
  51. with_items:
  52. - "{{ allowed_services }}"
  53. - name: Start/Enable {{ wg_interface }} interface
  54. systemd:
  55. name: wg-quick@{{ wg_interface }}
  56. state: started
  57. enabled: yes