3
0
Fork 0

feat(debian) enable module to work on debian (#6)

* feat(debian) enable module to work on debian

Add support for Debian based on the documentation in debian wiki
and discussion in [0].

[0]: https://github.com/githubixx/ansible-role-wireguard/issues/5

* remove run_once for debian

* Install kernel headers on debian

There is no equivalent package of linux-headers-generic on debian.
Package installation needs to specify the architecture (i.e. amd64),
which is captured from dpkg output.

* Only use include_tasks to differentiate distributions

Before Archlinux was split out using ansible_os_family. But since
ansible_os_family overlaps for Debian and Ubuntu, two when
statements were used to split out these cases:

  - All arch derivations
  - Debian
  - Ubuntu

New style is cleaner. Arch derivations can still be used by
overiding ansible_distribution in inventory.

* incorporate feedback: move pin file, other changed_when syntax
This commit is contained in:
Ties de Kock 2019-02-06 20:56:06 +01:00 committed by Robert Wimmer
parent 2ef8f8cae4
commit 3a8d3260c4
4 changed files with 52 additions and 13 deletions

View File

@ -0,0 +1,3 @@
Package: *
Pin: release a=unstable
Pin-Priority: 90

View File

@ -2,7 +2,7 @@
- name: Gather instance facts
setup:
- include_tasks: "setup-{{ ansible_os_family|lower }}.yml"
- include_tasks: "setup-{{ ansible_distribution|lower }}.yml"
- name: Install WireGuard
package:

View File

@ -1,26 +1,37 @@
---
- name: Update APT package cache
apt:
update_cache: true
cache_valid_time: 3600
when: ansible_distribution == "Ubuntu"
- name: Setup WireGuard preference
copy:
src: debian/etc/apt/preferences.d/limit-unstable
dest: /etc/apt/preferences.d/limit-unstable
owner: root
group: root
mode: 0644
tags:
- wg-install
- name: Install required packages
package:
name: "{{ item }}"
- name: Add WireGuard key
apt_key:
keyserver: "keyserver.ubuntu.com"
id: "8B48AD6246925553"
state: present
with_items:
- software-properties-common
- linux-headers-{{ ansible_kernel }}
tags:
- wg-install
- name: Add WireGuard repository
apt_repository:
repo: "ppa:wireguard/wireguard"
repo: "deb http://deb.debian.org/debian/ unstable main"
state: present
update_cache: yes
tags:
- wg-install
- name: Get architecture
shell: dpkg --print-architecture
register: dpkg_arch
changed_when: False
- name: Install kernel headers to compile wireguard with DKMS
apt:
name:
- "linux-headers-{{ dpkg_arch.stdout }}"
state: present

25
tasks/setup-ubuntu.yml Normal file
View File

@ -0,0 +1,25 @@
---
- name: Update APT package cache
apt:
update_cache: true
cache_valid_time: 3600
tags:
- wg-install
- name: Install required packages
package:
name: "{{ item }}"
state: present
with_items:
- software-properties-common
- linux-headers-{{ ansible_kernel }}
tags:
- wg-install
- name: Add WireGuard repository
apt_repository:
repo: "ppa:wireguard/wireguard"
state: present
update_cache: yes
tags:
- wg-install