Merge pull request 'Ajout du paragraphe sur autoheal' (#107) from evo-stackdl-autoheal into master
Reviewed-on: #107
This commit is contained in:
commit
d8cb84f500
@ -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).
|
Loading…
Reference in New Issue
Block a user