J’avais donc un NAS maison, à base de hp proliant microserver gen8, sur lequel je faisais tourner Proxmox avec par dessus OMC et Plex. Depuis 6 mois, j’avais ajouté pour test une VM Home Assistant. Forcément, je suis conquis, et j’abandonne donc mon domogik (qui tournait sur un rpi). Au passage j’abandonne aussi toutes mes bidouilles domotique à base d’arduino pour du zigbee…. A un moment faut des choses plug and play :-). Pour revenir sur le proliant, depuis l’ajout de la VM Home Assitant, j’avais régulièrement la VM Plex qui tombait, et vice et versa… Bref avec son Intel Celeron G1610T Dual Core cadencé à 2,3Ghz, on est un peu juste pour tout ça.
J’ai donc suivi le mouvement en cours en ce moment dans le monde de la domotique/HomeLab. L’achat d’un nuc N100. De mon côté je suis parti sur ce BMAX. Pourquoi ? Le N100 est préférable au N95, plus performant, notamment au niveau video ce qui me permettra de faire tourner frigate à côté de Home Assistant pour la vidéo surveillance. De plus je me suis dis qu’il y aurait surement un truc à faire pour le transcoding de Plex avec ce type de serveur… j’ai donc migré mes VMs HA et Plex dessus. Le N100 étant très peu énergivore, ca va me permettre à terme de couper plus souvent le HP Proliant, qui devient un simple NAS (media). Ce dernier est plus énergivore…. On passe donc sur un intel de 12ème génération avec 4 coeurs @ 3,4Ghz… tout en consommant moins :-).
V2.1: Ouverture vers l’extérieur
Afin de pouvoir relier mon echo dot (alexa) à home assitant, j’ai ouvert une porte de l’extérieur vers HA. J’ai opté pour la solution Nginx Proxy Manager (d’autres possibilités s’offraient à moi, je reviendrais dessus dans un prochain article). Je l’ai donc ajouté sur le NUC. Tout ce qui arrive de l’extérieur passe donc par lui.
A venir
Afin d’avoir une approche DevOps qui me tient à cœur (j’en ai déjà parlé dans mes différents tutos), je vais tenter d’automatiser plus les prochaines étapes. Des articles de vulgarisation vont donc arriver sur le blog.
Si vous avez installé « simplement » proxmox comme dans mon précédant article, vous de vez donc avoir une sérier d’erreur visible dans les logs, visible à chaque connexion :
Le détail de l’erreur nous montre qu’on n’est pas autorisé à contacter les repos « entreprise » de proxmox.
Si on va voir le détail de nos repos, on voit qu’on a 2 repos « entreprise » de défini. On voit aussi ce beau warning « The enterprise repository is enabled, but there is no active subscription!’ On a donc un repo entreprise pour pve itself, et aussi pour ceph.
Activation des mises à jour via des repos gratuits
Depuis l’écran des repositories, on va donc cliquer sur le bouton « Add » afin d’ajouter nos repos. Il faut prendre les repos sans abonnement « No-Subscription ».
Il s’agit du dépôt recommandé pour les tests et l’utilisation hors production. Ses paquets ne sont pas aussi lourdement testés et validés que le référentiel d’entreprise prêt pour la production. Vous n’avez pas besoin d’une clé d’abonnement pour accéder à ce référentiel.
Ne vous inquiétes pas, il y a tout de même un processus de validation sur les mises à jours présentes, du style: Test Interne -> No-Subscription -> Enterprise. Les repos sont donc stables. Proxmox se dédouane juste en cas de problème :-). (Après on peut très bien faire nos mises à jour en décalé pour éviter toute surprise)
Nos dépôts sont donc maintenant présent sur l’interface.
Désactiver les dépôts entreprise.
Sur chacun des dépôts entreprise, on clique dessus et on sélectionne désactivé. En effet, ils nous servent à rien et autant éviter l’erreur dans les logs.
Test de détection de mise à jour
En retournant dans le menu « Updates » on va faire un « Refresh » des paquets disponibles. On va bien voir apparaitre les mises à jours de Debian ET aussi celle de proxmox et ceph. Well done !
Article sous forme de note, de mon installation de plex sur debian 11. J’ai tenté d’être 100% ligne de commande dans l’optique de pouvoir automatiser en Ansible cette installation par la suite.
Voici les articles que j’ai suivi et qui m’ont dépanné lors de cette installation :
Puis la fin de la config de plex . Ici ca devient plus difficilement scriptable ? Il faut en effet se rendre sur un lien local pour relier le serveur à votre compte: http://ip:32400/web
Enfin on peut passer à l’installation du plugin WebTools. Dans l’UI Plex les plugins ne sont plus officiellement supportés, mais c’est seulement en surface. J’ai donc suivi ce tuto: https://github.com/ukdtom/WebTools.bundle/wiki/Install
A ce moment en vous rendant sur l’interface web de plex, au niveau des réglages de votre serveur plex, vous devez voir un logo WebTools en vous rendant dans la section Gérer > Extensions.
En cliquant sur la roue crantée, il est alors possible de configurer Webtools, comme indiqué ici.
Par défault, webtools est disponible sur le port 3340: http://ip:33400
Le crash d’un de mes disques de mon NAS m’a obligé à repenser un peu/beaucoup mon infra personnel. Et je suis tombé sur pas mal de posts qui m’ont donné envie d’appliquer un peu plus de sécurité sur mon infra perso (à l’image de ce que je pourrai faire professionnellement pour un client… c’est pas toujours le cordonnier qui doit être le plus ma chaussé !).
Bref point de départ, on va aller au plus simple en attendant l’arrivée progressive du Matos pour sécurisé les datas. Seul chose qu’on va donc mettre en place par rapport à avant : virtualisation d’OpenMediaVault + vérification périodique des disques durs. On va aborder le 1er point dans ce post. Alors pourquoi virtualiser OMV ? Car si ce dernier commence à déconner (c’était le cas de ma dernière install qui était plus très stable), c’est plus simple d’en réinstaller un en //. Plus simple d’avoir des backup de la vm de dispo aussi. Et enfin ca ma me permettre de mettre en place d’autres VM pour gérer plus proprement mon réseau… Et l’envie de découvrir Proxmox est grand aussi (professionnellement of course , je côtois plus VmWare….)
Installation de Proxmox
Pas grand chose à dire ici, la documentation officielle est assez clair sur le sujet. J’ai donc créer une clé usb bootable à partir de l’ISO officielle, voir Préparation du média d’installation. Ensuite j’ai répondu aux différentes questions de l’installation en restant simple : https://pve.proxmox.com/wiki/Installation.
Et voilà la chose est installée.
Ajout d’un user « simple »
L’utilisateur de départ est l’utilisateur root du système. On va donc prendre une bonne habitude de sécurité en ajoutant un user linux « normal » (sans droit sudo) et en ajoutant ensuite ce user sur proxmox. On va donc depuis la connexion ssh faire les commandes suivantes (tirés de la partie user management de la doc officielle)
Hormis la création du user linux (via adduser) tout le reste aurait pu également être réalisé par l’IHM de proxmox (j’ai pas envie de vous faire peur direct). C’est la force de proxmox d’avoir toutes les actions également scriptable.
Ajout du group dans Datacenter > Permissions > Groups
Ajout des droits au groupe depuis Datacenter > Permissions
Ajout du User au groupe depuos Datacenter > Permissions > Users
Retrait de la demande d’abonnement
Vous avez surement vu ce popup de demande de subscription à chaque fois que vous vous connectez à l’interface web. Il existe une petite astuce qui permet d’enlever ce popup. Merci à John pour le tuyau.
Depuis la cnx ssh, changez de répertoire: cd /usr/share/javascript/proxmox-widget-toolkit
Faire une copie du fichier que nous allons modifier: cp proxmoxlib.js proxmoxlib.js.bak
Editer le fichier: nano proxmoxlib.js
Trouver la ligne avec le code suivant (Ctrl+W dans nano et recherchez « No valid subscription »): Ext.Msg.show({ title: gettext('No valid subscription'),
Remplacer Ext.Msg.show par void void({ //Ext.Msg.show({ title: gettext('No valid subscription'),
Redémarre le service web de proxmox: systemctl restart pveproxy.service
Pour voir le résultat, n’oubliez pas de vider le cache de votre navigateur si besoin.
Déploiement d’OpenMediaVault
Récupération de l’image d’installation
On va télécharger la dernière version sur le site : OpenMediaVault.
Bien entendu au passage on va vérifier le checksum, ca mange pas de pain.
Ou en mode, je profite de l’outil que je viens d’installer, bref depuis l’ihm de proxmox (en gros proxmox va taper les commandes pour nous comme un grand). Ici on met donc les infos suivantes :
Checksum: on le copie/colle depuis le fichier https://sourceforge.net/projects/openmediavault/files/5.6.13/openmediavault_5.6.13-amd64.iso.sha256
Création de la VM
On clique donc sur le bouton « Create VM » (en haut à droite)
On va lui donner un petit nom depuis l’onglet General (on laisse les autres valeurs par défault, l’id est généré, et on a qu’un seul noeud…)
Dans l’onglet suivant « OS », on va sélectionner l’ISO ajouté un peu plus haut.
Dans l’onglet « System », on change rien:
Pour le disque dur, il sera localisé sur « local-lvm », et on va mettre la valeur minimale requise par OMV (si besoin on pourra toujours augmenter plus tard).
Point de vue CPU, là aussi OMV n’en réclame pas trop (il faudra voir à l’usage si plex suit par contre). On va donc laisser un seul coeur de CPU. Là aussi, si besoin, on repassera.
Même remarque pour la RAM. La minimum requis est de 1Go, mais plex on vaudra surement plus… On va partir sur 2 pour le moment.
On se termine avec l’onglet Network où on ne change rien, et on finit avec la confirmation finale où on relit toute notre configuration et on peut enfin appuyer sur « Finish » pour créer la VM.
Installation d’OpenMediaVault
Maintenant que la VM est prête (hormis la question stockage qu’on abordera plus bas), il est temp de cliquer sur start pour lancer notre VM et donc l’installation présente sur l’ISO. Il nous suffira donc de suivre simplement les différentes étapes de l’installation d’OMV en se rendant dans la Console (pour voir l’écran de la VM….)
Après le choix des langues qui se fait assez simplement, on nous demande le nom du host, je suis resté simple, et j’ai mis OMV (même nom donné à la VM plus haut).
Pour le nom du domaine, je vais laisser le .lan proposé.
Ensuite on arrive sur un écran nous demandant de créer un mot de passe pour l’utilisateur root. Cet utilisateur n’est pas utilisée pour l’interface web d’OMV, il est seulement utilisé pour accéder à la machine depuis la ligne de commande.
Aucune question sur le disque de destination, en effet pour le moment seul le disque principal de la VM (le disque OS) est visible par l’installation. On va s’occuper de ce point plus bas.
L’installation est donc en cours….
A la suite de ce 1er 100% atteint, on va vous poser quelques questions afin de configurer le gestionnaire de dépôt de paquet. Les choix par default sont normalement les bons.
Enfin on nous demande où on veut mettre le système de démarrage GRUB, dans mon cas, pas trop de choix, il y a qu’un seul disque, donc qu’une seule possibilité de proposée
On arrive ensuite enfin sur l’étape « Fin de l’installation », cela sent bon !
On peut profiter de ce message pour démonter l’ISO d’installation. Ce n’est pas obligatoire, en effet l’ordre du boot fait qu’on aurait tout de même démarrer sur le disque dur.
Pour démonter l’ISO, on se rend dans l’onglet Hardware de la VM, on sélectionne la ligne CD/DVD Drive (ide2), on clique alors sur le bouton EDIT.
On clique alors sur « Do not use any media » dans la boite de dialogue qui s’ouvre, et qu’on va refermer en appuyant sur « OK ».
Enfin n’oublions pas de retourner dans la console pour valider le redémarrage post installation.
A la fin du boot il peut être intéressant de récupérer l’adresse ip attribué à notre OMV. Comme on peut le voir, cette dernière n’est pas encore accessible depuis le « Summary » de la VM. « No Guest Agent configured ». On va remédier à ça un peu plus bas.
On va donc utiliser la bonne vieille méthode, on retourne sous la console, on se logue dans la console d’OMV avec le compte root crée plus haut, et on tape ip a :
Et donc…. on voit bien que le site d’OpenMediavault est disponible sur cet ip.
A ce stade avant toute chose, je vais faire une image à froid (vm éteinte). J’expliquerais dans un prochain article l’utilité de la chose. Ceci est réalisé en faisant un clic droit sur la VM, et en cliquant sur « Convert to template ». Ensuite on pourra recréer une VM depuis ce template (en mode Full Clone) pour continuer notre travail. En gros ce template me permet d’avoir une image de base d’une installation fraiche, disponible sans passer par tout le processus d’installation manuel (questions….). On voit bien que si on voulait automatiser tout ce process d’installation de mon infra, cette étape manuelle d’installation d’OMV présente un frein.
Installation de l’agent client
On l’avait vu un peu plus haut, l’ip de la vm n’était pas disponible depuis l’interface proxmox, car on avait un « No guest agent confgured ». On va remédier à ça en s’appuyant sur la documentation officielle: Qemu-guest-agent.
On va donc d’abord installer l’agent dans le système. On le fait donc depuis la console de la vm ou depuis un connexion ssh. La commande à taper est donc apt-get install qemu-gest-agent (on est sur une base debian).
Ensuite il nous suffit d’activer le lien avec cet agent depuis les options de la vm sous proxmox
On fait alors un shutdown de la VM (depuis sa ligne de commande) et on la redémarre….. et magie :
Le lien entre proxmox et l’agent est donc opérationnel. Cela permet notamment de faire des shutdown (depuis proxmox) plus propre et aussi de freezer le système de fichier lors de backup.
Ajout des disques durs (en mode brute)
Mon objectif est de rendre opérationnelle rapidement la chose avant surement de futur aménagement/migration. Bref j’ai donc fait le choix d’installer les disque dur media en mode pass through vers OMV. De cette manière ces diqques durs resteront exploitables sur d’autres machines (simple ext4). Le but à moyen terme sera de passer sur un montage ZFS avec 3 disques identiques. Bref rien envie de virtualiser quoi que ce soit pour le moment, seul OMV a besoin de gérer et accéder ses disques.
On va donc s’insiprer encore une fois de la documentation officielle. Cette fois-ci on va être obligé de passer par de le ligne de commande sur le serveur proxmox (via ssh ou le shell dispo depuis l’interface web).
Chaque disque va être configuré par son id, en effet son nommage de type devide (/dev/sda) peut changer ce qui nous ammènrait des ennuis…. Chaque id est disponible facilement via l’IHM de proxmox, au niveau du PVE > Disk.
Ces mêmes id sont retrouvables dans le file system au niveau du répertoire /dev/disk/by-id/. On retrouve d’ailleurs aussi via la commande ls -l les noms actuellement mis sur chacune des partitions. Cela peut nous aider aussi à retrouver qui est qui.
Example: je veux passer en pass-through mon Disque de 3To. On voit depuis Proxmox (1ère image) que son Serial est WD-WCAWZ2254019. Son /dev par id est donc /dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2254019. Pour ajouter le disque à notre VM on va donc taper : qqm set 101 -scsi1 /dev/disk/by-id/ata-WDC_WD30EZRX-00MMMB0_WD-WCAWZ2254019 où 101 est l’id de notre VM, scsci1 le numéro de port virtuel auquel le disque va être attaché sur la VM. Attention cette commande doit être tapée avec l’utilisateur root.
En regardant la partie hardware de la VM depuis l’IHM de proxmox, on voit que le disque dur a bien été ajouté.
Il faudra alors redémarrer la VM pour que OMV voit ce nouveau disque dur. Avant cela, je vais ajouter également les autres disques durs que je veux faire apparaitre en faisant bien attention à chaque fois d’incrémenter le port virtuel scsci.
On reboot la vm depuis l’ihm proxmox qui arrive à la faire proprement depuis qu’on a ajouté le guest client :-).
On peut donc se loguer depuis l’IHM d’OpenMediVault (pour rappel le login/pwd initial est admin/openmediavault). Au niveau du Stocakge>Disques, on voit bien mes 4 disques : le disque virtuel système (l’OS) de 4 Go et les 3 disques que j’ai définie en pass-through.
Au niveau des systèmes de fichiers, mes partitions ext4 existantes sont bien détectés. On voit qu’actuellement, seul la partition système est montée.
La configuration classique d’OMV va pour voir avoir lieu !