Réinstallation d’OMV7 et Docker après perte du serveur

Mauvaise surprise la semaine dernière : mon serveur OMV ne démarre plus. Impossible d’y accéder donc, même après un arrêt électrique. Le boot du système apparemment ne va pas très loin, je n’entends même pas le HD se mettre en route. Pas de réseau donc, et aucun moyen d’intervenir pour investiguer le problème. 🙁

J’ai vérifié l’intégrité (scandisk) de la sdcard sur le PC : aucune erreur de détectée, réessayé un démarrage, rien à faire. À ce stade, j’étais un peu en panne d’inspiration pour dépanner le système… Je ne sais pas ce qui s’est passé, j’avais reçu un mail me demandant de redémarrer après une mise à jour : manifestement celle-ci s’est mal passée… sans doute aurais-je du regarder les logs avant de lancer ce redémarrage, mais bon, c’est plutôt courant comme opération, alors…

Ma dernière sauvegarde datait d’environ un an, j’étais encore en OMV5 à l’époque ! j’ai pu démarre dessus, et pensé à refaire la mise à jour vers OMV6 puis OMV7, mais j’ai eu de beaux messages d’erreur que je n’ai pas cherché à comprendre (OMV5 c’est vieux maintenant), et je suis vite parti sur l’idée de refaire une installation tout fraîche d’OMV7.

L’Odroid-HC2 est plutôt bien conçu : une sdcard pour le système (soit Armbian+OMV) et un bon vieux HD 3,5″ que l’on vient connecter directement sur la carte. Toutes mes données, y compris Docker, sont installées sur le HD, je n’ai donc qu’à installer OMV7 et recréer les liens vers le HD.

L’Odroid-HC2 : une belle conception !

Tout s’est passé assez facilement, revenir à un système opérationnel a finalement été assez rapide et sans aucune perte de données. 😎

Voyons voir tout ça : je ne reprends pas une installation d’OMV en détail (déjà fait), mais les seulement étapes importantes de cette réinstallation.

Le système

Malgré que mon Odroid-HC2 se fasse un peu vieux maintenant, et surtout soit une machine x32, j’ai pu retrouver une image armbian disponible sur cette page : c’est la même image que pour le modèle XU4.

Il faut télécharger l’image, la dézipper, puis copier l’image sur la sd-card, puis on démarre dessus. Ensuite, on se connecte en SSH avec le compte root(mdp : 1234), rien de très compliqué. On peut ensuite aller optimiser un peu la configuration pour les modèles HC (1 ou 2) en lançant l’outil armbian-config, choisir Système puis Kernel, et enfin « Select Odroid board configuration » où l’on pourra sélectionne la série « HC » :

l’outil armbian-config pour optimiser la configuration selon le modèle de carte.

OMV 7

Ensuite on installe OMV7 en suivant la doc , ce qui se résume aux commandes suivantes :

# apt update
# apt upgrade
# wget -O - https://github.com/OpenMediaVault-Plugin-Developers/installScript/raw/master/install | bash

Cela prend un peu de temps (30 min), puis le système redémarre. Voilà, OMV est installé, on peut se logguer via l’interface web.

Quand on a déjà installé OMV une fois, le reste est assez simple, sinon on suit la doc. En gros, on change, le port 80 de l’interface, puis on va dans Stockage créer les dossiers partagés pour les services Docker. Comme tout est déjà existant sur mon HD, il suffit de recréer les liens.

Faire de même pour tous les dossiers « Docker » selon les containers installés

La seule différence que j’ai noté c’est le chemin absolu vers mes dossiers sur le HD n’est plus le même : je suis passé de :
/srv/dev-disk-by-label-DATA
à
/srv/dev-disk-by-uuid-ecc74bd0-fd45-4e9b-a223-60dbfe940601

Je vais devoir modifier mes fichiers docker compose en conséquence (voir ci-dessous).

Passons à l’installation de Docker, comme indiqué dans la doc. J’installe d’abord l’extension openmediavault-compose à partir du menu Système – Extensions :

