Forums » Discussions & Questions »
Modifier l'interface Docker0
Ajouté par Kevin Quartier il y a presque 5 ans
Bonjour,
J'ai actuellement un Xivo installé sur une machine Debian.
Je souhaite changer l'adresse IP de l'interface Docker0 de mon serveur Xivo car elle est sur une plage utilisée par d'autres applications. J'ai donc réalisé cette modification dans Docker.
Malheureusement, à partir du moment ou l'IP de mon interface est modifiée (Elle passe de 172.17../16 à 192.168../24) il n'est plus possible d'accéder à l'interface WEB du Xivo.
J'obtiens alors une erreur 504 Bad Gateway, mais, les services Xivo sont toujours OK sur la machine !
Savez-vous quelle est l'origine de ce problème ?
J'ai des pistes pour le Bad Gateway, mais je ne voudrais pas casser l'application d'avantage en bidouillant.
Je vous remercie par avance pour votre aide.
Cordialement,
Kevin Quartier
Réponses (5)
RE: Modifier l'interface Docker0 - Ajouté par Laurent MEILLER il y a presque 5 ans
Bonjour, Kevin, en effet cette modification n'est pas simple, mais en gros voici les étapes:
stopper les services docker:
xivo-dcomp stop
Supprimer le réseau virtuel existant
docker network rm xivo_default
Stopper le service docker
systemctl stop docker.service
Créer le fichier /etc/docker/daemon.json, et spécifier l'adresse réseau qu'utilisera le bridge docker (Exemple 10.10.0.1). Il est important de spécifier une ip, et non une adresse réseau
{
"bip":"10.10.0.1/24"
}
Démarrer docker
systemctl start docker.service
Vérifier la nouvelle adresse de l'interface docker
ifconfig docker0
Adapter les fichiers de Configuration Docker
Sur la machine XIVO (Docker Cofig mgt)
Modifier le fichier /etc/docker/xivo/factory.env et adapter le docker net, en prenant le sous réseau suivant (Ex: 10.10.1.0/24)
Exemple:
XIVOCC_TAG=2018.11 XIVOCC_DIST=latest DOCKER_NET=10.10.1.0/24
Modifier le fichier /etc/docker/xivo/custom.env, et adapter l'adresse de XIVO_HOST, et DB_HOST, en spécifiant l'ip assignée à docker précédemment (Dans notre exemple 10.10.0.1)
XIVO_HOST=10.10.0.1 DB_HOST=10.10.0.1 XIVO_CONFD_AUTH_TOKEN=05c29eb6-5b32-4389-8695-178463a1
Cette modif est valable que pour un XiVO sans UC addon, si vous voulez faire cette même modif pour un UC addon, je pense qu'il vaut mieux que vous vous rapprochiez du support XIVO.
RE: Modifier l'interface Docker0 - Ajouté par Kevin Quartier il y a presque 5 ans
Bonjour,
Merci beaucoup pour votre réponse j'ai pu réaliser les modifications comme indiqué.
Cependant, il faut penser à utiliser la commande systemctl daemon-reload après avoir créé/édité le fichier daemon.json sinon l'interface ne voit pas son ip changer. (Sous debian en tout cas.)
Ensuite, j'ai bien supprimé le network xivo_default et du coup quand je démarre les services xivo j'ai ces erreurs :
ERROR: for outcall Cannot start service outcall: network xivo_default not found
ERROR: for db Cannot start service db: network xivo_default not found
Y a t il des paramètres spécifiques pour recréer xivo_default ?
Je vous remercie par avance.
RE: Modifier l'interface Docker0 - Ajouté par Laurent MEILLER il y a presque 5 ans
Bonjour,
Normalement le réseau docker se créée automatiquement grâce à docker compose, la configuration est d'ailleurs visible dans le fichier /etc/docker/xivo/docker-xivo.yml
networks: default: ipam: driver: default config: - subnet: ${DOCKER_NET}
Pour que le réseau se recréé, il suffit normalement d'appeler notre alias docker compose pour ré-appliquer les changements :
xivo-dcomp up -d
RE: Modifier l'interface Docker0 - Ajouté par Kevin Quartier il y a presque 5 ans
Lorsque je veux créer le réseau, docker me dit qu'il est en conflit IP avec le réseau bridge Docker0
ERROR: cannot create network 9c39868d4b6f91411e6eae5aea278f711965fd555ec0a02de878cd1bc9cda9f0 (br-9c39868d4b6f): conflicts with network a5491ce9694efc37c162be8ebd44280d20181ba9226b494aa1a03f7348331e24 (docker0): networks have overlapping IPv4
Il fallait bien mettre la même adresse IP du bridge docker dans les fichiers de configuration xivo (XIVO_HOST et DB_HOST) ?
RE: Modifier l'interface Docker0 - Ajouté par Kevin Quartier il y a presque 5 ans
Bonjour,
J'ai réussi à rétablir le fonctionnement de mon application Xivo avec la nouvelle adresse du bridge Docker.
Voici ce qui a été réalisé, au cas d'autres personnes rencontreraient une difficulté similaire sous Debian 9. J'utilise deux plages d'adresse pour cet exemple : 10.10.0.0/24 et 192.168.50.0/24
Pour commencer couper tous les services Xivo. Supprimer le network Xivo_default
docker network rm xivo_default
Supprimer les services résiduels de xivo docker remontés avec la commande docker ps -a ( les conteneurs seront en status exited)
docker rm CONTAINER_ID
J'ai changé l'adresse IP de l'interface bridge docker0 en modifiant le fichier /etc/docker/daemon.json
{ "bip":"10.10.0.1/24" }
Puis redémarrer le service docker
service docker restart
J'ai ensuite modifié les fichiers /etc/docker/xivo/factory.env et /etc/docker/xivo/custom.env pour changer la plage d'adresse IP de Xivo mais avec une plage différente de celle du Docker bridge (Sinon j'ai le conflit entre le xivo_default et docker0 comme dans mon message précédent.)
/etc/docker/xivo/factory.env
XIVOCC_TAG=2019.12 XIVOCC_DIST=latest DOCKER_NET=192.168.50.0/24
/etc/docker/xivo/custom.env (Pour ce dernier mettre bien la première IP du scope disponible.)
XIVO_HOST=192.168.50.1 DB_HOST=192.168.50.1 APPLICATION_SECRET=Iiuex04w2Hgx6xSxPHLnhEAYBBsEAPx4c9qAep22omMZrNEa3U4JxkU1dXFM8uCw ARI_PASSWORD=59B92uJ1RHhI32je XIVO_CONFD_AUTH_TOKEN=b2b68e80-4104-42aa-9fde-ffbcb25f27e7
Il a ensuite fallu que je déclare ces deux réseau dans le fichier /var/lib/postgresql/11/main/pg_hba.conf car sinon il ne reconnait pas les deux réseau et le service db ne démarre pas.
## XiVO default configuration for default docker networks. host all all 172.18.0.0/24 md5 host all all 172.18.1.0/24 md5 **host all all 10.10.0.0/24 md5 host all all 192.168.50.0/24 md5**
J'ai ensuite démarré les services Xivo
xivo-service start all
Merci pour votre aide.