Vue lecture

Il y a de nouveaux articles disponibles, cliquez pour rafraîchir la page.
✇DomoPi

Mise à jour de Proxmox V6 vers Proxmox V7

Mise à jour de Proxmox V6 vers Proxmox V7

Voilà quelque mois maintenant que je suis passé de VMware ESXi à Proxmox V6. Depuis le mois de Juillet 2021, la version 7 est sortie, et c'est donc l'occasion de faire ma première grosse mise à jour et de vous en faire profiter.

Commençons par parcourir les principales nouveautés :

  • Debian passe de la version 10 "Buster" à la 11 "Bullseye", incluant Ceph Pacific en version 16.2 par défaut (au lieu de la 15.2),
  • Les moniteurs Ceph avec plusieurs réseaux publics peuvent être créés à l'aide de la CLI (ligne de commande), si les utilisateurs ont plusieurs liens configurés.
  • Support du Btrfs en tant que technologie de stockage, incluant un contrôle de l'intégrité du système de fichiers, une amélioration des performances, des fonctionnalités d'instantanés.
  • Le protocole OpenID Connect est intégré pour amener la possibilité d'utiliser une authentification unique (SSO).
  • Améliorations de l'interface utilisateur Web, avec notamment l'ajout du support du Markdown dans « Notes », ainsi qu'un nouveau panneau de gestion des référentiels APT.
  • Prise en charge des clés de sécurité (comme YubiKey) en tant que clés SSH, lors de la création de conteneurs ou de la préparation d'images cloud-init.
  • Conteneur : LXC 4.0 prend entièrement en charge les cgroups2, un mécanisme d'organisation hiérarchique des processus et d'allocation des ressources système.
  • Gestion des certificats : le plug-in autonome ACME prend désormais mieux en charge les environnements à double pile (IPv4 et IPv6) et ne dépend plus des adresses configurées pour déterminer son interface d'écoute.
  • Réseau : l'ifupdown2 moderne est l'outil de gestion de réseau par défaut pour les nouvelles installations utilisant l'ISO officiel Proxmox VE.

Vous trouverez ci-dessous le lien vers la documentation officielle de Proxmox pour mettre à jour Proxmox VE depuis la version 6 vers la 7, mais nous allons essayer de vous retranscrire et expliquer dans cet article les étapes indispensables.

Upgrade from 6.x to 7.0 - Proxmox VE
Mise à jour de Proxmox V6 vers Proxmox V7Proxmox VE
Mise à jour de Proxmox V6 vers Proxmox V7
Attention ! Avant de procéder à la mise à jour, la chose la plus importante est de réaliser une sauvegarde complète de votre système, incluant les machines virtuelles et conteneurs LXC.

Deux méthodes sont possibles pour faire cette mise à jour :

  • Réinstaller Proxmox VE en version 7, et restaurer la sauvegarde de la configuration ainsi que les machines virtuelles et conteneurs LXC.
  • Procéder à une mise à jour étapes par étapes, ce que nous allons faire ici ensemble.
Pré-requis ! Vérifiez que Proxmox est en version 6.4
avant de tenter la mise à jour vers la version 7.

Avant de commencer la mise à jour en elle-même, il faut s'assurer que certains modules sont dans leur dernière version. Commençons avec ceph à l'aide de la commande ceph --version.

Mise à jour de Proxmox V6 vers Proxmox V7

Dans mon cas, la version est 12.2.11, une ancienne version.
Vérifions maintenant avec les commandes suivantes si ce module est utilisé :

ceph osd dump | grep ^flags
cat /etc/pve/ceph.conf
Mise à jour de Proxmox V6 vers Proxmox V7

Aucun fichier n'est trouvé, ce qui montre que ceph n'est pas configuré ni utilisé. Si jamais vous obtenez un résultat et devez mettre à jour ce module, voici le lien de la procédure à appliquer.

Maintenant, pour ceux qui l'utilisent, il faut vérifier le paquet "Proxmox Backup Server" avec la commande proxmox-backup-manager versions.

Mise à jour de Proxmox V6 vers Proxmox V7

Comme vous pouvez le voir, ce module n'est pas installé non plus chez moi, donc je suis tranquille sur ce point, mais je vous donne également le lien de la documentation officielle.

