Synology Iventoy en Docker

Bonjour,

Si tu le créer via container manager ton fichier devrait ressemblait a cela :

il te faut creer un dossier iventory et 3 sous dossier iso, data et log


YAML:
---
version: '3.9'
services:
  iventoy:
    image: ziggyds/iventoy:latest
    container_name: iventoy
    restart: always
    privileged: true #must be true
    ports:
      - 26000:26000
      - 16000:16000
      - 10809:10809
      - 67:67
      - 69:69
    volumes:
      -/volume1/docker/iventoy/iso:/app/iso
      -/volume1/docker/iventoy/data:/app/data
      - /volume1/docker/iventoy/log:/app/log
    environment:
      - AUTO_START_PXE=true # optional, true by default

volumes:
  iso:
    external: true
  config:
    external: true
 
Super et merci beaucoup !
J'ai réussi à faire fonctionner correctement sur le docker, maintenant mon problème est de savoir comment me connecter à l'interface graphique d'administration.
Lorsque je mets l'adresse IP de mon NAS x.x.x.x:26000, rien ne se passe !?

1.png2.png
 
This does not work with rootless Docker. The container must be run as root.

Cela ne fonctionne pas avec Docker sans racine. Le conteneur doit être exécuté en tant que root.

par contre, je ne sais pas comment démarrer un container en mode root
 
Je pense que c'est via la ligne

privileged: true #must be true


Étrange, selon la documentation ça devrait fonctionner.

Regarde si ton docker a bien une adresse ip.


Pas sur que si on met ce genre de ligne, cela nous passe en root, ça mettrait un bon coup à la sécurité de nos nas. Peut être installer le conteiner et le lancer en ssh, après avoir fait un sudo -I ?
 
  • J'aime
Réactions: Vista1967
Pour l'instant, je suis bloqué et je ne peux rien faire tant que je ne suis pas sûr de la solution.
Je ne suis pas un grand expert et je préfère attendre un tuto clair et sûr :)
 
Si tu n'y arrive pas en docker, tu as déjà essayer sur une machine virtuelle ?

Je vois que tu as 2 NAS compatible avec synology virtual machine manager.
 
Je ne l'ai pas essayé, j'ai oublié cette piste :)
Pour tester, j'ai besoin de la version ISO d'Iventoy ?
 
Malheureusement, je n'ai encore rien réussi, je ne trouve pas non plus de tutoriel nulle part sur la façon de le faire :(
 
Bonjour , il faut télécharger l'archive iventoy et extraire les fichiers iventoy.dat et mac.db et les placer dans le dossier data mappé du conteneur iventoy. Sinon l'interface web de iventoy ne se montreras pas, sans ces fichiers . Pour le réseau, tu devras faire crée un macvlan , pq certains ports sont déjà utilisé par le nas Synology, un peu comme les ports 443 et 80 .
 
pour créer un mavlan, tu as deux choix soient en ligne de commande ou avec l'interface de portainer.

En ligne de commande:

docker network create \
-d macvlan \
--subnet=192.168.1.0/24 \
--ip-range=192.168.1.240/29 \
--gateway=192.168.1.1 \
-o parent=ovs_eth0 \
pxe

description de chaque variables:


