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 - name: Gather instance facts
setup: setup:
- include_tasks: "setup-{{ ansible_os_family|lower }}.yml" - include_tasks: "setup-{{ ansible_distribution|lower }}.yml"
- name: Install WireGuard - name: Install WireGuard
package: package:

View File

@ -1,26 +1,37 @@
--- ---
- name: Update APT package cache - name: Setup WireGuard preference
apt: copy:
update_cache: true src: debian/etc/apt/preferences.d/limit-unstable
cache_valid_time: 3600 dest: /etc/apt/preferences.d/limit-unstable
when: ansible_distribution == "Ubuntu" owner: root
group: root
mode: 0644
tags: tags:
- wg-install - wg-install
- name: Install required packages - name: Add WireGuard key
package: apt_key:
name: "{{ item }}" keyserver: "keyserver.ubuntu.com"
id: "8B48AD6246925553"
state: present state: present
with_items:
- software-properties-common
- linux-headers-{{ ansible_kernel }}
tags: tags:
- wg-install - wg-install
- name: Add WireGuard repository - name: Add WireGuard repository
apt_repository: apt_repository:
repo: "ppa:wireguard/wireguard" repo: "deb http://deb.debian.org/debian/ unstable main"
state: present state: present
update_cache: yes update_cache: yes
tags: tags:
- wg-install - 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