Nous allons pourvoir attaquer la mise à jour maintenant que nous nous sommes assuré des prérequis. Pour cela, nous allons rajouter les dernières sources dans le fichier sources.list.

nano /etc/apt/sources.list

On va y ajouter ce qui suit à la fin du fichier :

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription

Le fichier sources.listdoit donc ressembler à ceci :

Mise à jour de Proxmox V6 vers Proxmox V7

Nous pouvons mettre à jour les paquets système, y compris la distribution :

apt update && apt dist-upgrade
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

A la suite de ces commandes, vous pouvez arrêter l'ensemble de vos machines virtuelles et conteneurs et redémarrer la machine. Une fois le redémarrage effectué nous allons retourner en SSH sur l'hôte Proxmox et taper la commande pve6topve7 --full, qui est un utilitaire permettant de vérifier la compatibilité du système.

Mise à jour de Proxmox V6 vers Proxmox V7

Dans mon cas, on peut voir qu'il n'y a aucune erreur, mais 2 warnings apparaissent :

  • Arrêter les machines virtuelles, ce qui est très simple à résoudre (et que j'ai ajouté avant l'exécution de l'utilitaire de vérification).
  • Mon LXC qui porte l'ID 100, dans son fichier de configuration, possède des labels lxc.cgroup qu'il faut modifier en lxc.cgroup2. Pour éditer le fichier de configuration d'un LXC il faut utiliser la commande nano /etc/pve/lxc/100.conf.

Nous allons ensuite modifier les sources pour passer à Proxmox V7 :

sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list

Il reste à vérifier s'il y a encore des traces de la V6 dans les sources. Pour cela, retournons voir le fichier sources.listavec la commande nano /etc/apt/sources.list et si une ligne comporte un pve6.X, vous devez insérer un # au début de celle-ci.

Mise à jour de Proxmox V6 vers Proxmox V7

Si vous possédez une licence, il faut mettre à jour également la source "entreprise".

echo "deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list

Nous allons mettre à jour la distribution et Proxmox pour de bon cette fois, en Debian 11 et Proxmox V7.

apt update && apt dist-upgrade

Il suffira de continuer l'ensemble des étapes, lire le changelogs et autre étapes classique de grosse mise à jour. Vous verrez que de nombreux paquets sont mis à jour, celle-ci peut donc durer plusieurs minutes et plusieurs dizaines de minutes selon votre débit Internet et la puissance de votre machine.

Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

Une fois que cette mise à jour du système sera réalisée, il faudra procéder à un redémarrage du système, à la suite duquel nous allons relancer une mise à jour des paquets qui avaient en prérequis la version du système, avec la commande apt-update && apt upgrade.

Lors des mise à jour de paquets, j'ai eu celle de openssh-server qui m'a demandé une petite réponse. J'ai d'abord comparé les fichiers puis choisi la première option install the package maintainer's version.

Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

En vous connectant à l'interface web de Proxmox, vous devriez maintenant voir en haut la version affichée.

Mise à jour de Proxmox V6 vers Proxmox V7

Conclusion

Vous voici sur la dernière version majeure de Proxmox ! Je trouve cela bien plus simple que mettre à jour VMware ESXi, surtout vu que les mises à jour intermédiaires peuvent se faire facilement depuis l'interface graphique.

Si vous avez des questions sur la mise à jour ou même la configuration et l'utilisation de Proxmox, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté.

✇DomoPi

Installation de Frigate dans un LXC Proxmox

Installation de Frigate dans un LXC Proxmox

Aujourd'hui, on va parler d'une des raison qui m'a fait passer de ESXi à Proxmox, que vous avez pu découvrir dans l'article suivant :

Migration de ESXI à Proxmox
Aujourd’hui nous allons parler hyperviseur et virtualisation. Les deux solutions d’hyperviseur populaires sont VMware ESXi et Proxmox VE . Ces 2 plateformes de virtualisation permettent d’exécuter des machines virtuelles ou des conteneurs. Dans le monde professionnel, VMware est le roi de la virtua…
Installation de Frigate dans un LXC ProxmoxDomoPiHexamus
Installation de Frigate dans un LXC Proxmox

Il s'agit d'un conteneur, Frigate, un NVR (Network Video Recorder) qui possède une IA (Intelligence Artificielle) capable d'identifier les personnes et objets sur des flux vidéos. Cela permet d'améliorer son système de vidéosurveillance et d'éviter de recevoir des alertes intempestives lorsqu'une feuille a bougé ou qu'un nuage passe.

Installation de Frigate dans un LXC Proxmox

Pour cette analyse, Frigate a besoin de disposer de ressources, ce qu'il est possible de faire avec le CPU, mais ceci est très gourmand. Le développement a donc été réalisé autour du Google Coral, qui a été spécifiquement étudié pour procéder à de l'analyse vidéo. Celui-ci est donné pour être aussi performant que des CPU à 2000€, mais pour seulement 60€ ! Pour ma part, j'ai acheté la version USB d'occasion, celui-ci étant très compliqué à trouver actuellement.

Installation de Frigate dans un LXC Proxmox

Pour déployer Frigate, nous n'allons pas utiliser Docker directement (je vous entends "quoi un conteneur mais pas de Docker ?") mais un LXC dans Proxmox.
Une petite définition de LXC pour essayer de mieux comprendre ce que c'est :

LXC est l'acronyme de l'anglicisme LinuX Containers, il s'agit d'un système de virtualisation, utilisant l'isolation comme méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau. Le conteneur apporte une virtualisation de l'environnement d'exécution (processeur, mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ».

Mais alors Docker, machine virtuelle et LXC sont tous trois de la virtualisation, mais quelles sont leurs différences ?

  • Docker permet de virtualiser des service. Chaque conteneur Docker correspond à un service.
  • Un conteneur LXC est un environnement virtuel qui ne possède pas de partie physique émulée.
  • Une machine virtuelle est une émulation d'une machine physique à laquelle des ressource physique sont attribuées.

Je sens que beaucoup viennent de bondir de leur chaise ! Alors oui, j'ai extrêmement vulgarisé cela. Pour moi, je place les LXC entre un conteneur Docker et une machine virtuelle.

Bon nous avons une explication sur les LXC et nous savons que nous voulons utiliser le conteneur Frigate. On va pouvoir se lancer dans le vif du sujet.
Alors on se connecte à son interface Proxmox pour prendre la direction du stockage et télécharger le Template de notre conteneur, pour lequel nous allons choisir Debian 11 Standard.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Maintenant on va pouvoir créer notre LXC, à l'aide d'un clic droit sur notre serveur, on peut choisir Create CT. Il vous suffit de donner un nom au conteneur et de choisir le mot de passe pour votre utilisateur root du LXC. Pour le reste, rien de spécial, à vous d'ajuster les valeurs en fonction de vos besoins, envies et surtout du hardware.

Attention ! Ne pas cocher "Démarrer après création" à la fin.
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Avant le lancement du LXC, nous allons apporter quelques modifications, on commence par ajouter une particularité pour ne pas avoir de souci de SSH sous Debian 11.

Installation de Frigate dans un LXC Proxmox

Nous allons ensuite modifier le fichier de configuration pour permettre au LXC d'avoir accès au bus USB (adapter le numéro de bus au besoin) et au IGPU (voici un article pour mieux comprendre le IGPU). Pour cela, utilisez la commande suivante en SSH nano /etc/pve/lxc/ID.conf (en indiquant l'ID du conteneur que vous avez choisi).

Voici le contenu de mon fichier de configuration après ajout des dernières lignes.

arch: amd64
cores: 2
features: nesting=1
hostname: frigate
memory: 4096
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=AA:73:AE:CB:75:D9,ip=dhcp,ip6=dhcp,type=veth
ostype: debian
rootfs: local-lvm:vm-100-disk-0,size=16G
swap: 512
onboot: 1
unprivileged: 0
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.mount.entry: /dev/bus/usb/002 dev/bus/usb/002 none bind,optional,create=dir
lxc.cgroup2.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

Nous allons en profiter pour ajouter un montage de disque, pour permettre d'avoir la configuration stockée sur le NUC et la sauvegarde des médias sur le NAS Synology où j'ai plus d'espace de stockage.
Sur le NAS, il faut ajouter configurer le dossier partagé en NFS, je vous ai mis une capture d'écran de ma configuration juste en dessous.
Retournons sur Proxmox pour ajouter le stockage NFS dans le datacenter, où il vous faudra renseigner un nom pour le montage, l'adresse IP du serveur, le chemin d'accès au dossier (il est possible de rajouter des sous dossiers) et en contenu choisir Conteneur.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Maintenant, direction le LXC pour rajouter le Point de montage comme Ressources. Il vous faudra sélectionner le Stockage monté précédemment, dans mon cas NVR, et choisir la taille du disque ainsi que le chemin de montage sur le LXC. Vous pourrez vérifier le bon montage une fois le conteneur LXC démarré.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Le moment de démarrer le conteneur LXC est enfin arrivé ! Cela peut être long au premier démarrage, il faut avoir un peu de patience.