docker network create \ Commande docker pour créer un réseau
-d macvlan \ Utilisation du driver macvlan de Docker
–subnet=192.168.1.0/24 \ On utilise notre réseau existant
–ip-range=192.168.1.240/29 \ On attribue une plage d’adresse IP de 192.168.1.240 à 192.168.1.247
–gateway=192.168.1.1 \ On utilise le réseau de notre box
-o parent=ovs_ \ On le jointe au nom du réseau du NAS ( ici: pour les synology, c'est soit ovs_eth0 ou ovs_eth1, en fonction du modèle)
pour verifier la bonne chose a mettre: voici la commande a taper dans le terminal : ifconfig |grep ovs

pxe On donne un nom à notre réseau mymacvlan


version: '3.9'
services:
iventoy:
# image: garybowers/iventoy:latest
image: ziggyds/iventoy:latest
container_name: iventoy
networks:
pxe:
ipv4_address: 192.168.4.30
hostname: iventoy
restart: always
privileged: true
ports:
- 26000:26000
- 16000:16000
- 10809:10809
- 67:67/udp
- 69:69/udp
volumes:
- /volume1/isos:/app/iso
- /volume1/docker/iventoy/config:/app/data
- /volume1/docker/iventoy/log:/app/log
environment:
- AUTO_START_PXE=true # optional, true by default


networks:
pxe:
external: true
default:
driver: macvlan



Comme mon réseau est configuré en 192.168.4. j'ai fixé l'ip dans le docker compose et je me suis relié au réseau pxe .
Sur iventoy, il y a trois type de serveurs dhcp ; interne, externe, externe dans un vlan = internal,external, external_net.
 
@Vista1967



Bonjour.

Je t'ai vu chercher même ailleurs une réponse à tes interrogations.
Depuis, je n'ai cessé de chercher une solution de mon côté.

Pour mes tests un Synology DS1019+

1) CREATION DE L'ENVIRONNEMENT

J'ai créé un dossier partagé avec le nom iventoy
J'ai téléchargé la version gratuite linux : iventoy-1.0.20-linux-free.tar.gz à cette page : https://github.com/ventoy/PXE/releases
J'ai décompressé le fichier iventoy-1.0.20-linux-free.tar.gz et j'ai obtenu les dossiers et fichiers suivants :

Voir la pièce jointe 12056

J'ai copié ces fichiers-dossiers sous le dossier partagé iventoy sur le nas :


Iventoy_Liste_Fichiers_Sur_Nas.jpg

dans le dossier "iso", on met les fichiers isos sur lequels on veut démarrer (bien sûr sous format ISO et non décompressés).
J'ai modifié le script iventoy.sh :
J'ai mis en commentaire la 3ème ligne comme ceci : #PROJ_DIR=$PWD
Et j'ai mis à sa place le dossier réel : PROJ_DIR=/volume1/iventoy
=====================================================================================

Bash:
#! /bin/bash


PROC_ENV="env IVENTOY_API_ALL=1"

#PROJ_DIR=$PWD

PROJ_DIR=/volume1/iventoy

PROJ_EXEC=$PROJ_DIR/lib/iventoy

PROJ_PID=/var/run/iventoy.pid


uid=$(id -u)

if [ $uid -ne 0 ]; then

    echo "Please use sudo or run the script as root."

    exit 1

fi


if [ "$1" = '-A' ]; then

    shift

fi


if [ "$1" = '-R' ]; then

    shift

    PROC_ENV="$PROC_ENV IVENTOY_AUTO_RUN=1"

fi



if echo $1 | grep -P -q '^(start|stop|status)$'; then

    :

else

    echo -e "\nUsage: $0 { start | stop | status }\n"

    exit 1

fi


iventoy_get_running_pid() {

    local PID

    local FILE

 

    if [ -f $PROJ_PID ]; then

        if grep -q '[0-9]' $PROJ_PID; then

            PID=$(cat $PROJ_PID)

            if [ -e /proc/$PID/exe ]; then

                FILE=$(readlink -f /proc/$PID/exe)

                if echo $FILE | grep -q '/iventoy$'; then

                    echo $PID

                    return

                fi

            fi

        fi

    fi

 

    echo 0

}



start() {

    local PID

    local RETVAL

 

    PID=$(iventoy_get_running_pid)

    if [ $PID -ne 0 ]; then

        echo "[ERROR] iventoy is already running. PID=$PID"

        exit 1

    fi


    cd $PROJ_DIR

    $PROC_ENV $PROJ_EXEC

    RETVAL=$?

 

    if [ $RETVAL -eq 0 ]; then

        PID=$(iventoy_get_running_pid)

        echo "iventoy start SUCCESS PID=$PID"

        echo ""

        echo "Please open your browser and visit http://127.0.0.1:26000 or http://x.x.x.x:26000 (x.x.x.x is any valid IP address)"   

        echo ""

    else

        echo "iventoy start FAILED"

    fi

}


