Files
ansible-adguardhome/tasks/main.yml

73 lines
2.0 KiB
YAML

---
- name: Setup Debian
include_tasks: setup_debian.yml
when: ansible_os_family == 'Debian'
- name: Setup RedHat
include_tasks: setup_redhat.yml
when: ansible_os_family == 'RedHat'
- name: Check if binary is installed
stat:
path: "{{ adguardhome_bin_file }}"
register: adguardhome_binary_check
- name: Check latest released version
include_tasks: latest_version.yml
when: adguardhome_version == 'latest'
- name: Check version of installed binary
shell: >-
set -o pipefail
&& "{{ adguardhome_bin_file }}" -c /dev/null --check-config 2>&1
| grep -m 1 -E 'v[0-9.]+' -o
args:
executable: /bin/bash
register: adguardhome_version_check
check_mode: no
changed_when: >-
adguardhome_version_check.stdout.find('v' + adguardhome_version) == -1
failed_when: >-
adguardhome_version_check.rc != 0 and
adguardhome_version_check.rc != 1 and
adguardhome_version_check.rc != 141
when: >-
adguardhome_binary_check.stat.exists
- name: Ensure user exists
user:
name: "{{ adguardhome_user }}"
create_home: no
system: "{{ adguardhome_system_user }}"
state: present
- name: "Install binary (v{{ adguardhome_version }} / {{ adguardhome_arch }})"
include_tasks: install.yml
when: >-
adguardhome_version_check.changed
or (not adguardhome_binary_check.stat.exists)
- name: Ensure various paths exist with correct permissions
include_tasks: paths.yml
- name: Allow binary to bind to ports lower than 1024 as a non-root user
capabilities:
path: "{{ adguardhome_bin_file }}"
capability: cap_net_bind_service+eip
state: present
when: >-
adguardhome_user != "root"
- name: Disallow binary to bind to ports lower than 1024 as a non-root user
capabilities:
path: "{{ adguardhome_bin_file }}"
capability: cap_net_bind_service+eip
state: absent
when: >-
adguardhome_user == "root"
- name: Install systemd servicee
include_tasks: systemd_service.yml
when: >-
ansible_service_mgr == "systemd" and adguardhome_service_enable