Comme sur chaque nouvelle installation, je vous recommande de commencer par mettre à jour le système avec les commandes apt-get update && apt-get upgrade.

Frigate est disponible en tant que conteneur Docker, nous allons donc installer Docker et pour cela je vous renvoie vers l'article qui en parle.

Installation de Frigate dans un LXC Proxmox

Suite à cela, nous allons installer Docker compose ou Portainer, dans mon cas j'utilise Portainer.

On va pouvoir vraiment attaquer Frigate avec la création de sa stack. Voici le contenu, à adapter selon vos besoins.

version: "3.6"
services:
  frigate:
      container_name: frigate
      restart: unless-stopped
      privileged: true
      image: blakeblackshear/frigate:stable-amd64
      volumes:
        - /dev/bus/usb:/dev/bus/usb
        - /etc/localtime:/etc/localtime:ro
        - volume-frigate-config:/config
        - /frigate/media:/media/frigate
#        - /ruser/0:/tmp/cache
#        - <path_to_directory_for_recordings>:/media/frigate/recordings
        - type: tmpfs # 1GB of memory, reduces SSD/SD Card wear
          target: /tmp/cache
          tmpfs:
            size: 1000000000
      ports:
        - 5000:5000
        - 1935:1935 # RTMP feeds
      healthcheck:
        test: ["CMD", "wget" , "-q", "-O-", "http://localhost:5000"]
        interval: 30s
        timeout: 10s
        retries: 5
        start_period: 3mfr

volumes:
  volume-frigate-config:
      driver: local

Le conteneur ne devrait pas réussir à démarrer car il manque le fichier de configuration. Dans le volume config, créer un fichier config.yml.

Voici la page de la documentation officielle pour vous aider à remplir ce fichier de configuration, et vous trouverez ci-dessous l'exemple de base :

mqtt:
  host: mqtt.server.com
cameras:
  back:
    ffmpeg:
      inputs:
        - path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
          roles:
            - detect
            - rtmp
    detect:
      width: 1280
      height: 720

Une fois le fichier renseigné, vous pouvez relancer le conteneur Docker et accéder à l'interface depuis votre navigateur sur l'adresse http://<IP.DU.LXC>:5000. Vous arriverez directement sur le Dashboard (sur lequel il n'y a pas de mot de passe).
Voilà à quoi il ressemble chez moi après avoir ajouté quelques caméras :

Installation de Frigate dans un LXC Proxmox

Conclusion

J'espère que cette découverte de la mise en place l'outil Frigate vous a plu, et je pense rédiger un second article pour vous le présenter en détails et voir ensemble comme le configurer et l'utiliser.

Si vous avez des questions sur l'installation de Frigate, ou même sur sa configuration ou son utilisation, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté.

✇DomoPi

Mise à jour de Proxmox V6 vers Proxmox V7

Mise à jour de Proxmox V6 vers Proxmox V7

Voilà quelque mois maintenant que je suis passé de VMware ESXi à Proxmox V6. Depuis le mois de Juillet 2021, la version 7 est sortie, et c'est donc l'occasion de faire ma première grosse mise à jour et de vous en faire profiter.