Ensuite je vais dans Services – Compose – Parameters : il s’agit essentiellement de définir le dossier AppData comme défini dans les dossiers partagés précédemment :

J’en profite aussi pour déplacer Docker sur le HD :

Et je fais une réinstallation afin d’être sûr que tout est à jour grâce au bouton en bas de page :

Dockge

Maintenant que mon système OMV est opérationnel, il ne me reste plus qu’à réinstaller mes containers Docker. J’utilise depuis quelque temps Dockge pour les gérer, c’est vraiment très bien fait et beaucoup plus efficace que les interfaces proposées par OMV. J’installe donc ce container en premier, en suivant l’article que j’avais fait : https://pled.fr/dockge-gestion-des-container-docker/

Une fois démarré, Docke voit bien mes containers Dockers (Nextcloud, Plex, Qbittorrent) mais affiche « This stack is not managed by Dockge ».

C’est normal, je dois les redéfinir comme expliqué dans l’article. Heureusement, j’ai gardé les fichiers compose.yaml de chacun de mes services, je modifie donc toutes les références à /srv/dev-disk-by-label-DATA et je les remplace par /srv/dev-disk-by-uuid-ecc74bd0-fd45-4e9b-a223-60dbfe940601.

Tout cela prend très peu de temps à remettre en place, je redémarre tous mes services, et voilà ! tout fonctionne comme auparavant ! 😎

Swag Dashboard

J’en ai profité pour réinstaller Swag Dashboard en suivant cet article. C’est extrêmement simple, je modifie la stack de Nextcloud, section swag, en y ajoutant 2 lignes :
– DOCKER_MODS=linuxserver/mods:swag-dashboard dans environment
– 81:81dans ports.
Ce qui donne pour la partie Swag :

swag:
    image: linuxserver/swag
    container_name: swag
    cap_add:
      - NET_ADMIN
    environment:
      - PUID=995
      - PGID=100
      - TZ=Europe/Paris
      - URL=xxx.pled.fr
      - SUBDOMAINS=nextcloud
      - DOCKER_MODS=linuxserver/mods:swag-dashboard
      - VALIDATION=http
      - EMAIL=xxx@pled.fr
    volumes:
      - /srv/dev-disk-by-uuid-ecc74bd0-fd45-4e9b-a223-60dbfe940601/AppData/swag:/config
    ports:
      - 443:443
      - 80:80
      - 81:81
    restart: unless-stopped

Puis grâce à Dockge un arrêt suivi d’un redémarrage suffit à prendre en compte le nouveau fichier et créer un nouveau container.

J’ai désormais un dashboard pour Swag, ce qui n’est pas sans intérêt :

Conclusion

Tout remettre en état s’est finalement révélé assez simple et rapide. L’installation de l’image armbian et d’OMV7 est tout de même simplissime. L’expérience de la première installation s’est révélée utile pour le paramétrage d’OMV, et l’utilisation de Dockge simplifie beaucoup la gestion des containers Docker. Tout cela est globalement positif.

Évidemment, si j’avais eu une sauvegarde récente, tout aurait été encore plus simple. Lorsque je suis passé à OMV7 (en mars 2024), j’aurais du faire une sauvegarde de la sdcard, j’ai vraiment m… sur ce coup là. D’ailleurs, j’en fais une immédiatement après cette installation, avec l’outil Disques de Gnome :

Si j’avais perdu le HD, la situation serait sans doute plus compliquée, mais gérable avec la sauvegarde de mes containers plus celles de la médiathèque Plex avec mes sauvegardes rsync.

J’ai tout de même vu que je pourrais ajouter à ces sauvegardes rsync un ou deux dossiers comme le home de mon utilisateur sur mon NAS, où traînent quelques scripts utiles, ou encore les dossiers des fichiers compose.yaml de Dockge.

Mais bon, globalement, une bonne expérience qui se termine bien.

Un dernier petit screenshot :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *