commit 64e5afd148dfd8af22c459b1a3ebff7f96abc827 Author: Nikita Simonov Date: Thu May 28 13:08:52 2026 +0400 first commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba6d390 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.galaxy_install_info diff --git a/README.md b/README.md new file mode 100644 index 0000000..a8d4e8a --- /dev/null +++ b/README.md @@ -0,0 +1,21 @@ +# WireGuard ansible role + +Configure wireguard + +## Usega + +Configure the role + +```yml +wireguard_interfaces: + wg01: + interface: + Address: 10.0.0.1 + ListenPort: 51820 + PrivateKey: "{{ wireguard_private_key }}" + peers: + - AllowedIPs: 10.0.0.0/24 + PublicKey: "{{ wireguard_public_key }}" + Endpoint: 1.1.1.1:51820 + PersistentKeepalive: 25 +''' diff --git a/meta/main.yml b/meta/main.yml new file mode 100644 index 0000000..a6f3869 --- /dev/null +++ b/meta/main.yml @@ -0,0 +1,3 @@ +# This file is required by `ansible-galalxy install'. +--- +galaxy_info: diff --git a/tasks/main.yml b/tasks/main.yml new file mode 100644 index 0000000..384343a --- /dev/null +++ b/tasks/main.yml @@ -0,0 +1,22 @@ +--- +- name: Install wireguard package + ansible.builtin.apt: + name: wireguard + state: present + +- name: Copy wireguard config + ansible.builtin.template: + src: "wg.conf.j2" + dest: "/etc/wireguard/{{ item }}.conf" + owner: root + group: root + mode: 0644 + with_items: "{{ wireguard_interfaces }}" + +- name: Enable and start wg-quick service + ansible.builtin.service: + name: wg-quick@{{ item }}.service + daemon_reload: yes + state: started + enabled: yes + with_items: "{{ wireguard_interfaces }}" diff --git a/templates/wg.conf.j2 b/templates/wg.conf.j2 new file mode 100644 index 0000000..1bcdfb5 --- /dev/null +++ b/templates/wg.conf.j2 @@ -0,0 +1,11 @@ +[Interface] +{% for key, value in wireguard_interfaces[item].interface | dictsort %} +{{ key }} = {{ value }} +{% endfor %} + +{% for peer in wireguard_interfaces[item].peers %} +[Peer] +{% for key, value in peer | dictsort %} +{{ key }} = {{ value }} +{% endfor %} +{% endfor %}