Commençons par parcourir les principales nouveautés :

  • Debian passe de la version 10 "Buster" à la 11 "Bullseye", incluant Ceph Pacific en version 16.2 par défaut (au lieu de la 15.2),
  • Les moniteurs Ceph avec plusieurs réseaux publics peuvent être créés à l'aide de la CLI (ligne de commande), si les utilisateurs ont plusieurs liens configurés.
  • Support du Btrfs en tant que technologie de stockage, incluant un contrôle de l'intégrité du système de fichiers, une amélioration des performances, des fonctionnalités d'instantanés.
  • Le protocole OpenID Connect est intégré pour amener la possibilité d'utiliser une authentification unique (SSO).
  • Améliorations de l'interface utilisateur Web, avec notamment l'ajout du support du Markdown dans « Notes », ainsi qu'un nouveau panneau de gestion des référentiels APT.
  • Prise en charge des clés de sécurité (comme YubiKey) en tant que clés SSH, lors de la création de conteneurs ou de la préparation d'images cloud-init.
  • Conteneur : LXC 4.0 prend entièrement en charge les cgroups2, un mécanisme d'organisation hiérarchique des processus et d'allocation des ressources système.
  • Gestion des certificats : le plug-in autonome ACME prend désormais mieux en charge les environnements à double pile (IPv4 et IPv6) et ne dépend plus des adresses configurées pour déterminer son interface d'écoute.
  • Réseau : l'ifupdown2 moderne est l'outil de gestion de réseau par défaut pour les nouvelles installations utilisant l'ISO officiel Proxmox VE.

Vous trouverez ci-dessous le lien vers la documentation officielle de Proxmox pour mettre à jour Proxmox VE depuis la version 6 vers la 7, mais nous allons essayer de vous retranscrire et expliquer dans cet article les étapes indispensables.

Upgrade from 6.x to 7.0 - Proxmox VE
Mise à jour de Proxmox V6 vers Proxmox V7Proxmox VE
Mise à jour de Proxmox V6 vers Proxmox V7
Attention ! Avant de procéder à la mise à jour, la chose la plus importante est de réaliser une sauvegarde complète de votre système, incluant les machines virtuelles et conteneurs LXC.

Deux méthodes sont possibles pour faire cette mise à jour :

  • Réinstaller Proxmox VE en version 7, et restaurer la sauvegarde de la configuration ainsi que les machines virtuelles et conteneurs LXC.
  • Procéder à une mise à jour étapes par étapes, ce que nous allons faire ici ensemble.
Pré-requis ! Vérifiez que Proxmox est en version 6.4
avant de tenter la mise à jour vers la version 7.

Avant de commencer la mise à jour en elle-même, il faut s'assurer que certains modules sont dans leur dernière version. Commençons avec ceph à l'aide de la commande ceph --version.

Mise à jour de Proxmox V6 vers Proxmox V7

Dans mon cas, la version est 12.2.11, une ancienne version.
Vérifions maintenant avec les commandes suivantes si ce module est utilisé :

ceph osd dump | grep ^flags
cat /etc/pve/ceph.conf
Mise à jour de Proxmox V6 vers Proxmox V7

Aucun fichier n'est trouvé, ce qui montre que ceph n'est pas configuré ni utilisé. Si jamais vous obtenez un résultat et devez mettre à jour ce module, voici le lien de la procédure à appliquer.

Maintenant, pour ceux qui l'utilisent, il faut vérifier le paquet "Proxmox Backup Server" avec la commande proxmox-backup-manager versions.

Mise à jour de Proxmox V6 vers Proxmox V7

Comme vous pouvez le voir, ce module n'est pas installé non plus chez moi, donc je suis tranquille sur ce point, mais je vous donne également le lien de la documentation officielle.

Nous allons pourvoir attaquer la mise à jour maintenant que nous nous sommes assuré des prérequis. Pour cela, nous allons rajouter les dernières sources dans le fichier sources.list.

nano /etc/apt/sources.list

On va y ajouter ce qui suit à la fin du fichier :

# PVE pve-no-subscription repository provided by proxmox.com,
# NOT recommended for production use
deb http://download.proxmox.com/debian/pve buster pve-no-subscription

Le fichier sources.listdoit donc ressembler à ceci :

Mise à jour de Proxmox V6 vers Proxmox V7

Nous pouvons mettre à jour les paquets système, y compris la distribution :

apt update && apt dist-upgrade
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

