install pihole to fix failing duckdns name servers
This commit is contained in:
@@ -0,0 +1,213 @@
|
||||
---
|
||||
- name: Installer et configurer Pi-hole sur pi1
|
||||
hosts: raspberries:&local #pihole # change with pihole group
|
||||
become: yes
|
||||
vars:
|
||||
|
||||
pihole_custom_dns:
|
||||
".arcodange.duckdns.org": "{{ hostvars['pi1'].preferred_ip }}"
|
||||
roles:
|
||||
- pihole
|
||||
|
||||
# tasks:
|
||||
|
||||
# - name: Proposer la commande d'installation manuelle de Pi-hole
|
||||
# debug:
|
||||
# msg: |
|
||||
# Veuillez installer Pi-hole manuellement sur ce host avec la commande suivante :
|
||||
# # curl -sSL https://install.pi-hole.net | sudo bash
|
||||
# L'installation sera vérifiée automatiquement dans les 10 prochaines minutes.
|
||||
|
||||
# - name: Attendre que Pi-hole soit installé (vérification service et fichier config)
|
||||
# wait_for:
|
||||
# path: /etc/pihole/pihole-FTL.db
|
||||
# state: present
|
||||
# timeout: 600 # 10 minutes
|
||||
# register: pihole_config_ready
|
||||
|
||||
# - name: Vérifier que le service pihole-FTL est actif
|
||||
# wait_for:
|
||||
# port: 53 # port interne par défaut Pi-hole
|
||||
# state: started
|
||||
# timeout: 60
|
||||
# when: pihole_config_ready is succeeded
|
||||
|
||||
# - name: Modifier le fichier /etc/pihole/pihole.toml pour changer le port
|
||||
# replace:
|
||||
# path: /etc/pihole/pihole.toml
|
||||
# regexp: '^\s*port\s*=\s*".*"'
|
||||
# replace: ' port = "{{ pihole_ports }}"'
|
||||
|
||||
# - name: Modifier le fichier /etc/pihole/pihole.toml pour autoriser toutes les origines DNS
|
||||
# replace:
|
||||
# path: /etc/pihole/pihole.toml
|
||||
# regexp: '^\s*listeningMode\s*=\s*".*"'
|
||||
# replace: ' listeningMode = "ALL"'
|
||||
|
||||
# - name: Activer le chargement des fichiers /etc/dnsmasq.d/ dans Pi-hole
|
||||
# lineinfile:
|
||||
# path: /etc/pihole/pihole.toml
|
||||
# regexp: '^\s*etc_dnsmasq_d\s*='
|
||||
# line: ' etc_dnsmasq_d = true'
|
||||
# state: present
|
||||
# create: yes
|
||||
|
||||
# - name: Créer le fichier dnsmasq pour le wildcard
|
||||
# copy:
|
||||
# dest: /etc/dnsmasq.d/10-arcodange-wildcard.conf
|
||||
# content: |
|
||||
# address=/{{ pihole_wildcard_rule }}/{{ pihole_dns_ip }}
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: '0644'
|
||||
|
||||
# - name: Créer les entrées DNS locales pour les RPis (pi*.home)
|
||||
# copy:
|
||||
# dest: /etc/dnsmasq.d/20-rpis.conf
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: '0644'
|
||||
# content: |
|
||||
# # Generated by Ansible – Raspberry Pi local DNS
|
||||
# {% for host in groups['raspberries']
|
||||
# if host is match('^pi[0-9]+$')
|
||||
# and hostvars[host].preferred_ip is defined %}
|
||||
# address=/{{ host }}.home/{{ hostvars[host].preferred_ip }}
|
||||
# {% endfor %}
|
||||
|
||||
# - name: Configurer resolv.conf pour DNS croisé
|
||||
# copy:
|
||||
# dest: /etc/resolv.conf
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: '0644'
|
||||
# content: |
|
||||
# {% if inventory_hostname == 'pi1' %}
|
||||
# nameserver {{ hostvars['pi3'].preferred_ip }}
|
||||
# {% elif inventory_hostname == 'pi3' %}
|
||||
# nameserver {{ hostvars['pi1'].preferred_ip }}
|
||||
# {% endif %}
|
||||
|
||||
# - name: Redémarrer le service Pi-hole FTL
|
||||
# service:
|
||||
# name: pihole-FTL
|
||||
# state: restarted
|
||||
|
||||
|
||||
# ############################################################
|
||||
# # 2. Configuration DNS des Raspberry Pi clients
|
||||
# ############################################################
|
||||
# - name: Configurer Docker via systemd override (DNS Pi-hole)
|
||||
# hosts: raspberries:&local
|
||||
# become: yes
|
||||
|
||||
# vars:
|
||||
# docker_dns_servers:
|
||||
# - "{{ hostvars['pi1']['preferred_ip'] }}"
|
||||
# - "8.8.8.8"
|
||||
# - "1.1.1.1"
|
||||
|
||||
# docker_override_dir: /etc/systemd/system/docker.service.d
|
||||
# docker_override_file: /etc/systemd/system/docker.service.d/override.conf
|
||||
|
||||
# tasks:
|
||||
|
||||
# - name: Créer le dossier systemd override pour Docker
|
||||
# file:
|
||||
# path: "{{ docker_override_dir }}"
|
||||
# state: directory
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: '0755'
|
||||
# tags: docker, override
|
||||
|
||||
# - name: Déployer l'override systemd pour dockerd (DNS + IPv4 only)
|
||||
# copy:
|
||||
# dest: "{{ docker_override_file }}"
|
||||
# owner: root
|
||||
# group: root
|
||||
# mode: '0644'
|
||||
# content: |
|
||||
# [Service]
|
||||
# ExecStart=
|
||||
# ExecStart=/usr/bin/dockerd \
|
||||
# -H fd:// \
|
||||
# --containerd=/run/containerd/containerd.sock \
|
||||
# {% for dns in docker_dns_servers %}
|
||||
# --dns={{ dns }} \
|
||||
# {% endfor %}
|
||||
# --ipv6=false
|
||||
# notify:
|
||||
# - Reexec systemd
|
||||
# - Restart Docker
|
||||
# - Restart k3s
|
||||
# tags: docker, override
|
||||
|
||||
# # -------- ROLLBACK --------
|
||||
|
||||
# - name: Rollback - Supprimer l'override systemd Docker
|
||||
# file:
|
||||
# path: "{{ docker_override_file }}"
|
||||
# state: absent
|
||||
# notify:
|
||||
# - Reexec systemd
|
||||
# - Restart Docker
|
||||
# - Restart k3s
|
||||
# when: "'rollbacks' in ansible_run_tags"
|
||||
|
||||
# handlers:
|
||||
|
||||
# - name: Reexec systemd
|
||||
# command: systemctl daemon-reexec
|
||||
|
||||
# - name: Restart Docker
|
||||
# service:
|
||||
# name: docker
|
||||
# state: restarted
|
||||
|
||||
# - name: Restart k3s
|
||||
# service:
|
||||
# name: k3s
|
||||
# state: restarted
|
||||
# ignore_errors: yes
|
||||
|
||||
# - name: Restart k3s-agent
|
||||
# service:
|
||||
# name: k3s-agent
|
||||
# state: restarted
|
||||
# ignore_errors: yes
|
||||
|
||||
|
||||
## 3 configurer traefik
|
||||
|
||||
# apiVersion: v1
|
||||
# kind: Service
|
||||
# metadata:
|
||||
# name: pihole-external
|
||||
# namespace: kube-system
|
||||
# spec:
|
||||
# type: ExternalName
|
||||
# externalName: {{ hostvars[groups.pihole[0]]['preferred_ip'] }}
|
||||
# ports:
|
||||
# - port: 3000
|
||||
# targetPort: 3000
|
||||
# ---
|
||||
# apiVersion: traefik.io/v1alpha1
|
||||
# kind: IngressRoute
|
||||
# metadata:
|
||||
# name: pihole
|
||||
# namespace: kube-system
|
||||
# spec:
|
||||
# entryPoints:
|
||||
# - web
|
||||
# routes:
|
||||
# - match: Host(`gitea.arcodange.fr`)
|
||||
# kind: Rule
|
||||
# middlewares:
|
||||
# - name: crowdsec
|
||||
# namespace: kube-system
|
||||
# services:
|
||||
# - kind: Service
|
||||
# name: gitea-external
|
||||
# namespace: kube-system
|
||||
# port: 3000
|
||||
Reference in New Issue
Block a user