Ajout du paragraphe sur autoheal #107
| @@ -42,6 +42,9 @@ Elle permet d'installer rapidement ces logiciels et de s'assurer que ces dernier | ||||
|   - 6.b [Rajouter les chemins vers ces médias](#6-b-rajouter-les-chemins-vers-ces-medias) | ||||
|   - 6.c [Mise à jour automatique ( watchtower )](#6-c-mise-à-jour-automatique-watchtower) | ||||
|   - 6.d [Reboot automatique en cas de soucis ( autoheal )](#6-d-reboot-automatique-en-cas-de-soucis-autoheal) | ||||
|     - 6.a.1 [Installation de Autoheal](#6-d-1-installation-de-autoheal) | ||||
|     - 6.a.2 [Surveillance du conteneur VPN](#6-d-2-surveillance-du-conteneur-vpn) | ||||
|     - 6.a.3 [Surveillance des autres conteneurs](#6-d-3-surveillance-des-autres-conteneurs) | ||||
| - 7. Dépannage ( Ce construira au fur et a mesure des questions ) | ||||
|  | ||||
| ## 1. Prérequis | ||||
| @@ -434,3 +437,143 @@ Pour appliquer les changements, il ne reste qu'à mettre à jour la stack avec l | ||||
|  | ||||
| ### 6.d Reboot automatique en cas de soucis ( autoheal ) | ||||
|  | ||||
| - En cas de soucis de VPN la connexion est coupée, et donc, plus rien ne fonctionne. Souvent, un reboot soucis à faire re-prendre la connexion VPN. Afin de ne pas avoir à la faire manulement nous allons utiliser le conteneur [autoheal](https://github.com/willfarrell/docker-autoheal). Celui-ci va surveiller notre conteneur VPN, et dans le cas ou la connexion est interrompu va redémarrer le conteneur sans action de notre part. | ||||
|  | ||||
| Malheuresement, cela ne suffit pas, les conteneurs rattaché au conteneur vpn doivent également être redémarrés :) | ||||
|  | ||||
| Nous allons voir ci-dessous comment mettre ceci en place. | ||||
|  | ||||
| #### 6.d.1 Installation de Autoheal | ||||
|  | ||||
| - Dans un 1er temps, installer le conteneur autoheal en suivant le **point 2/** de ce tutoriel : [Redémarrer automatiquement un conteneur Docker avec un statut unhealthy](https://www.forum-nas.fr/viewtopic.php?f=90&t=16019) | ||||
|  | ||||
|  | ||||
| #### 6.d.2 Surveillance du conteneur VPN | ||||
|  | ||||
| Maintenant, pour activer la surveillance du conteneur VPN, il vous suffit de décommenter pour le service vpn la ligne `labels` ( si cela n'est pas déja fait ) et la ligne `- autoheal=true`. | ||||
|  | ||||
| **Exemple :** | ||||
| ``` | ||||
|   vpn: | ||||
|     image: dperson/openvpn-client:latest | ||||
|     container_name: vpn | ||||
|     restart: unless-stopped | ||||
|     cap_add: | ||||
|      - NET_ADMIN | ||||
|     sysctls: | ||||
|      - net.ipv6.conf.all.disable_ipv6=0 | ||||
|     security_opt: | ||||
|      - label:disable | ||||
|     labels: | ||||
| #     - com.centurylinklabs.watchtower.enable=true | ||||
|      - autoheal=true | ||||
|     environment: | ||||
|      - PUID=${PUID} | ||||
|      - PGID=${PGID} | ||||
|      - TZ=${TZ} | ||||
|     networks: | ||||
|      - vpn-network | ||||
|     dns: | ||||
|      - 84.200.69.80 | ||||
|      - 8.8.8.8 | ||||
|      - 9.9.9.9 | ||||
|     ports : | ||||
|      - 8586:8586 # WebUI qbittorrent | ||||
|      - 9117:9117 # WebUI jackett  | ||||
|      - 7878:7878 # WebUI radarr | ||||
|      - 8989:8989 # WebUI sonarr | ||||
|      - 8191:8191 # Flaresolver | ||||
|      - 8080:8080 # WebUI rutorrent | ||||
|      - 9696:9696 # WebUI prowlarr | ||||
|      - 8686:8686 # WebUI Lidarr | ||||
|     devices:  | ||||
|      - /dev/net/tun:/dev/net/tun | ||||
|     volumes: | ||||
|      - ${RACINE}/vpn/config:/vpn | ||||
|      - ${RACINE}/vpn/scripts:/scripts | ||||
|     command: '-f "" -r 192.168.0.0/24' | ||||
|     healthcheck: | ||||
|       test: ["CMD", "curl", "-Ss", "ifconfig.me"] | ||||
|       interval: 60s | ||||
|       timeout: 15s | ||||
| ``` | ||||
|  | ||||
| Le conteneur vpn possèdent un healcheck celui-ci sera surveillé par autoheal, et redémarré en cas de soucis. | ||||
|  | ||||
| #### 6.d.3 Surveillance des autres conteneurs | ||||
|  | ||||
| - Étudions maintenant la mise en place sur les autres conteneurs. Nous allons prendre exemple sur rtorrent-rutorrent, la méthode sera identique pour les autres conteneurs : | ||||
|  | ||||
| Le Healtcheck que nous allons utiliser ce présente comme ceci : | ||||
| ``` | ||||
|     healthcheck: | ||||
|      test: ["CMD-SHELL", "curl --fail http://PASSERELLE_NETWORK_VPN:PORT_WEB_UI/ || exit 1"] | ||||
|      interval: 1m30s | ||||
|      timeout: 10s | ||||
|      retries: 3 | ||||
| ``` | ||||
|  | ||||
| Ici deux choses sont à modifier `PASSERELLE_NETWORK_VPN` et `PORT_WEB_UI`. | ||||
|  | ||||
| - **PASSERELLE_NETWORK_VPN** est à modifier par l'adresse IP de la passerelle de votre réseau **vpn-network**. | ||||
| Pour la connaitre, en SSH, executer la commande `docker network inspect vpn-network`, dans la réponse à cette commande, vous allez trouver une adresse IP précédée de *Gateway*, par exemple : **"Gateway": "172.20.0.1"** | ||||
| Ici, l'adresse de la passerelle est donc : **172.20.0.1**. | ||||
|  | ||||
|  | ||||
| - **PORT_WEB_UI** est à modifier par le port de l'interface du service, référez-vous à [Accès aux interfaces ( WebUI )](#3-b-accès-aux-interfaces-webui) pour connaitre ce port. | ||||
| Dasn notre exemple, rutorrent utilise le port **8080**. | ||||
|  | ||||
|  | ||||
| Voici donc notre healcheck adapté à rutorrent : | ||||
| ``` | ||||
|     healthcheck: | ||||
|      test: ["CMD-SHELL", "curl --fail http://172.20.0.1:8080/ || exit 1"] | ||||
|      interval: 1m30s | ||||
|      timeout: 10s | ||||
|      retries: 3 | ||||
| ``` | ||||
|  | ||||
| Maintenant que notre healthcheck est pret, nous allons l'intégrer à notre compose. Tous les services du compose sont disposés de la même façon. | ||||
| Le début du service commence par une ligne avec le nom du service suivi de `:`  et la fin par la politique de redémarrage du conteneur : `restart: unless-stopped`. | ||||
|  | ||||
| Deux choses à faire pour mettre en place la surveillance sur notre conteneur maintenant : | ||||
| 1 - Nous allons placer notre healcheck à la fin du service soit, à la ligne, après `restart: unless-stopped`. | ||||
| 2 - Décommenter la ligne `labels` ( si cela n'est pas déja fait ) et la ligne `- autoheal=true`. | ||||
|  | ||||
| **Exemple :** | ||||
| ``` | ||||
|   rtorrent-rutorrent: | ||||
|     image: crazymax/rtorrent-rutorrent:latest | ||||
|     container_name: rutorrent | ||||
|     labels: | ||||
| #      - com.centurylinklabs.watchtower.enable=true | ||||
|       - autoheal=true | ||||
|     depends_on: | ||||
|       - vpn | ||||
|     env_file: | ||||
|       - "./rtorrent-rutorrent.env" | ||||
|     environment: | ||||
|       - PUID=${PUID} | ||||
|       - PGID=${PGID} | ||||
|       - TZ=${TZ} | ||||
|     network_mode: "service:vpn" | ||||
|     volumes: | ||||
|       - ${RACINE}/rutorrent/data:/data | ||||
|       - ${RACINE}/rutorrent/passwd:/passwd | ||||
|       - ${RACINE}/rutorrent/downloads:/downloads | ||||
|     ulimits: | ||||
|       nproc: 65535 | ||||
|       nofile: | ||||
|         soft: 32000 | ||||
|         hard: 40000 | ||||
|     restart: unless-stopped | ||||
|     healthcheck: | ||||
|      test: ["CMD-SHELL", "curl --fail http://172.20.0.1:8080/ || exit 1"] | ||||
|      interval: 1m30s | ||||
|      timeout: 10s | ||||
|      retries: 3 | ||||
| ``` | ||||
| La procédure est identique pour chacun des services du docker-compose que vous souhaitez surveiller. (  | ||||
| > N'oublier pas d'adapter **PORT_WEB_UI** en fonction du conteneur. | ||||
|  | ||||
| Pour appliquer les changements, il ne reste qu'à mettre à jour la stack avec la commande `docker-compose up -d`, plus d'info dans le point 3.a [Commandes de bases ( Docker )](#3-a-commandes-de-bases-docker). | ||||
		Reference in New Issue
	
	Block a user