A la suite de ces commandes, vous pouvez arrêter l'ensemble de vos machines virtuelles et conteneurs et redémarrer la machine. Une fois le redémarrage effectué nous allons retourner en SSH sur l'hôte Proxmox et taper la commande pve6topve7 --full, qui est un utilitaire permettant de vérifier la compatibilité du système.

Mise à jour de Proxmox V6 vers Proxmox V7

Dans mon cas, on peut voir qu'il n'y a aucune erreur, mais 2 warnings apparaissent :

  • Arrêter les machines virtuelles, ce qui est très simple à résoudre (et que j'ai ajouté avant l'exécution de l'utilitaire de vérification).
  • Mon LXC qui porte l'ID 100, dans son fichier de configuration, possède des labels lxc.cgroup qu'il faut modifier en lxc.cgroup2. Pour éditer le fichier de configuration d'un LXC il faut utiliser la commande nano /etc/pve/lxc/100.conf.

Nous allons ensuite modifier les sources pour passer à Proxmox V7 :

sed -i 's/buster\/updates/bullseye-security/g;s/buster/bullseye/g' /etc/apt/sources.list

Il reste à vérifier s'il y a encore des traces de la V6 dans les sources. Pour cela, retournons voir le fichier sources.listavec la commande nano /etc/apt/sources.list et si une ligne comporte un pve6.X, vous devez insérer un # au début de celle-ci.

Mise à jour de Proxmox V6 vers Proxmox V7

Si vous possédez une licence, il faut mettre à jour également la source "entreprise".

echo "deb https://enterprise.proxmox.com/debian/pve bullseye pve-enterprise" > /etc/apt/sources.list.d/pve-enterprise.list

Nous allons mettre à jour la distribution et Proxmox pour de bon cette fois, en Debian 11 et Proxmox V7.

apt update && apt dist-upgrade

Il suffira de continuer l'ensemble des étapes, lire le changelogs et autre étapes classique de grosse mise à jour. Vous verrez que de nombreux paquets sont mis à jour, celle-ci peut donc durer plusieurs minutes et plusieurs dizaines de minutes selon votre débit Internet et la puissance de votre machine.

Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

Une fois que cette mise à jour du système sera réalisée, il faudra procéder à un redémarrage du système, à la suite duquel nous allons relancer une mise à jour des paquets qui avaient en prérequis la version du système, avec la commande apt-update && apt upgrade.

Lors des mise à jour de paquets, j'ai eu celle de openssh-server qui m'a demandé une petite réponse. J'ai d'abord comparé les fichiers puis choisi la première option install the package maintainer's version.

Mise à jour de Proxmox V6 vers Proxmox V7
Mise à jour de Proxmox V6 vers Proxmox V7

En vous connectant à l'interface web de Proxmox, vous devriez maintenant voir en haut la version affichée.

Mise à jour de Proxmox V6 vers Proxmox V7

Conclusion

Vous voici sur la dernière version majeure de Proxmox ! Je trouve cela bien plus simple que mettre à jour VMware ESXi, surtout vu que les mises à jour intermédiaires peuvent se faire facilement depuis l'interface graphique.

Si vous avez des questions sur la mise à jour ou même la configuration et l'utilisation de Proxmox, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté.

✇DomoPi

Installation de Frigate dans un LXC Proxmox

Installation de Frigate dans un LXC Proxmox

Aujourd'hui, on va parler d'une des raison qui m'a fait passer de ESXi à Proxmox, que vous avez pu découvrir dans l'article suivant :

Migration de ESXI à Proxmox
Aujourd’hui nous allons parler hyperviseur et virtualisation. Les deux solutions d’hyperviseur populaires sont VMware ESXi et Proxmox VE . Ces 2 plateformes de virtualisation permettent d’exécuter des machines virtuelles ou des conteneurs. Dans le monde professionnel, VMware est le roi de la virtua…
Installation de Frigate dans un LXC ProxmoxDomoPiHexamus
Installation de Frigate dans un LXC Proxmox

Il s'agit d'un conteneur, Frigate, un NVR (Network Video Recorder) qui possède une IA (Intelligence Artificielle) capable d'identifier les personnes et objets sur des flux vidéos. Cela permet d'améliorer son système de vidéosurveillance et d'éviter de recevoir des alertes intempestives lorsqu'une feuille a bougé ou qu'un nuage passe.

Installation de Frigate dans un LXC Proxmox

Pour cette analyse, Frigate a besoin de disposer de ressources, ce qu'il est possible de faire avec le CPU, mais ceci est très gourmand. Le développement a donc été réalisé autour du Google Coral, qui a été spécifiquement étudié pour procéder à de l'analyse vidéo. Celui-ci est donné pour être aussi performant que des CPU à 2000€, mais pour seulement 60€ ! Pour ma part, j'ai acheté la version USB d'occasion, celui-ci étant très compliqué à trouver actuellement.

Installation de Frigate dans un LXC Proxmox

Pour déployer Frigate, nous n'allons pas utiliser Docker directement (je vous entends "quoi un conteneur mais pas de Docker ?") mais un LXC dans Proxmox.
Une petite définition de LXC pour essayer de mieux comprendre ce que c'est :

LXC est l'acronyme de l'anglicisme LinuX Containers, il s'agit d'un système de virtualisation, utilisant l'isolation comme méthode de cloisonnement au niveau du système d'exploitation. Il est utilisé pour faire fonctionner des environnements Linux isolés les uns des autres dans des conteneurs partageant le même noyau. Le conteneur apporte une virtualisation de l'environnement d'exécution (processeur, mémoire vive, réseau, système de fichier…) et non pas de la machine. Pour cette raison, on parle de « conteneur » et non de « machine virtuelle ».

Mais alors Docker, machine virtuelle et LXC sont tous trois de la virtualisation, mais quelles sont leurs différences ?

  • Docker permet de virtualiser des service. Chaque conteneur Docker correspond à un service.
  • Un conteneur LXC est un environnement virtuel qui ne possède pas de partie physique émulée.
  • Une machine virtuelle est une émulation d'une machine physique à laquelle des ressource physique sont attribuées.

Je sens que beaucoup viennent de bondir de leur chaise ! Alors oui, j'ai extrêmement vulgarisé cela. Pour moi, je place les LXC entre un conteneur Docker et une machine virtuelle.

Bon nous avons une explication sur les LXC et nous savons que nous voulons utiliser le conteneur Frigate. On va pouvoir se lancer dans le vif du sujet.
Alors on se connecte à son interface Proxmox pour prendre la direction du stockage et télécharger le Template de notre conteneur, pour lequel nous allons choisir Debian 11 Standard.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Maintenant on va pouvoir créer notre LXC, à l'aide d'un clic droit sur notre serveur, on peut choisir Create CT. Il vous suffit de donner un nom au conteneur et de choisir le mot de passe pour votre utilisateur root du LXC. Pour le reste, rien de spécial, à vous d'ajuster les valeurs en fonction de vos besoins, envies et surtout du hardware.

Attention ! Ne pas cocher "Démarrer après création" à la fin.
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Avant le lancement du LXC, nous allons apporter quelques modifications, on commence par ajouter une particularité pour ne pas avoir de souci de SSH sous Debian 11.

Installation de Frigate dans un LXC Proxmox

Nous allons ensuite modifier le fichier de configuration pour permettre au LXC d'avoir accès au bus USB (adapter le numéro de bus au besoin) et au IGPU (voici un article pour mieux comprendre le IGPU). Pour cela, utilisez la commande suivante en SSH nano /etc/pve/lxc/ID.conf (en indiquant l'ID du conteneur que vous avez choisi).

