- name: Include pihole variables include_vars: pihole.yml - name: Create pihole directory file: path: '/opt/pihole' state: directory owner: "{{ docker_user.name }}" mode: "{{ docker_compose_directory_mask }}" become: true - name: Install pihole compose file template: src: files/pihole/docker-compose.yml dest: "/opt/pihole/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 - name: Create dnsmasq directory file: path: '/opt/pihole/dnsmasq.d/' state: directory mode: "{{ docker_compose_directory_mask }}" become: true - 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 - name: Cycle pihole container docker_compose: project_src: /opt/pihole pull: true remove_orphans: true remove_volumes: true state: "{{ item }}" when: compose_file.changed or dnsmasq_vpn_hosts.changed loop: - absent - present