[Tuto] ♻ Installation de Jeedom sur Synology / docker / debian buster / réseau macvlan

Voici ma tâche planifiée.
En 7.2, ces drivers suffisent pour exploiter mes clés Conbee2 et aeotec Zwave+

bash 
insmod /lib/modules/usbserial.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/cp210x.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/ch341.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/pl2303.ko > /dev/null 2>&1
insmod /volume1/NAS/usb/ti_usb_3410_5052.ko > /dev/null 2>&1
modprobe usbserial
modprobe cdc-acm

actuellement pour que les drivers fonctionnent je fais ceci en tache planifiée sous DSM7.1 :

#!/bin/sh
sleep 30
sudo insmod /lib/modules/usbserial.ko
sudo insmod /lib/modules/ch341.ko
sudo insmod /lib/modules/cp210x.ko
sudo insmod /lib/modules/pl2303.ko
sudo insmod /lib/modules/ti_usb_3410_5052.ko
modprobe usbserial
modprobe ftdi_sio
modprobe cdc-acm

On n’a plus besoin des commandes « insmod » et « modprobe » pour DSM 7.2 ?

merci

Bonjour,

Je rencontre un problème avec mon RS422+ sous DSM 7.2.

Au démarrage du conteneur j’ai l’erreur suivante :