Voici le contenu de mon fichier de configuration après ajout des dernières lignes.

arch: amd64
cores: 2
features: nesting=1
hostname: frigate
memory: 4096
net0: name=eth0,bridge=vmbr0,firewall=1,hwaddr=AA:73:AE:CB:75:D9,ip=dhcp,ip6=dhcp,type=veth
ostype: debian
rootfs: local-lvm:vm-100-disk-0,size=16G
swap: 512
onboot: 1
unprivileged: 0
lxc.apparmor.profile: unconfined
lxc.cgroup2.devices.allow: c 189:* rwm
lxc.cgroup2.devices.allow: a
lxc.cap.drop:
lxc.mount.entry: /dev/bus/usb/002 dev/bus/usb/002 none bind,optional,create=dir
lxc.cgroup2.devices.allow: c 226:* rwm
lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file

Nous allons en profiter pour ajouter un montage de disque, pour permettre d'avoir la configuration stockée sur le NUC et la sauvegarde des médias sur le NAS Synology où j'ai plus d'espace de stockage.
Sur le NAS, il faut ajouter configurer le dossier partagé en NFS, je vous ai mis une capture d'écran de ma configuration juste en dessous.
Retournons sur Proxmox pour ajouter le stockage NFS dans le datacenter, où il vous faudra renseigner un nom pour le montage, l'adresse IP du serveur, le chemin d'accès au dossier (il est possible de rajouter des sous dossiers) et en contenu choisir Conteneur.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Maintenant, direction le LXC pour rajouter le Point de montage comme Ressources. Il vous faudra sélectionner le Stockage monté précédemment, dans mon cas NVR, et choisir la taille du disque ainsi que le chemin de montage sur le LXC. Vous pourrez vérifier le bon montage une fois le conteneur LXC démarré.

Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox
Installation de Frigate dans un LXC Proxmox

