Merge custom dnsmasq config into pihole
This commit is contained in:
parent
8093bcbcbb
commit
24686f8cb3
9 changed files with 29 additions and 83 deletions
|
@ -1,7 +0,0 @@
|
||||||
bogus-priv
|
|
||||||
keep-in-foreground
|
|
||||||
server=1.1.1.1
|
|
||||||
server=1.0.0.1
|
|
||||||
port=53
|
|
||||||
expand-hosts
|
|
||||||
addn-hosts=/etc/dnsmasq-hosts.conf
|
|
|
@ -1,11 +0,0 @@
|
||||||
version: "2.3"
|
|
||||||
services:
|
|
||||||
vpn-dns:
|
|
||||||
image: programster/dnsmasq:latest
|
|
||||||
container_name: vpn-dns
|
|
||||||
ports:
|
|
||||||
- "{{ wireguard.clients.intersect.ip }}:53:53/udp"
|
|
||||||
volumes:
|
|
||||||
- ./dnsmasq.conf:/etc/dnsmasq.conf:ro
|
|
||||||
- ./vpn-hosts.conf:/etc/dnsmasq-hosts.conf:ro
|
|
||||||
restart: unless-stopped
|
|
|
@ -1,3 +0,0 @@
|
||||||
{% for host in internal_hostnames %}
|
|
||||||
{{ wireguard.clients.intersect.ip }} {{ host }}
|
|
||||||
{% endfor %}
|
|
3
ansible/roles/docker/files/pihole/dnsmasq-vpn.conf
Normal file
3
ansible/roles/docker/files/pihole/dnsmasq-vpn.conf
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
{% for host in internal_hostnames %}
|
||||||
|
host-record={{ host }},{{ wireguard.clients.intersect.ip }}
|
||||||
|
{% endfor %}
|
|
@ -5,14 +5,14 @@ services:
|
||||||
container_name: pihole
|
container_name: pihole
|
||||||
image: pihole/pihole:v4.4
|
image: pihole/pihole:v4.4
|
||||||
ports:
|
ports:
|
||||||
- "{{ wireguard.clients.intersect.ip }}:5353:53/tcp"
|
- "{{ wireguard.clients.intersect.ip }}:53:53/tcp"
|
||||||
- "{{ wireguard.clients.intersect.ip }}:5353:53/udp"
|
- "{{ wireguard.clients.intersect.ip }}:53:53/udp"
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/London
|
- TZ=Europe/London
|
||||||
- VIRTUAL_HOST=pihole.jakehoward.tech
|
- VIRTUAL_HOST=pihole.jakehoward.tech
|
||||||
volumes:
|
volumes:
|
||||||
- ./etc-pihole/:/etc/pihole/
|
- ./pihole/:/etc/pihole/
|
||||||
- ./etc-dnsmasq.d/:/etc/dnsmasq.d/
|
- ./dnsmasq.d/:/etc/dnsmasq.d/
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
labels:
|
labels:
|
||||||
- "traefik.enable=true"
|
- "traefik.enable=true"
|
||||||
|
|
|
@ -1,54 +0,0 @@
|
||||||
- name: Include dnsmasq variables
|
|
||||||
include_vars: dnsmasq.yml
|
|
||||||
|
|
||||||
- name: Create dnsmasq directory
|
|
||||||
file:
|
|
||||||
path: '/opt/dnsmasq'
|
|
||||||
state: directory
|
|
||||||
owner: "{{ docker_user.name }}"
|
|
||||||
mode: "{{ docker_compose_directory_mask }}"
|
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Install dnsmasq compose file
|
|
||||||
template:
|
|
||||||
src: files/dnsmasq/docker-compose.yml
|
|
||||||
dest: "/opt/dnsmasq/docker-compose.yml"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
owner: "{{ docker_user.name }}"
|
|
||||||
validate: /usr/bin/docker-compose -f %s config
|
|
||||||
register: compose_file
|
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Install dnsmasq config
|
|
||||||
template:
|
|
||||||
src: files/dnsmasq/dnsmasq.conf
|
|
||||||
dest: "/opt/dnsmasq/dnsmasq.conf"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
owner: "{{ docker_user.name }}"
|
|
||||||
register: dnsmasq_config
|
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Install dnsmasq vpn hosts
|
|
||||||
template:
|
|
||||||
src: files/dnsmasq/vpn-hosts.conf
|
|
||||||
dest: "/opt/dnsmasq/vpn-hosts.conf"
|
|
||||||
mode: "{{ docker_compose_file_mask }}"
|
|
||||||
owner: "{{ docker_user.name }}"
|
|
||||||
register: dnsmasq_vpn_hosts
|
|
||||||
become: true
|
|
||||||
become_user: root
|
|
||||||
|
|
||||||
- name: Cycle dnsmasq container
|
|
||||||
docker_compose:
|
|
||||||
project_src: /opt/dnsmasq
|
|
||||||
pull: true
|
|
||||||
remove_orphans: true
|
|
||||||
remove_volumes: true
|
|
||||||
state: "{{ item }}"
|
|
||||||
when: compose_file.changed or dnsmasq_config.changed or dnsmasq_vpn_hosts.changed
|
|
||||||
loop:
|
|
||||||
- absent
|
|
||||||
- present
|
|
|
@ -13,9 +13,6 @@
|
||||||
- name: Install portainer
|
- name: Install portainer
|
||||||
include: portainer.yml
|
include: portainer.yml
|
||||||
|
|
||||||
- name: Install dnsmasq
|
|
||||||
include: dnsmasq.yml
|
|
||||||
|
|
||||||
- name: Install whoami
|
- name: Install whoami
|
||||||
include: whoami.yml
|
include: whoami.yml
|
||||||
|
|
||||||
|
|
|
@ -1,3 +1,6 @@
|
||||||
|
- name: Include pihole variables
|
||||||
|
include_vars: pihole.yml
|
||||||
|
|
||||||
- name: Create pihole directory
|
- name: Create pihole directory
|
||||||
file:
|
file:
|
||||||
path: '/opt/pihole'
|
path: '/opt/pihole'
|
||||||
|
@ -18,6 +21,24 @@
|
||||||
become: true
|
become: true
|
||||||
become_user: root
|
become_user: root
|
||||||
|
|
||||||
|
- name: Create dnsmasq directory
|
||||||
|
file:
|
||||||
|
path: '/opt/pihole/dnsmasq.d/'
|
||||||
|
state: directory
|
||||||
|
mode: "{{ docker_compose_directory_mask }}"
|
||||||
|
become: true
|
||||||
|
become_user: root
|
||||||
|
|
||||||
|
- name: Install dnsmasq hosts config
|
||||||
|
template:
|
||||||
|
src: files/pihole/dnsmasq-vpn.conf
|
||||||
|
dest: "/opt/pihole/dnsmasq.d/02-vpn.conf"
|
||||||
|
mode: "{{ docker_compose_file_mask }}"
|
||||||
|
owner: "{{ docker_user.name }}"
|
||||||
|
register: dnsmasq_vpn_hosts
|
||||||
|
become: true
|
||||||
|
become_user: root
|
||||||
|
|
||||||
- name: Cycle pihole container
|
- name: Cycle pihole container
|
||||||
docker_compose:
|
docker_compose:
|
||||||
project_src: /opt/pihole
|
project_src: /opt/pihole
|
||||||
|
@ -25,7 +46,7 @@
|
||||||
remove_orphans: true
|
remove_orphans: true
|
||||||
remove_volumes: true
|
remove_volumes: true
|
||||||
state: "{{ item }}"
|
state: "{{ item }}"
|
||||||
when: compose_file.changed
|
when: compose_file.changed or dnsmasq_vpn_hosts.changed
|
||||||
loop:
|
loop:
|
||||||
- absent
|
- absent
|
||||||
- present
|
- present
|
||||||
|
|
Loading…
Reference in a new issue