« […] The apache2 instance did not start within 20 seconds. Please read the log files to discover problems …e[?25le7e[1G[e[33mwarne[39;49me8e[?12le[?25h e[33m(warning).e[39;49m »

Mon macvlan

docker network create \
-d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.240/29 \
--gateway=192.168.1.1 \
--aux-address="host_bridge=192.168.1.241" \
-o parent=bond0 \
mymacvlan

Voici mon docker compose :

version: '2'

networks:
  default:
    external:
      name: mymacvlan

services:
  jeedom:
    container_name: jeedom-v4
    image: jeedom/jeedom:4.3-buster
    privileged: false
    pid: "host"
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
      - NET_ADMIN
    tty: true
    hostname: jeedom
    mac_address: a0:ca:ab:cd:ef:04
    networks:
      default:
        ipv4_address: 192.168.1.243
    volumes:
      - "/volume1/docker/jeedom-macvlan/html:/var/www/html"
      - "/volume1/docker/jeedom-macvlan/db:/var/lib/mysql"
    devices:
      - "/dev/ttyACM0:/dev/ttyACM0"   # Zwave / Aeotec ACM0
      - "/dev/net/tun"
    restart: unless-stopped
    environment:
      - TZ=Europe/Paris
      - PUID=1026
      - PGID=101
      - SYSTEMD_IGNORE_CHROOT=yes
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin

avez-vous une idée d’ou ça peut venir ?

merci

Edit :

Même dans la version simple il faudrait rajouter le fait de modifier dans /root/init.sh a l’aide du terminal virtuel de l’interface conteneur Synology la ligne après echo ‹ Start apache2 › en :

sudo apachectl -f apache2.conf

:grinning:

Merci pour le louable effort du tuto, sincèrement. Malheureusement, pour ma part, mon conteneur jeedom n’est pas fonctionnel. Dès le départ il ne sait pas résoudre le lien github pour récupérer les sources, de là assez logiquement tout part en carafe puisque apache pointe vers un répertoire qui n’existe pas, bref.
Le conteneur tourne, je me connecte dessus depuis portainer, et en effet il ne parvient à ping rien du tout. Je suppose que la création du docker macvlan n’est pas bien fait chez moi ?

docker network create \
-d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.240/29 \
--gateway=192.168.1.1 \
--aux-address="host_bridge=192.168.1.241" \
-o parent=ovs_eth0 \
mymacvlan

J’ai rapidement intuité pour la gateway et le -o parent car j’ai des connaissances de base en linux et réseau, mais je bloque. je n’ai ouvert que bien plus tard le second tuto qui explique que oui, il est possible de mettre une gateway en 1.1 plutot qu’en 1.254 (le seul commentaire « on utilise le réseau de notre box » n’aide pas vraiment, pourquoi ne pas plutot indiquer de mettre la config réseau iso n’importe quel ordinateur du réseau local avec la meme passerelle ?)
Merci pour toute l’aide que vous pourrez apporter.

Je suis tombé sur ce post intéressant : Using Docker macvlan networks :: blog.oddbit.com
A priori par défaut avec un réseau macvlan, par défaut l’hote ne peut joindre ses containers et vice-versa. Etant donné que mon docker jeedom tourne sous le conteneur dans mon syno, qui est aussi le serveur dns par défaut… ça peut poser souci je pense :slight_smile: personne n’a eu le souci ?

Bonjour,

C’est indiqué dans les tutos.
C’est pour cela que l’on réserve une adresse IP pour contourner cela.

1 « J'aime »

Mais je n’ai pas besoin de BLEA moi, et en attendant mon conteneur jeedom ne fonctionne pas… Alors il faut dans tous les cas faire ce routage IP ? je n’avais même pas ouvert ce dernier tuto car je n’étais a priori pas concerné… Finalement il faut le faire dans tous les cas si je comprends bien ?
En plus le tuto oriente la création d’un conteneur sur l’adresse 192.168.1.242, et le conteneur est bien injoignable sur cette IP, donc créer un routage IP tel que tu le proposes ne résoudra pas mon problème.
Bon, je dois sûrement mal faire quelque chose, mais je ne vois pas quoi pour l’instant.

Pour Info j’ai suivi l’étale de la création de route du tuto « antenne BLEA » même si je n’ai pas cette antenne… Cela n’a rien changé.
Donc en l’état, même en suivant les tutos à la lettre cela n’a pas fonctionné. Est-il possible que depuis 2020 les commandes docker aient changé au point que le tuto soit obsolète ?

Bonjour,

Le mode macvlan est inutile pour Jeedom core, il le faut juste pour certains plugins (dont Blea) mais si tu n’en a pas besoin, oublie le macvlan :wink:
https://doc.jeedom.com/fr_FR/installation/synology

Bonjour,

Commence par créer un conteneur en mode HOST comme le tuto sur jeedom.

Tu verras par la suite en fonction de tes plugin si il te faudra passer par un réseau macvlan

Ok, mais c’est dommage, je pense que je suis pas loin, j’ai bien mon docker qui tourne sur la bonne IP; le point bloquant est qu’il ne résout pas les chemins DNS dont il ne parvient pas à installer jeedom depuis github.
Voici le step by step, je suis preneur si un expert à 10 min à consacrer à la review de mon code :

le réseau macvlan :

docker network create \
-d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.240/29 \
--gateway=192.168.1.1 \
--aux-address="host_bridge=192.168.1.241" \
-o parent=ovs_eth0 \
mymacvlan

Le routage :

sudo -i
ip link add macvlan-br0 link ovs_eth0 type macvlan mode bridge
ip addr add 192.168.1.241/32 dev macvlan-br0
ip link set dev macvlan-br0 address 0:1:2:3:4:5
ip link set macvlan-br0 up
ip route add 192.168.1.240/29 dev macvlan-br0

(Je m’interroge sur l’adresse MAC renseignée sur le tuto 0:1:2:3:4:5 mais je ne sais pas quelle adresse MAC je suis sensé mettre à ce moment).

Et enfin le docker compose :

version: '3'

networks:
  default:
    name: mymacvlan
    external: true

services:
  mariadb: 
    image: "mariadb:latest"
    environment:
      MYSQL_ROOT_PASSWORD: "rootpassword"
      MYSQL_DATABASE: jeedom
      MYSQL_USER: jeedom
      MYSQL_PASSWORD: "XXXXXYYYYYZZZZZZZ"
    dns:
      -"1.1.1.1"
      -"8.8.8.8"    
    volumes: 
      - "/volume2/docker/jeedom-macvlan/db:/var/lib/mysql"
    ports: 
      - "3308:3306"

  jeedom:
    container_name: jeedom-v4-macvlan
#   build : ./
    image: jeedom/jeedom:4.4-buster
    privileged: false
    pid: "host"
    cap_add:
      - SYS_PTRACE
      - SYS_ADMIN
    tty: true
    hostname: jeedom
    dns:
      -"1.1.1.1"
      -"8.8.8.8"
    mac_address: a0:ca:ab:cd:ef:04
    ports: 
      - "9080:80"
    networks:
      default:
        ipv4_address: 192.168.1.242
    volumes:
      - "/volume2/docker/jeedom-macvlan/html:/var/www/html"
      
#    devices:
      #- "/dev/ttyUSB0:/dev/ttyUSB0"   # MyHome / cp210x
      #- "/dev/ttyUSB1:/dev/ttyUSB1"   # RFLink / ch341-uart
      #- "/dev/ttyACM0:/dev/ttyACM0"   # Zwave / ACM0
    restart: unless-stopped
    depends_on:
      - mariadb
    environment:
      - TZ=Europe/Paris
      - PUID=1026
      - PGID=101
      - SYSTEMD_IGNORE_CHROOT=yes
      - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
      - ROOT_PASSWORD=password
      - APACHE_PORT=9080
      - SSH_PORT=9022
      - MODE_HOST=1

Je crains de louper un truc sur les ports ou les mdp de la BDD pour que Jeedom tape bien dessus.
Les logs du conteneur jeedom :

Start init

Start jeedom installation

--2024-01-27 19:33:59--  https://raw.githubusercontent.com/jeedom/core/beta/install/install.sh

Resolving raw.githubusercontent.com (raw.githubusercontent.com)... failed: Temporary failure in name resolution.

wget: unable to resolve host address 'raw.githubusercontent.com'

Installing MariaDB/MySQL system tables in '/var/lib/mysql/' ...

OK



To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system





PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !

To do so, start the server, then issue the following command:



'/usr//bin/mysql_secure_installation'



which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.



See the MariaDB Knowledgebase at http://mariadb.com/kb



You can start the MariaDB daemon with:

cd '/usr/' ; /usr//bin/mysqld_safe --datadir='/var/lib/mysql/'



You can test the MariaDB daemon with mysql-test-run.pl

cd '/usr//mysql-test' ; perl mysql-test-run.pl



Please report any problems at http://mariadb.org/jira



The latest information about MariaDB is available at http://mariadb.org/.



Consider joining MariaDB's strong and vibrant community:

https://mariadb.org/get-involved/



[....] Stopping MariaDB database server: mysqld[ ok .

[....] Starting MariaDB database server: mysqld[ ok .

cp: cannot stat '/var/www/html/core/config/common.config.sample.php': No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

sed: can't read /var/www/html/core/config/common.config.php: No such file or directory

Start atd

[....] Stopping deferred execution scheduler: atd[ ok .

[....] Starting deferred execution scheduler: atd[ ok .

Starting mariadb

[....] Stopping MariaDB database server: mysqld[ ok .

[....] Starting MariaDB database server: mysqld[ ok .

All init complete

Start apache2

[....] Starting Apache httpd web server: apache2[FAIL failed!

[....] The apache2 configtest failed. ...[warn (warning).

Output of config test was:

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 192.168.1.242. Set the 'ServerName' directive globally to suppress this message

(2)No such file or directory: AH02291: Cannot access directory '/var/www/html/log/' for main error log

AH00014: Configuration check failed

Action 'configtest' failed.

The Apache error log may have more information.

Bonjour,

Le fichier docker compose n’est pas conforme au tutoriel.
Maria DB n’a rien à y faire.
DNS non plus

Le routage Maclan n’est pas nécessaire pour l’instant tant que Jeedom n’a pas démarré

Tu as raison, j’ai fait un mix avec un autre tuto que j’avais suivi avant que jeedom ne sorte le sien pour synology, et qui séparait les deux services (BDD / jeedom).
J’ai ajouté la partie dns car mon conteneur ne parvient pas à joindre github - malheureusement cela n’a rien changé, à mon sens le souci ne vient pas de là, mais ok, j’entends.
Je vais repartir sur le tuto officiel jeedom comme le suggère @pifou et en suivant je re testerai ta solution sans découper les services, car ça m’intéresse tout de même d’avoir une IP dédiée au conteneur.