Le moment de démarrer le conteneur LXC est enfin arrivé ! Cela peut être long au premier démarrage, il faut avoir un peu de patience.

Comme sur chaque nouvelle installation, je vous recommande de commencer par mettre à jour le système avec les commandes apt-get update && apt-get upgrade.

Frigate est disponible en tant que conteneur Docker, nous allons donc installer Docker et pour cela je vous renvoie vers l'article qui en parle.

Installation de Frigate dans un LXC Proxmox

Suite à cela, nous allons installer Docker compose ou Portainer, dans mon cas j'utilise Portainer.

On va pouvoir vraiment attaquer Frigate avec la création de sa stack. Voici le contenu, à adapter selon vos besoins.

version: "3.6"
services:
  frigate:
      container_name: frigate
      restart: unless-stopped
      privileged: true
      image: blakeblackshear/frigate:stable-amd64
      volumes:
        - /dev/bus/usb:/dev/bus/usb
        - /etc/localtime:/etc/localtime:ro
        - volume-frigate-config:/config
        - /frigate/media:/media/frigate
#        - /ruser/0:/tmp/cache
#        - <path_to_directory_for_recordings>:/media/frigate/recordings
        - type: tmpfs # 1GB of memory, reduces SSD/SD Card wear
          target: /tmp/cache
          tmpfs:
            size: 1000000000
      ports:
        - 5000:5000
        - 1935:1935 # RTMP feeds
      healthcheck:
        test: ["CMD", "wget" , "-q", "-O-", "http://localhost:5000"]
        interval: 30s
        timeout: 10s
        retries: 5
        start_period: 3mfr

volumes:
  volume-frigate-config:
      driver: local

Le conteneur ne devrait pas réussir à démarrer car il manque le fichier de configuration. Dans le volume config, créer un fichier config.yml.

Voici la page de la documentation officielle pour vous aider à remplir ce fichier de configuration, et vous trouverez ci-dessous l'exemple de base :

mqtt:
  host: mqtt.server.com
cameras:
  back:
    ffmpeg:
      inputs:
        - path: rtsp://viewer:{FRIGATE_RTSP_PASSWORD}@10.0.10.10:554/cam/realmonitor?channel=1&subtype=2
          roles:
            - detect
            - rtmp
    detect:
      width: 1280
      height: 720

Une fois le fichier renseigné, vous pouvez relancer le conteneur Docker et accéder à l'interface depuis votre navigateur sur l'adresse http://<IP.DU.LXC>:5000. Vous arriverez directement sur le Dashboard (sur lequel il n'y a pas de mot de passe).
Voilà à quoi il ressemble chez moi après avoir ajouté quelques caméras :

Installation de Frigate dans un LXC Proxmox

Conclusion

J'espère que cette découverte de la mise en place l'outil Frigate vous a plu, et je pense rédiger un second article pour vous le présenter en détails et voir ensemble comme le configurer et l'utiliser.

Si vous avez des questions sur l'installation de Frigate, ou même sur sa configuration ou son utilisation, n'hésitez pas à laisser un commentaire ou à venir nous retrouver sur le groupe Telegram de la communauté.

❌