Didier3L Posté(e) le 21 mars 2020 Posté(e) le 21 mars 2020 Bonjour J'ai réussi à attacher mon conteneur au réseau macvlan root@Serveur-Ho37:~# docker network inspect mymacvlan [ { "Name": "mymacvlan", "Id": "5aaac833a63b4637916713baaa517adff886a94769f5854924902484fb42a42f", "Created": "2020-03-20T20:40:19.163031724+01:00", "Scope": "local", "Driver": "macvlan", "EnableIPv6": false, "IPAM": { "Driver": "default", "Options": {}, "Config": [ { "Subnet": "192.168.1.0/24", "IPRange": "192.168.1.240/29", "Gateway": "192.168.1.254", "AuxiliaryAddresses": { "host_bridge": "192.168.1.241" } } ] }, "Internal": false, "Attachable": false, "Ingress": false, "ConfigFrom": { "Network": "" }, "ConfigOnly": false, "Containers": { "fc45ece404897aa03a8889f21f831660d95a5aeff01fd8e85d1a27177aecfa98": { "Name": "jeedom-test", "EndpointID": "deb3751fca58d3ebad91e8f77c614e571f4b2c752e0f9b818dbfef0a1d1dfdc9", "MacAddress": "02:42:c0:a8:01:f0", "IPv4Address": "192.168.1.240/24", "IPv6Address": "" } }, "Options": { "parent": "eth0" }, "Labels": {} } ] je vérifie les info pour voir si l'adresse 192.168.1.240 est présente nano /etc/hosts Alors je tape dans mon navigateur 192.168.1.240 Résultat SQLSTATE[HY000] [2002] No route to host 0 Citer
bruno78 Posté(e) le 21 mars 2020 Posté(e) le 21 mars 2020 Bonjour, as-tu réaliser la partie routage ? ip link add bridgemacvlan link eth0 type macvlan mode bridge ip addr add 192.168.1.241/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.240/29 dev bridgemacvlan 1 Citer
.Shad. Posté(e) le 21 mars 2020 Auteur Posté(e) le 21 mars 2020 S'il a essayé depuis son navigateur, ce n'était sûrement pas sur le NAS, donc il devrait y avoir accès. Jeedom est exposé sur le port 80 ? Que donne un ping depuis ton pc vers le conteneur ? 0 Citer
.Shad. Posté(e) le 22 mars 2020 Auteur Posté(e) le 22 mars 2020 Donc ton conteneur est bien accessible sur le réseau, aucun problème avec la configuration du réseau macvlan en lui-même. Tu peux c/c le script que tu utilises pour créer le conteneur jeedom ? Je parie que tu as fait coïncider des ports hôte/conteneur, or il n'y a plus besoin en macvlan, car c'est une machine indépendante, il n'y a aucun port déjà pris et donc tu peux laisser ceux de jeedom par défaut (80 et 22 normalement). 0 Citer
Didier3L Posté(e) le 22 mars 2020 Posté(e) le 22 mars 2020 (modifié) Bonjour + Voici le fichier init.sh qui se lance au démarrage #!/bin/bash echo 'Start init' if ! [ -f /.dockerinit ]; then touch /.dockerinit chmod 755 /.dockerinit fi if [ -z ${ROOT_PASSWORD} ]; then ROOT_PASSWORD=$(cat /dev/urandom | tr -cd 'a-f0-9' | head -c 20) echo "Use generate password : ${ROOT_PASSWORD}" fi echo "root:${ROOT_PASSWORD}" | chpasswd if [ ! -z ${APACHE_PORT} ]; then echo 'Change apache listen port to : '${APACHE_PORT} echo "Listen ${APACHE_PORT}" > /etc/apache2/ports.conf sed -i -E "s/\<VirtualHost \*:(.*)\>/VirtualHost \*:${APACHE_PORT}/" /etc/apache2/sites-enabled/000-default.conf else echo "Listen 80" > /etc/apache2/ports.conf sed -i -E "s/\<VirtualHost \*:(.*)\>/VirtualHost \*:80/" /etc/apache2/sites-enabled/000-default.conf fi if [ ! -z ${SSH_PORT} ]; then echo 'Change SSH listen port to : '${SSH_PORT} sed '/Port /d' /etc/ssh/sshd_config echo "Port ${SSH_PORT}" >> /etc/ssh/sshd_config else sed '/Port /d' /etc/ssh/sshd_config echo "Port 22" >> /etc/ssh/sshd_config fi if [ ! -z ${MODE_HOST} ] && [ ${MODE_HOST} -eq 1 ]; then echo 'Update /etc/hosts for host mode' echo "127.0.0.1 localhost jeedom" > /etc/hosts fi if [ -f /var/www/html/core/config/common.config.php ]; then echo 'Jeedom is already install' else echo 'Start jeedom installation' rm -rf /root/install.sh wget https://raw.githubusercontent.com/jeedom/core/master/install/install.sh -O /root/install.sh chmod +x /root/install.sh /root/install.sh -s 6 fi echo 'All init complete' chmod 777 /dev/tty* chmod 777 -R /tmp chmod 755 -R /var/www/html chown -R www-data:www-data /var/www/html echo 'Start apache2' systemctl restart apache2 service apache2 restart echo 'Start sshd' systemctl restart sshd service ssh restart echo 'Start atd' systemctl restart atd service atd restart /usr/bin/supervisord Modifié le 22 mars 2020 par Didier3L 0 Citer
.Shad. Posté(e) le 22 mars 2020 Auteur Posté(e) le 22 mars 2020 Je viens d'essayer de créer mon conteneur jeedom par curiosité, ça marche très bien, mais je ne suis pas passé par un script. A noter que j'ai testé sur une distribution linux classique, pas sur le NAS, il y a peut-être deux, trois choses à modifier. En attendant, tu pars du point 7.3) sur la page suivante : https://jeedom.github.io/documentation/installation/fr_FR/index Tu te connectes en root sur le NAS et tu tapes : docker create --name jeedom-server --privileged --hostname jeedom -e ROOT_PASSWORD=password -v /volume1/docker/jeedom/:/var/www/html/ --net=mymacvlan --ip 192.168.1.240 jeedom/jeedom Notes : /volume1/docker/jeedom/ c'est un exemple, tu crées le dossier pour le conteneur où tu veux Pas besoin de rediriger des ports, on redirige quand les ports sont déjà utilisés sur la machine, hors ici tu viens de créer une machine "physique" sur ton réseau physique (grâce au réseau macvlan) Tu spéficies l'IP que tu souhaites donner à ton conteneur via l'argument --ip Tu précises bien que tu souhaites rejoindre le réseau mymacvlan via --net=mymacvlan Maintenant je n'ai pas précisé l'utilisateur ici, car il n'y a pas de PUIG/PGID à entrer comme variable d'envrionnement, essaie de voir sans préciser déjà, et tu te connectes sur http://192.168.1.240, tu arrives sur la page qui te demande te connecter à la base de données. Moi j'utilise celle du Synology, on évite généralement d'utiliser des bases de données dans des conteneurs. Donc je mets l'IP de mon NAS à la place de localhost, le port qui va bien (MariaDB 10 pour moi, port 3307). Avant ça dans phpMyAdmin j'ai créé un utilisateur jeedom avec la base de données du même nom ayant tous les droits dessus, et je remplis en conséquence les champs demandés sur la page, et ça roule tout seul. 0 Citer
Didier3L Posté(e) le 22 mars 2020 Posté(e) le 22 mars 2020 Moi aussi j'utilise Maria DB. Toujours cette erreur 0 Citer
.Shad. Posté(e) le 22 mars 2020 Auteur Posté(e) le 22 mars 2020 Le 21/03/2020 à 18:07, bruno78 a dit : Bonjour, as-tu réaliser la partie routage ? ip link add bridgemacvlan link eth0 type macvlan mode bridge ip addr add 192.168.1.241/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.240/29 dev bridgemacvlan @Didier3L : C'est ce que disait @bruno78, tu as oublié le fait qu'un conteneur ayant rejoint le réseau macvlan ne peut communiquer avec son hôte, d'où le fait qu'il te soit impossible de communiquer avec la base de données sur ton NAS. Suis sa procédure et tout devrait rentrer dans l'ordre. 0 Citer
Didier3L Posté(e) le 23 mars 2020 Posté(e) le 23 mars 2020 Quand il y a noté bridgemacvlan je laisse comme cela ou je mets mon réseau mymacvlan ❓ 0 Citer
.Shad. Posté(e) le 23 mars 2020 Auteur Posté(e) le 23 mars 2020 Je pense que tu dois effectivement remplacer, attendre peut-être confirmation de @bruno78. 0 Citer
bruno78 Posté(e) le 23 mars 2020 Posté(e) le 23 mars 2020 (modifié) Bonjour, bridgemacvlan, c'est le nom du pont entre ton réseau mymacvlan et l’environnement "extérieur". C'est ce qui va lui permettre de communiquer. Donc tu l'appelles comme tu le souhaites, mais il ne représente pas le réseau mymacvlan. Ce sont 2 entités différentes. Donc je déconseille de l'appeler mymacvlan. Je n'ai pas fait le test, peut-être que donner le même nom à 2 entités différentes est accepté, mais ce n'est pas le meilleur moyen pour s'y retrouver ensuite. => lui donner un nom différent, à ton choix. Modifié le 23 mars 2020 par bruno78 0 Citer
Didier3L Posté(e) le 23 mars 2020 Posté(e) le 23 mars 2020 J'ai saisi cela ip link add bridgemacvlan link eth0 type macvlan mode bridge ip addr add 192.168.1.241/32 dev bridgemacvlan # address MAC. cf https://www.cyberciti.biz/faq/linux-ip-command-examples-usage-syntax # il faut que le premier octet soit PAIR # cela permet d'avoir a chaque redemarrage la meme addr MAC, sinon elle change ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.240/29 dev bridgemacvlan Le réseau est bien crée 0 Citer
.Shad. Posté(e) le 23 mars 2020 Auteur Posté(e) le 23 mars 2020 Tu peux vérifier que tu arrives à pinger ton conteneur depuis ton NAS en SSH ? 0 Citer
.Shad. Posté(e) le 23 mars 2020 Auteur Posté(e) le 23 mars 2020 Donc c'est déjà une bonne nouvelle, ça veut dire que le montage de l'interface marche. Chez moi, MariaDB 10 est exposé sur le port 3307, pas 3306, vérifie dans ton DSM (tu lances MariaDB 10, c'est en bas de la fenêtre de configuration). 0 Citer
Didier3L Posté(e) le 23 mars 2020 Posté(e) le 23 mars 2020 (modifié) J'utilise MariaD B5 qui est bien en 3306 Modifié le 23 mars 2020 par Didier3L 0 Citer
Didier3L Posté(e) le 23 mars 2020 Posté(e) le 23 mars 2020 @shad Est-ce que cela fonctionne chez toi ? tu as réussi à installer jeedom ? 0 Citer
.Shad. Posté(e) le 23 mars 2020 Auteur Posté(e) le 23 mars 2020 Il s'est installé oui, mais mon hôte n'est le NAS mais une distribution Debian, et la BD est sur le NAS, du coup pas de problème pour communiquer entre le NAS et le conteneur. Je sais pas ça s'installe, ça a peuplé la DB et j'ai pu changer mon mdp, j'en déduis que ça marchait pas trop mal. Est-ce que tu peux tester le contraire ? Pinger l'interface virtuelle du NAS depuis le conteneur : docker exec -it <nom du conteneur> ping 192.168.1.241 0 Citer
bruno78 Posté(e) le 24 mars 2020 Posté(e) le 24 mars 2020 Bonjour, je n'aime pas trop faire des essais dans le vide, et je ne connais pas Jeedom. Néanmoins, avec MariaDB, j'ai déjà eu des problèmes "similaires". Donc je te propose un test facile et rapide. Dans ton écran de connexion à Jeedom, je vois que tu as mis "Database hostname=192.168.1.10" => peux-tu faire les deux essais suivants avec respectivement "Database hostname=127.0.0.1" (c'est celui qui a fonctionné pour moi), et si ca ne marche toujours pas avec "Database hostname=localhost" ? 0 Citer
Didier3L Posté(e) le 24 mars 2020 Posté(e) le 24 mars 2020 @shad Oui cela ping correctement @bruno78 0 Citer
bruno78 Posté(e) le 24 mars 2020 Posté(e) le 24 mars 2020 Bon, pourquoi as-tu positionné le port à 3307 dans ces essais, je croyais que sur ton installation c'est le port 3306 ? Tu as aussi changé le nom d'utilisateur ? par ailleurs, il est interessant de noter que dans un cas "connection refused", et dans l'autre "no such file or directory" 0 Citer
.Shad. Posté(e) le 24 mars 2020 Auteur Posté(e) le 24 mars 2020 Honnêtement là je sèche, si l'hôte et le conteneur arrivent à se ping et que ton pare-feu ne bloque pas l'accès à la base de données (mais pour le coup je pense que tu aurais le message "Connection refused" et pas "No route to host"), il n'y a aucune raison que tu n'arrives pas à te connecter à la base de données. Je suis en train de tester en créant un conteneur Ubuntu, et faire une install classique de Jeedom dessus, c'est en cours je reviens plus tard. 🙂 0 Citer
Didier3L Posté(e) le 24 mars 2020 Posté(e) le 24 mars 2020 il y a 55 minutes, bruno78 a dit : Bon, pourquoi as-tu positionné le port à 3307 dans ces essais, je croyais que sur ton installation c'est le port 3306 ? Tu as aussi changé le nom d'utilisateur ? par ailleurs, il est interessant de noter que dans un cas "connection refused", et dans l'autre "no such file or directory" Je me suis dit que cela marcherai mieux avec MariaDB 10 donc 3307 ... mais MariaDB 10 ou MariaDB 5 = même erreur 0 Citer
.Shad. Posté(e) le 24 mars 2020 Auteur Posté(e) le 24 mars 2020 (modifié) Bon ça marche bien dans un conteneur ubuntu, par contre ça bouffe pas mal de mémoire : Bon je me suis amusé à créer ça en bridge, je pense que si tu crées ça en macvlan, ben vu que la base de données est embarquée dans le conteneur tu n'as plus de souci de communication avec le NAS. Après pour la persistance des données, si tu veux être tranquille pour ne rien perdre, il faut monter la racine : -v /volume1/docker/jeedom:/ Il y a certainement des arguments à mettre comme --stop-signal pour ordonner une extinction propre du conteneur en cas d'extinction du NAS, avec sûrement aussi une commande à passer pour arrêter proprement jeedom à l'intérieur du conteneur ubuntu. Je vais pas te mentir, c'est au-delà de mes compétences... 😛 si j'y passais beaucoup de temps je m'en sortirais sûrement mais ce temps je ne l'ai pas malheureusement 😞 Je t'invite à continuer tes recherches avec le conteneur en macvlan, je pense que tu y es presque, vérifie un coup ton pare-feu, qu'il autorise bien les connexions locales.... Bon courage 🙂 Modifié le 24 mars 2020 par .Shad. 0 Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.