bruno78 Posté(e) le 24 mars 2020 Partager Posté(e) le 24 mars 2020 bonjour, je vais tacher également de mon côté à faire une config équivalente. (docker + macvlan) 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 25 mars 2020 Partager Posté(e) le 25 mars 2020 Merci à vous deux en tout cas 😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 25 mars 2020 Partager Posté(e) le 25 mars 2020 (modifié) Bonjour @Didier3L, @.Shad. j'ai une bonne et une mauvaise nouvelle ! la bonne, c'est que j'ai pu faire fonctionner la solution basée sur Docker et réseau macvlan (non sans mal !!). Je n'ai pas d'équipement manageable via Jeedom ni de compte, donc je n'ai pas pu aller très loin, mais on passe bien les étapes de connexion et de configuration de la base de données, puis accès à l'application Jeedom elle même. la mauvaise, ...... c'est que je n'ai plus le temps ce soir, et que je ne ferai une description de l'ensemble que demain 🙂 Modifié le 25 mars 2020 par bruno78 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 25 mars 2020 Auteur Partager Posté(e) le 25 mars 2020 Bonne nouvelle ! Moi en relisant les messages @Didier3L, je me suis fait deux remarques : Pourquoi avoir modifié le fichier /etc/hosts ? à aucun moment tu as essayé de joindre le conteneur par son nom plutôt que par son IP. D'autant que les changements manuels de /etc/hosts sont effacés à chaque redémarrage du NAS. As-tu supprimé tous les fichiers présents dans les volumes montés entre chaque essai ? As-tu essayé d'installer Jeedom autrement qu'avec le script ? comme moi je l'ai fait dans le post suivant : 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 26 mars 2020 Partager Posté(e) le 26 mars 2020 Bonjour, je vais donner le détail dans la journée, mais effectivement : je n'ai pas eu besoin de modifier le fichier hosts problème majeure rencontré : pas de résolution DNS (le DNS par defaut de Jeedom à l'installation est 127.0.0.11, ce qui ne va pas nous servir ici !) => nécessité de mapper un fichier /etc/resolv.conf personnalisé dés le démarrage du container (c'est en tout cas la solution la plus rapide que j'ai trouvée) Pour la commodité, j'ai également mappé un fichier sources.list, c'est toujours ca de moins à faire en mode console Ce qui donne dans le docker-compose.yaml : volumes: - "/volume1/docker/jeedom/html:/var/www/html" - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" lors de la première connexion de Jeedom à la base de données, il faut utiliser le user root de la bdd. et à la fin de l'installation, si elle se passe bien, un compte jeedom admin/admin est créé avec lequel on doit se reconnecter, et changer le mot de passe à la première connexion. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 26 mars 2020 Partager Posté(e) le 26 mars 2020 Bonjour @shad Bonjour @bruno78 C'est super tout ca ! merci J'attends ta procédure @bruno78 pour faire une installation tout neuve 😉 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 26 mars 2020 Partager Posté(e) le 26 mars 2020 (modifié) Je vous présente ici la façon dont j'ai pu configurer un docker Jeedom, avec sa base associée mariaDB, sur un réseau docker de type macvlan. En 2 mots, l'avantage du réseau macvlan est de configurer l'équivalent d'une vraie machine physique sur son LAN, avec ses adresses MAC et IP propres. Cela permet entre autre d'exposer les ports standards puisqu'il n'y a pas de doublons. Il y a également quelques inconvénients, comme l'impossibilité de communiquer avec l'hôte (mais il y a un contournement possible) 1) ma configuration initiale : Un réseau LAN en 192.168.1.0/24 Une box Freebox Révolution sur ce LAN en 192.168.1.1. Cette Box fait fonction de gateWay, et de serveur DHCP pour le LAN. La plage IP allouée pour le DHCP est : [192.168.1.100 <=> 192.168.1.247] Au niveau Docker du NAS : Un réseau de type "bridge" qui est utilisé pour du monotoring (telegraf / influxdb / grafana). Ce n'est pas l'objet ici. (mais j'ai promis aussi de faire un tuto "monitoring freebox basé sur ce trio. Ca va venir, mais entre temps le disque dur de ma box a cramé. Ca m'a un peu ralenti !) Un réseau de type "bridge macvlan" utilisé pour 2 dockers: serveur DNS/Pihole (192.168.1.250) et serveur Plex (192.168.1.249). Cf. schéma ci-dessous. Les configurations correspondantes sont les suivantes : docker-compose.yaml version: '2' networks: brw_network: driver: macvlan driver_opts: parent: ovs_eth0 ipam: config: - subnet: 192.168.1.0/24 gateway: 192.168.1.1 ip_range: 192.168.1.248/29 services: pihole: container_name: pihole-pihole1 image: pihole/pihole:latest hostname: pihole domainname: xxxxx.eu mac_address: d0:ca:ab:cd:ef:01 cap_add: - NET_ADMIN networks: brw_network: ipv4_address: 192.168.1.250 volumes: - /volume1/docker/compose/piconfig/pietc:/etc/pihole - /volume1/docker/compose/piconfig/pidnsmasq:/etc/dnsmasq.d dns: - 127.0.0.1 ports: - 443/tcp - 53/tcp - 53/udp - 67/udp - 80/tcp environment: ServerIP: 192.168.1.171 # <-- Update (match NAS ipv4_address) DNS1: 80.67.169.12 DNS2: 80.67.169.40 VIRTUAL_HOST: pihole.xxxxx.eu # <-- Update (match hostname + domainname) restart: unless-stopped plex: image: linuxserver/plex:latest container_name: PlexLesMongets mac_address: d0:ca:ab:cd:ef:02 networks: brw_network: ipv4_address: 192.168.1.249 dns: - 192.168.1.250 # <- .250 PiHole hostname: PlexLesMongets volumes: - /volume1/docker/compose/plexconfig:/config - /volume1/music:/docker/musiquedocker - /volume1/homes/momuser/Drive/Moments:/docker/photodocker - /volume1/video:/docker/videodocker environment: - VERSION=latest - TZ=Europe/Paris restart: unless-stopped Script de routage vers le réseau macvlan, à lancer au demarrage du NAS. C'est ce qui permet aux dockers sur ce réseau de communiquer vers l'exterieur. #!/bin/sh # permettre au docker PiHole cree selon la méthode dite Tony Lawrence # a l'addresse 192.168.1.250/32 # http://tonylawrence.com/posts/unix/synology/free-your-synology-ports/ # de communiquer avec l'hote cad le NAS DNS-server # # creation non persistante # a relancer a chaque demarrage du NAS #Set timeout to wait host network is up and running sleep 60 #Host macvlan bridge recreate ip link add bridgemacvlan link ovs_eth0 type macvlan mode bridge ip addr add 192.168.1.251/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 # cela facilite les stats dans PiHole onglet >network ip link set dev bridgemacvlan address 0:1:2:3:4:5 ip link set bridgemacvlan up # ip route add 192.168.1.248/29 dev bridgemacvlan 2) La cible : Ajouter et configurer les 2 containers, Jeedom et MariaDB, sur le réseau macvlan. Cf. figure ci-dessous 3) Jeedom & mariaDB : préparation du fichier docker-compose.yaml dédié. Jeedom a besoin d'une base de données, je prendrais donc MariaDB10. J'ai dejà le paquet Syno MariaDB installé, mais par mesure de sécurité je préfère dissocier. Donc je vais également monter un docker MariaDB dédié à Jeedom. Image Jeedom : jeedom/jeedom:master Image MariaDB : mariadb:latest Service Jeedom : adresse MAC (arbitraire) : a0:ca:ab:cd:ef:01 adresses IP sur le réseau macvlan : 192.168.1.252 limite utilisatin mémoire (soyons prudents) : 500M montage fichiers (persistence) : volumes: - "/volume1/docker/jeedom/html:/var/www/html" montage fichier (resolution DNS, indispensable !): volumes: - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" montage volume (listes sources, c'est juste du confort pour la suite): volumes: - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" Service MariaDB : adresse MAC (arbitraire) : a0:ca:ab:cd:ed:10 adresses IP sur le réseau macvlan : 192.168.1.253 limite utilisatin mémoire (soyons prudents) : 500M montage fichiers (persistence de la database) : volumes: - "/volume1/docker/mariadb/db:/val/lib/mysql" variables d'environnement mariadb:création compte root et mot de passe et nom de la databse. environment: - MYSQL_ROOT_PASSWORD=toto - MYSQL_DATABASE=jeedomdb Réseau pour les 2 dockers : il faut indiquer que l'on fait appel au réseau macvlan existant (compose_brw_network), défini en dehors de ce docker-compose, de la façon suivante pour chaque docker: networks: default: ipv4_address: 192.168.1.252 (ou 253 suivant le service) Récapitulatif : fichier docker-compose.yaml complet pour les 2 dockers Jeedom et mariaDB: # test jeedom version: '2' networks: default: external: name: compose_brw_network services: jeedom: container_name: jeedom-server image: jeedom/jeedom:master hostname: jeedom mac_address: a0:ca:ab:cd:ef:01 networks: default: ipv4_address: 192.168.1.252 mem_limit: 500M volumes: - "/volume1/docker/jeedom/html:/var/www/html" - "/volume1/docker/jeedom/etcresolv.conf:/etc/resolv.conf:ro" - "/volume1/docker/jeedom/aptsources.list:/etc/apt/sources.list:ro" restart: unless-stopped mariadb: container_name: mariadb image: mariadb:latest hostname: mariadb mac_address: a0:ca:ab:cd:ed:10 networks: default: ipv4_address: 192.168.1.253 environment: - MYSQL_ROOT_PASSWORD=toto - MYSQL_DATABASE=jeedomdb - MYSQL_USER=user - MYSQL_PASSWORD=toto mem_limit:500M volumes: - "/volume1/docker/mariadb/db:/val/lib/mysql" 4) resolution DNS: fichier resolv.conf A l'installation du docker Jeedom, ce dernier ne connait comme serveur DNS "que" 127.0.0.11. Or le docker Jeedom à besoin de résolution DNS dés son démarrage. Du coup je lui impose le fichier resolv.conf suivant : root@ds918blam:/volume1/docker/jeedom# cat etcresolv.conf nameserver 192.168.1.250 # PiHole root@ds918blam:/volume1/docker/jeedom# En fait je dis ici au container Jeedom de s'adresser au container PiHole pour la résolution DNS. Sachant qu'ensuite le PiHole s'adresse aux DNS FDN. 5) liste des sources apt: Lors de l'installation de Jeedom, on installe et on met à jour la plateforme linux, ce qui nécessite de connaitre les sources externes de paquets. Cette édition peut se faire dans le terminal de Jeedom, mais si elle est faite avant, c'est toujours cela de gagné, et cela évite les fautes de frappe. root@ds918blam:/volume1/docker/jeedom# cat aptsources.list # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch main deb http://deb.debian.org/debian stretch main non-free # deb http://snapshot.debian.org/archive/debian-security/20190326T120000Z stretch/updates main deb http://security.debian.org/debian-security stretch/updates main non-free # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch-updates main deb http://deb.debian.org/debian stretch-updates main non-free # # tuto # deb-src http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch-updates main non-free deb-src http://security.debian.org stretch/updates main non-free root@ds918blam:/volume1/docker/jeedom# 6) Installation on vient se placer dans le répertoire /volume1/docker/jeedom qui contient le fichier docker-compose.yaml Puis on lance les commandes : /!\ ATTENTION : pas de caractère <TAB> dans le fichier .yaml. Que des espaces /!\ * chargement des images : $docker-compose pull * démarrage des dockers : $docker-compose up -d * on vérifie que les dockers sont bien lancés : root@ds918blam:/volume1/docker/jeedom# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 7e82241f42db jeedom/jeedom:master "/root/init.sh" 21 hours ago Up 5 hours jeedom-server 114dfbf02702 mariadb:latest "docker-entrypoint.s…" 22 hours ago Up 5 hours mariadb Jeedom : on se connecte dans un terminal (bash) : on contrôle le fichier /etc/hosts : normalement rien à modifier root@jeedom:/# cat /etc/hosts 127.0.0.1 localhost ::1 localhost ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters 192.168.1.252 jeedom root@jeedom:/# on contrôle le fichier /etc/apache2/ports.conf : normalement rien à modifier => on peut garder le port 80 sans problème. root@jeedom:/# cat /etc/apache2/ports.conf Listen 80 root@jeedom:/# on vérifie le fichier hostname : rien à modifier root@jeedom:/# cat /etc/hostname jeedom root@jeedom:/# on vérifie le fichier /etc/apt/sources.list : c'est celui que l'on a déjà rempli sur le NAS root@jeedom:/# cat /etc/apt/sources.list # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch main deb http://deb.debian.org/debian stretch main non-free # deb http://snapshot.debian.org/archive/debian-security/20190326T120000Z stretch/updates main deb http://security.debian.org/debian-security stretch/updates main non-free # deb http://snapshot.debian.org/archive/debian/20190326T120000Z stretch-updates main deb http://deb.debian.org/debian stretch-updates main non-free # # tuto # deb-src http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch-updates main non-free deb-src http://security.debian.org stretch/updates main non-free root@jeedom:/# on vérifie la connectivité réseau : en particulier, on ping le DNS, on ping la gateway, on ping le container mariadb, et on ping l'exterieur, google par exemple. Si tout est bon, on peut passer à l'installation de Jeedom proprement dite. root@jeedom:/# ping -c 5 192.168.1.250 PING 192.168.1.250 (192.168.1.250) 56(84) bytes of data. 64 bytes from 192.168.1.250: icmp_seq=1 ttl=64 time=0.088 ms 64 bytes from 192.168.1.250: icmp_seq=2 ttl=64 time=0.083 ms 64 bytes from 192.168.1.250: icmp_seq=3 ttl=64 time=0.067 ms 64 bytes from 192.168.1.250: icmp_seq=4 ttl=64 time=0.071 ms 64 bytes from 192.168.1.250: icmp_seq=5 ttl=64 time=0.082 ms --- 192.168.1.250 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.067/0.078/0.088/0.009 ms root@jeedom:/# ping -c 5 192.168.1.253 PING 192.168.1.253 (192.168.1.253) 56(84) bytes of data. 64 bytes from 192.168.1.253: icmp_seq=1 ttl=64 time=0.087 ms 64 bytes from 192.168.1.253: icmp_seq=2 ttl=64 time=0.078 ms 64 bytes from 192.168.1.253: icmp_seq=3 ttl=64 time=0.065 ms 64 bytes from 192.168.1.253: icmp_seq=4 ttl=64 time=0.078 ms 64 bytes from 192.168.1.253: icmp_seq=5 ttl=64 time=0.062 ms --- 192.168.1.253 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 3999ms rtt min/avg/max/mdev = 0.062/0.074/0.087/0.009 ms root@jeedom:/# root@jeedom:/# ping -c 5 192.168.1.1 PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.610 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.257 ms 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.254 ms 64 bytes from 192.168.1.1: icmp_seq=4 ttl=64 time=0.262 ms 64 bytes from 192.168.1.1: icmp_seq=5 ttl=64 time=0.248 ms --- 192.168.1.1 ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4000ms rtt min/avg/max/mdev = 0.248/0.326/0.610/0.142 ms root@jeedom:/# ping -c 5 google.com PING google.com (216.58.213.174) 56(84) bytes of data. 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=1 ttl=58 time=2.90 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=2 ttl=58 time=3.23 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=3 ttl=58 time=2.66 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=4 ttl=58 time=2.86 ms 64 bytes from par21s04-in-f14.1e100.net (216.58.213.174): icmp_seq=5 ttl=58 time=2.69 ms --- google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4005ms rtt min/avg/max/mdev = 2.667/2.873/3.230/0.203 ms root@jeedom:/# Installation de Jeedom : on suit le tuto de @Didier3L (https://community.jeedom.com/t/tuto-installation-de-jeedom-sur-synology-avec-docker-en-mode-host/5290), à savoir : Lancer ces 3 commandes : (15 à 20 minutes en tout) apt-get update && apt-get upgrade -y && apt-get -y build-dep pam export CONFIGURE_OPTS=--disable-audit && cd /root && apt-get -b source pam && dpkg -i libpam-doc*.deb libpam-modules*.deb libpam-runtime*.deb libpam0g*.deb apt-get remove --purge -y $(apt-mark showauto) && apt-get clean puis edition du fichier /root/init.sh pour mise à jour et vérifier que la fin du fichier contienne : 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 service ssh start echo 'Start atd' systemctl restart atd service atd restart service atd start /usr/bin/supervisord puis on redemarrare le docker jeedom (qui dans mon installation s'appelle donc jeedom-srv) 7) Finalisation Il ne reste plus qu'à finaliser ! On se connecte (navigateur) à notre docker jeedom : http://192.168.1.252 (pas besoin de préciser le port puisque l'on utilise le port standard 80) Sur l'écran de connexion, on renseigne : database hostname : 192.168.1.253 database port : 3306 (ce docker mariadb10 expose par default le port 3306 ...) database username : root database password : toto (ce que vous avez configuré dans les variables du docker dans le fichier docker-compose) database name : jeedomdb (ce que vous avez configuré dans les variables du docker dans le fichier docker-compose) puis : PROCEED Et la normalement (!) le processus initial de configuration de la databse demarre pour quelques minutes, puis invite à se connecter avec le compte admin/admin, qui demandera lors de la première connexion de changer le mot de passe. Voilà, c'est fait ! PS: Je n'ai pour le moment pas l'utilité de Jeedom puisque je n'ai pas de domotique, donc je ne peux pas aller au delà. Je garde ma configuration opérationnelle, si besoin. Il conviendra également surement de monitorer un peu les consommations mémoire des dockers, de façon à leur poser des limites raisonables (paramètre mem_limit:500M dans le docker-compose.yaml. 500M c'est peut-être un peu généreux ... à voir à l'usage) J'espère ne pas avoir fait d'erreur de retranscription. Enfin un dernier mot: n'étant pas expert, il se peut que j'emploie des méthodes qui sont plus des recettes que de l'état de l'art techniquement parlant. Je m'en excuse, et suis ouvert à tous commentaires. Si il y a des points à modifier, corriger ou simplement améliorer, n'hésitez pas. (c'est le premier post de ce type que je fais, donc soyez indulgents) Bruno78 Modifié le 26 mars 2020 par bruno78 typo 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredje_B Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 Merci Bruno78 pour ce tutoriel très interessant! Ca me donne envie de faire passer mon Jeedom à nouveau sur un Docker plutôt que la Machine Virtuelle qui reste lourde pour le système. Le pire c'est que j'ai déjà un pi-hole en macvlan qui tourne et n'ai jamais pensé à y inclure Jeedom! Je vais tenter la manoeuvre et faire une vérification des performances de Jeedom...si il n'y a pas trop de perte (je ne m'attend pas à un gain), je convertirai certainement tout vers Docker. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 Je te souhaite bonne réussite ! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Fredje_B Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 Bon pour la mise en oeuvre, ca sera pour demain matin quand la petite famille dort encore car ma box ne me permet pas de gérer le DHCP, je vais renseigner mon routeur local en DMZ de ma box et configurer le DHCP sur mon routeur local...ce qui signifie une interruption du réseau pendant quelques minutes et en ces temps de confinement, toute la famille est occupée sur internet à l'instant. Je ne voudrai pas que ca soit eux qui me tue à la place du virus... J'ai deux question (@bruno78) : J'ai déjà pas mal de serveurs configuré en adresse fixe mais dans la plage 0 à 99...je voudrai donc faire l'inverse de toi et déclarer la plage DHCP de 100 à 255 et garder mes serveurs sur la plage 0 à 99. Y a t'il un problème potentiel à cette approche? Je n'ai pas trop compris l'astuce du script au redémarrage du NAS...à quoi cela sert il exactement? Et surtout pourquoi y a t'il cette ligne dans ce script vu que tu n'as aucun serveur sur l'adresse 248 : "ip route add 192.168.1.248/29 dev bridgemacvlan"? Merci d'avance pour toute aide. Frederic 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 (modifié) Bonjour @bruno78 Si j'ai bien compris on ne peut donc pas communiquer directement du conteneur Jeedom à la base MariaDB sans passer par l'ajout de PiHole ? Dans ton descriptif, tu créé un docker pour la BD C'est normal que Gateway (Freebox) soit en 192.168.1.1 ❓ Moi on m'a dit de mettre 192.168.1.254 --gateway=192.168.1.254 Concernant l'image Jeedom : J'avais indiqué que l'image master n’était pas maintenu. L'utilisation de cette image pose des problèmes et en mode Host on pas les droits SUDO pour que jeedom fonctionne correctement. Cette contrainte est du apparemment à l’implémentation de Docker par Synology ... C'est pour cela qu'on apporte des modifications au système pour avoir ces droits SUDO Mais c'est modifications apportent un mode "dégradé" au système. Alors si on applique mon tuto, jeedom est 100% fonctionnelle en mode Host. mais je m’aperçois que la solution miracle du réseau macvlan n'est pas aussi simple que prévu ... Modifié le 27 mars 2020 par Didier3L 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 (modifié) @Fredje_B pas de problème à utiliser une autre plage d'adresses que celle que j'ai pris. C'est totalement libre. adressage : le problème de la route additionnelle pour joindre le réseau macvlan, c'est que ce n'est pas permanent. Si tu le fait juste en console et que tu redémarres le NAS, c'est perdu. C'est pour cela qu'il faut placer ce script qui ne va s’exécuter qu'au démarrage du NAS, ainsi il te repositionnera la route nécessaire automatiquement. ensuite la commande elle même : la notation 192.168.1.248/29 représente un réseau de 8 adresses IP en tout (masque /29) 192.168.1.248/29 : réseau complet, les 8 adresses, de 192.168.1.248 à 192.168.1.255 l'adresse individuelle 192.168.1.248 (encore notée 192.168.1.248/32) est réservé pour le réseau (comme 192.168.1.0 sur notre LAN) les 6 adresses individuelles 192.168.1.249 à 192.168.1.254 sont utilisables pour des machines / stations enfin la dernière adresses 192.168.1.255 est dite "adresse de broadcast", c'est elle qui représente sur ce réseau l'adresse de diffusion pour s'adresser à toutes les machines à la fois (pour les protocoles qui doivent découvrir une cible) il y a pas mal de documentation sur le sujet, par exemple https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing Bruno78 Bonjour @Didier3L la gateway sur un réseau : tu prends exactement l'adresse que tu veux, il n'y a pas de contrainte technique. Cependant, par commodité et habitude, on prend en général la première (192.168.1.1) ou la dernière (192.168.1.254). Mais vraiment aucune différence de fonctionnement. jeedom accède à mariadb sans passer par PiHole. D'autant que l'on adresse mariadb par son adresse IP directement. Mais pour que Jeedom puisse sortir sur le monde externe (deb.debian.org par exemple) on a besoin d'une résolution de noms, qui dans mon cas est assurée par le Pihole. Cependant, on peut très bien se passer du PiHole, et indiquer nameserver 8.8.8.8 # DNS google image jeedom:master : bon ben je n'ai pas vu qu'elle n' était pas maintenue. Il y a t'il une autre image plus récente ? macvlan : je reconnais qu'à la première mise en place, pour pihole, j'en ai un peu bavé ! Modifié le 27 mars 2020 par bruno78 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 27 mars 2020 Auteur Partager Posté(e) le 27 mars 2020 @bruno78 Merci de ton retour, c'est intéressant de voir comment tu as procédé, j'aurais omis l'exemple de Pihole et Plex, ça embrouille plus qu'autre chose 😛 @Didier3L & @bruno78 Pihole n'est là qu'à titre d'exemple pour comprendre comment il intègre un conteneur à un réseau macvlan dans un fichier compose. Docker-compose permet de rendre plus lisible ce que tu écris avec tapant tes lignes de commande pour créer ton conteneur. La décision d'utiliser un conteneur MariaDB se défend pour plusieurs raisons, mais pas de sécurité selon moi. Quand on expose un conteneur sur un réseau macvlan, donc sur un réseau physique, on fait péter d'office le pare-feu du NAS, tous les ports sur ce conteneur sont exposés. Donc à moins d'avoir un routeur pare-feu type pfSense ou ajouter soi-même quelque chose du type firewalld au conteneur, c'est moins sécurisé. Concrètement je pense que tu n'étais pas loin @Didier3L, car tu savais ping l'interface virtuelle de ton NAS depuis le conteneur et vice versa. Je pense que l'erreur se situe dans ton script docker, je ne vois que cette possibilité, c'est l'occasion de t'essayer à compose si tu ne connais pas et de t'inspirer de ce que propose @bruno78 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 Bonsoir @.Shad. tu as entièrement raison , j'aurais dû supprimer les références à Pihole et Plex qui n'ont rien à faire là, ... mais c'était mon existant et quand on a la tête dans le guidon, on ne s'en rend pas compte. et oui, l'inconvénient du macvlan c'est de court-circuiter le firewall. Je n'y ai pas prêté attention. Je pense que ça va être mon prochain terrain de jeu. Que pourrais-tu proposer à ce sujet ? quelle solution techniquement abordable pour obtenir un résultat correct ? pfSense ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 je commence avec docker-compose ... version: '2' networks: default: external: name: mymacvlan services: jeedom: container_name: jeedom-test image: jeedom/jeedom:latest mac_address: a0:ca:ab:cd:ef:01 networks: default: ipv4_address: 192.168.1.240 volumes: - "/volume1/docker/jeedom-test:/var/www/html" - "/volume1/docker/jeedomconfig/etcresolv.conf:/etc/resolv.conf:ro" restart: unless-stopped environment: - PUID=1032 - PGID=101 - SSH_PORT=22 - APACHE_PORT=80 - SSH_PASSWORD=jeedom - ROOT_PASSWORD=jeedom - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 est-ce que le réseau mymacvlan existe bien ? 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 oui 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 et de mémoire il faut respecter l'indentation .... 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 27 mars 2020 Auteur Partager Posté(e) le 27 mars 2020 il y a 30 minutes, bruno78 a dit : et de mémoire il faut respecter l'indentation .... Oui tout à fait, et c'est bien plus lisible de surcroît. Pour ma part j'avais suivi les recommandations du guide dont j'avais donné le lien. J'avais dû donner un flag privileged au conteneur : privileged: true ou --privileged via le shell. Un lien intéressant au sujet des implications de ce flag : https://medium.com/better-programming/docker-tips-mind-the-privileged-flag-d6e2ae71bdb4 Autre chose, attention à l'utilisateur (www-data) qui est mappé depuis le conteneur vers les volumes sur le NAS, ce qui ne m'a posé aucun problème sur une Debian ne t'en a pas posé @bruno78 sur le NAS ? DSM est capricieux avec les permissions pour Docker... 😉 @bruno78 pfSense n'est pas la seule solution, mais peut-être une des plus documentées, il en existe plein d'autres : OPNSense, Sophos, Mikrotik, etc... Si tu veux "tester", sur le site de Netgate tu peux trouver la VM prête à être installer, ça te permet déjà de voir à quoi ça ressemble (l'interface est nickel). Si tu as un vieux PC, tu peux te faire un homelab avec pfSense installé dessus, il faut juste deux connecteurs Ethernet disponibles (une pour le WAN, une pour le LAN). Avec le pare-feu, tu pourras tout à fait définir les ports ou les protocoles à bloquer vers un conteneur sur réseau physique par exemple, comme dans notre cas. Pour ma part j'ai trouvé un Qotom i5 de seconde main (neuf en réalité) pour pas trop cher (200€ quand même, il était à 350€ sur Amazon). J'ai la chance de connaître quelqu'un qui avait pu me montrer au préalable à quoi ça ressemblait et j'ai été de suite séduit. Autrement c'est avec iptables dans le conteneur, mais bon faut aimer fourrer son nez là-dedans 😄 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 27 mars 2020 Partager Posté(e) le 27 mars 2020 C’est normal que je n’arrive pas à faire un Ping du conteneur vers mon Synology 192.168.1.10 ? j'utilise le paquet MariaDB sur le Synology Donc 192.168.1.10 port 3306 à la différence de vos exemples qui est avec une Bd en conteneur Docker enfin quel est l’avantage d’utiliser docker compose ? Super le formatage strict a l’espace près !!! 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 28 mars 2020 Partager Posté(e) le 28 mars 2020 Bonjour @Didier3L pour être honnête, je ne sais pas si c'est normal, mais j'ai le même comportement : Et c'est a priori la seule adresse que je n'arrive pas à pinguer depuis le docker jeedom. Idem pour tous les autres containers en mode macvlan que j'ai configurés. Cette adresse (192.168.1.10 pour toi, 192.168.1.171 pour moi le NAS) semble être la seule du réseau local 192.168.1.0/24 que l'on ne puisse pas atteindre. Il me semble avoir lu quelque part que c'était une mesure de sécurité, mais j'avoue ne plus me souvenir où je l'ai vu. Je vais rechercher. Quant à l'avantage du fichier docker-compose ... C'est vrai que sa mise au point est "délicate", mais après c'est un vrai confort. Mais ce n'est pas la seule méthode, il y a des adeptes .... et surement des anti .... J'avoue m'en servir beaucoup. Une fois au point, ça va très vite à modifier et pour régénérer des container. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 28 mars 2020 Partager Posté(e) le 28 mars 2020 @.Shad. je n'ai pas eu besoin de passer le container en mode "privileged". par contre oui, pour les users, je ne sais pas quelle patouille il me met !! il a basculé les droits du repertoire ./jeedom en introduisant un groupe "33" qui vient de nulle part. En fait si, le groupe 33 est celui du user www-data sur le docker jeedom .... et ensuite DSM me refusait l’édition des fichiers. Il fallait passer en direct par putty ! Merci pour les infos pfsense et autres .... je vais regarder en détail. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
.Shad. Posté(e) le 28 mars 2020 Auteur Partager Posté(e) le 28 mars 2020 (modifié) Il y a 10 heures, Didier3L a dit : Super le formatage strict a l’espace près !!! Ce n'est pas le nombre d'espaces qui compte, simplement l'indentation, l'alignement qui doit différer 😉 il y a 31 minutes, bruno78 a dit : pour être honnête, je ne sais pas si c'est normal, mais j'ai le même comportement : Heu... c'est la raison pour laquelle vous créez une interface virtuelle (avec ton script en l'occurence). L'adresse IP de l'interface physique du NAS (eth0, ovs_eth0, eno1, qu'importe, celle qui correspond à votre prise Ethernet hors VLAN) ne sera JAMAIS accessible, par essence du driver macvlan. Mais entrer l'adresse IP de l'interface virtuelle revient à cibler le NAS de la même manière que si l'on utilisait l'adresse IP de l'interface physique. il y a 12 minutes, bruno78 a dit : @.Shad. je n'ai pas eu besoin de passer le container en mode "privileged". par contre oui, pour les users, je ne sais pas quelle patouille il me met !! il a basculé les droits du repertoire ./jeedom en introduisant un groupe "33" qui vient de nulle part. En fait si, le groupe 33 est celui du user www-data sur le docker jeedom .... et ensuite DSM me refusait l’édition des fichiers. Il fallait passer en direct par putty ! Merci pour les infos pfsense et autres .... je vais regarder en détail. Ok pour le mode privileged ! Le jour où j'emménage dans une maison et que je me lance dans l'IoT je saurai 😛 La plupart des images ne sont pas prévus pour fonctionner avec des systèmes comme DSM qui se réserve les UID jusqu'à 1025 inclus. Sur une distrib linux classique, l'UID/GID de l'utilisateur par défaut c'est 1000/1000. Certains images comme celles de Linuxserver et d'autres introduisent le concept de PUID/PGID en variables d'environnement, cela permet de mapper l'utilisateur à l'intérieur du conteneur avec celui correspondant aux deux variables spécifiées sur l'hôte. Ça règle la plupart des problèmes sur un Synology. Sans ses variables, l'utilisateur du conteneur est aussi propriétaire des fichiers sur l'hôte. Si l'utilisateur existe sur le Synology, alors tu ne verras pas les nombres mais le nom et le groupe, ce n'est pas le cas ici. Pour régler le problème, tu peux tester de chmod un des fichiers appartenant au groupe 33, ça va faire péter les ACL de la surcouche DSM (tu verras dr-xr-xr-x et plus dr-xr-xr-x+, signifiant que les ACL ne s'appliquent plus et que les permissions UNIX reprennent la main) et voir si tu sais manipuler le fichier depuis DSM avec un autre utilisateur, il faut s'assurer que tes permissions sont ok du coup, car dr-xr-xr-x tu n'as aucun droit d'écriture... 🙂 Modifié le 28 mars 2020 par .Shad. 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
Didier3L Posté(e) le 28 mars 2020 Partager Posté(e) le 28 mars 2020 (modifié) Merci @shad tu viens de me faire penser à un truc 192.168.1.10 devient 192.168.241 Donc il faut mettre 192.168.1.241 dans la première page de configuration dans le champ Database Hostname voila le résultat 😀 💯 Modifié le 28 mars 2020 par Didier3L 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
bruno78 Posté(e) le 28 mars 2020 Partager Posté(e) le 28 mars 2020 Bonjour @Didier3L peux-tu stp expliciter comment tu est arrivé là ? J'en conclus que la connexion à la BDD est OK ? à quoi correspond le nom de station 8e7b53c792cc ? de même pour resolv.conf, tu es revenu à la config d'origine ? Enfin je suis surpris de voir Mémoire disponible=0% De mon côté pour la santé de Jeedom : 0 Citer Lien vers le commentaire Partager sur d’autres sites More sharing options...
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.