stop() {

    local PID

    local RETVAL

 

    PID=$(iventoy_get_running_pid)

    if [ $PID -eq 0 ]; then

        echo "[ERROR] iventoy is not running"

        exit 1

    fi

 

    kill -15 $PID

}


status() {

    local PID


    PID=$(iventoy_get_running_pid)

    if [ $PID -ne 0 ]; then

        echo "iventoy is running, PID=$PID"

        echo ""

    else

        echo "iventoy is not running."

    fi

}


case "$1" in

  start)

        start

        ;;

  stop)

        stop

        ;;

  status)

        status

        ;;

  *)

        echo -e "\nUsage: $0 { start | stop | status }\n"

        exit 2

esac


exit $?

===================================================================================================

2) CREATION D'UNE TACHE QUI LANCE LE SCRIPT AU DEMARRAGE DU NAS

Iventoy_Tache.jpg

2) EXECUTION DE TACHE MANUELLEMENT POUR LE TEST

Clic droit de la souris sur la le nom de la tâche dans la liste des tâche et exécuter.
Au dessus de la liste des tâches, on clique sur "Action" puis on clique sur Afficher le résultat qui devrait être comme suit :

Iventoy_Resultat_Tache.jpg

3) Comme indiqué dans le message du résultat, mettre l'adresse du nas avec le port 26000 pour le paramétrage de iventoy

Dans mon cas, je mets 192.168.1.19:26000 et je me retrouve avec la page suivante :

C'est la page Boot Information

Iventoy_Params_1.jpg


Dans IP Pool (begin) : mettre l'adresse IP de début pour l'attribution de l'adresse IP en DHCP
Dans IP Pool (end) : mettre l'IP de fin.
On peut laisser ces plages si ça ne gêne pas d'autres services.

Dans la page suivante, il y a la configuration du réseau dont le mode de DHCP.
Moi, j'ai choisi "internal" pour laisser iventoy le gérer.


Iventoy_Params_2.jpg

4) On va sur la 1ère page et on lance le processus

Iventoy_Demarrage.jpg


On prend un PC pour démarrer en Réseau.
J'ai testé en mode "BIOS" et en mode "UEFI" et j'ai pu installer windows 10, x64.

IMG_20240505_193214.jpg

IMG_20240505_193647.jpg

je n'ai mis que les photos du début du démarrage.
Mais j'ai bien été jusqu'au bout de l'installation de ce windows 10.

================================================================================================
Ajouté après un peu de recherches et de tests.

Une fois que les tests et les réglages sont effectués et pour automatiser le processus, donc sans passer par l'étape où il faut cliquer sur la flèche verte de la 1ère page :

Aller sur la tâche créée et modifier la commande en rajoutant le paramètre -R :

/volume1/iventoy/iventoy.sh start

/volume1/iventoy/iventoy.sh
-R start

================================================================================================

J'espère que j'ai été assez clair dans mes explications

Cordialement.
 
Dernière édition:
  • J'aime
Réactions: Vista1967
@leperdu

Merci beaucoup pour vos efforts pour aider, c'est très gentil de votre part !!!
Dès que j’aurai le temps, j’essaierai de tout refaire depuis le début. Je ne suis pas un grand expert en informatique, mais vous avez tout bien expliqué et je ne pense pas avoir de problèmes pour y parvenir, et cela aidera certainement les autres membres du forum qui recherchent la même solution.
 
Bonjour ,
@leperdu : pourrais tu reposer ton code du script en utilisant les balises de code du forum ?
Merci d’avance 😊
 
Bonjour.
Excuse-moi @MilesTEG, je ne connaissais pas ce protocole.
@Vista1967, j'ai commencé par des commandes en ligne après m'être connecté en ssh sur le nas. Mais sans conviction.
Je suis très heureux de contribuer à l'animation de ce site d'où j'ai beaucoup appris.
Cordialement.