<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet title="XSL formatting" type="text/xsl" href="https://chez.jcdenis.fr/feed/rss2/xslt" ?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Jean-Christian Paul Denis - Mot-clé - debian</title>
    <link>https://chez.jcdenis.fr/</link>
    <atom:link href="https://chez.jcdenis.fr/feed/tag/debian/rss2" rel="self" type="application/rss+xml" />
    <description>Moment de vie d'un homme invisible.</description>
    <language>fr</language>
    <pubDate>Sun, 09 Nov 2025 09:31:14 +0100</pubDate>
    <copyright>Tous droits réservés © Jean-Christian Denis</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>Dotclear</generator>
          <item>
        <title>Ma domotique III : Virtualisation</title>
        <link>https://chez.jcdenis.fr/post/2024/04/02/Ma-domotique-III-%3A-Virtualisation</link>
        <guid isPermaLink="false">urn:md5:5537a2dbcda7ad1aac8a753e407c201d</guid>
        <pubDate>Tue, 02 Apr 2024 21:57:00 +0200</pubDate>
        <dc:creator>Jean-Christian Denis</dc:creator>
                  <category>NRDomV2</category>
                          <category>conteneur</category>
                  <category>debian</category>
                  <category>docker</category>
                  <category>protainer</category>
                  <category>proxmox</category>
                  <category>vm</category>
                <description>&lt;p&gt;Au début de ma domotique j'étais réfractaire à tout ce qui était virtuel, installant une distribution sur une machine pour chaque besoin, mais ça c'était avant !&lt;/p&gt; &lt;p&gt;Lorsque j'ai commencé la domotique, j'utilisais des Raspberry Pi (W, 2 ou 3), j'installais la distribution Linux qui allait avec et je me tapais des lignes et des lignes de commande pour tenter d'installer le moindre truc et je recommençais du début à chaque plantage. J'étais borné, ne voulant pas entendre parler de machine virtuelle ou de conteneur, croyant que tout serait plus solide si j'installais tout moi même sur une base solide. Bon, ben j'avais tord, quelques années plus tard je ne jure que par des VM et des conteneurs. Bigre.&lt;br&gt;
&lt;br&gt;
La virtualisation a pleins d'avantages, facile de sauvegarder, supprimer, restaurer, modifier. Aujourd'hui un petit bout de config, 2 clics et une ligne de commande suffisent à lancer tout ce qu'il faut pour gérer un protocole. Alors dans l'absolue il a fallu préparer en amont des templates et avoir un gestionnaire de container fonctionnel, mais j'ai pris le temps et aujourd'hui je gagne du temps.&lt;br&gt;
&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.logo_proxmox_s.png&quot; alt=&quot;&quot; class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.logo_debian_s.png&quot; alt=&quot;&quot; class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.logo_portainer_s.jpg&quot; alt=&quot;&quot; class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.logo_docker_s.png&quot; alt=&quot;&quot; class=&quot;media-center&quot;&gt;&lt;br&gt;
Mes choix se sont portés sur la distribution de gestion de VM nommé Proxmox VE dans sa version public, la construction de template de VM à base de Debian, le système de container Docker et le gestionnaire Portainer. J'empile même les deux en mettant un Docker dans un VM. Simple et efficace pour compartimenter les protocoles domotique et pour sauvegarder tout ça. Ces deux gestionnaires ont une interface web plutôt bien réussi ce qui facilite encore plus leurs utilisations.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/interface_proxmox_ve.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.interface_proxmox_ve_m.png&quot; alt=&quot;Interface Proxmox VE&quot;&gt;&lt;figcaption&gt;Exemple d&amp;#039;interface web de la distribution Proxmox VE, mars 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/interface_portainer.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.interface_portainer_m.png&quot; alt=&quot;Interface de Portainer&quot;&gt;&lt;figcaption&gt;Exemple d&amp;#039;interface web du gestionnaire Portainer, mars 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Aujourd'hui pour faire tourner ma domotique j'ai 12 machines virtuelles embarquant chacune un ou plusieurs Docker, et avec tout ça le processeur de mon serveur n'atteint même pas les 1% d'utilisation. (bon il a 28 cœurs mais quand même) C'est juste hallucinant. L'accumulation de tous ces avantages fait que je ne reviendrais jamais en arrière et que je ne peux que vous conseiller de prendre ce chemin dès le départ.&lt;br&gt;
&lt;br&gt;
Avant de commencer les screenshots et les lignes de commande pour préparer tout ça, je vais faire un mini rappel sur certains termes utiliser précédemment :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Proxmox&lt;/strong&gt; : Gestionnaire de machines virtuelles (VM)&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Debian&lt;/strong&gt; : Distribution Linux, composée presque exclusivement de logiciels libres&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker&lt;/strong&gt; : Outil qui peut empaqueter une application et ses dépendances dans un conteneur isolé&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Portainer&lt;/strong&gt; : Gestionnaire de conteneur Docker&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Vous êtes prêt pour un bon gros pavé ? C'est partie, avec à la fin de ce billet un premier exemple d'utilisation en 3 lignes de commande.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;Installation de Proxmox&lt;/h3&gt;

&lt;p&gt;Proxmox est fait pour travailler en cluster, c'est à dire que vous avez plusieurs machines physiques sur lesquels chaque machine virtuelle est dupliquée. On ne va pas utiliser cette fonctionnalité car on n'en a pas besoin et surtout nous avons besoin des ports USB pour les clefs Zigbee, Zwave et autres, ce qui rend la duplication impossible.&lt;br&gt;
Il existe des centaines du tuto se ressemblant les uns les autres expliquant l'installation de Proxmox. Je vais quand même m'y coller juste pour le plaisir de faire les captures d'écran depuis l'installation de Proxmox sur un VM Proxmox !&lt;br&gt;
Il faut commencer par télécharger l'ISO de Proxmox VE sur le site de Proxmox et la graver sur une clef USB, pour cela j'utilise le logiciel BalenaEtcher. Ensuite insérer la clef USB dans un port du serveur et démarrer le serveur. La procédure d'installation commence.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_01.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_01_m.png&quot; alt=&quot;Promox VE install 01&quot;&gt;&lt;figcaption&gt;Promox VE install 01, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On accepte les termes et on choisie le disque. La seule difficulté que j'avais lors de l'installation et d'avoir choisi un raid matériel depuis le bios de ma carte mère et ensuite le faire reconnaitre lors de l'installation de Proxmox. Il a fallu que je choisisse dans les options le Raid 1 zfs en sélectionnant mes deux disques. Rien de bien méchant.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_02.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_02_m.png&quot; alt=&quot;Promox VE install 02&quot;&gt;&lt;figcaption&gt;Promox VE install 02, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On choisi la zone horaire.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_03.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_03_m.png&quot; alt=&quot;Promox VE install 03&quot;&gt;&lt;figcaption&gt;Promox VE install 03, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On indique le mot de passe root et un email.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_04.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_04_m.png&quot; alt=&quot;Promox VE install 04&quot;&gt;&lt;figcaption&gt;Promox VE install 04, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On sélectionne l'interface réseau, le nom de la machine et les IPs. Sur les captures je suis dans un VM de mon réseau de test donc à adapter selon votre configuration.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_05.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_05_m.png&quot; alt=&quot;Promox VE install 05&quot;&gt;&lt;figcaption&gt;Promox VE install 05, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On vérifie les informations et on procède à l'installation.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_06.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_06_m.png&quot; alt=&quot;Promox VE install 06&quot;&gt;&lt;figcaption&gt;Promox VE install 06, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Une fois l'installation terminé, le serveur reboot. On en a fini avec le serveur. On peut se connecter à l'interface web depuis notre PC. L'IP du serveur est celle vu pendant l'installation auquel il faut ajouté le port 8006. Une alerte nous informe que la connexion n'est pas sécurise, pas grave la machine n'est pas accessible hors de la maison. On entre nos identifiant root et voila.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_07.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_07_m.png&quot; alt=&quot;Promox VE install 07&quot;&gt;&lt;figcaption&gt;Promox VE install 07, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Une alerte indique que nous avons pas de licence valide, normal on utilise la version libre. On va tout de suite modifier les sources pour les mises à jour pour ajouter le dépôt No-Subscription et enlever le dépôt Entreprise. Ces réglages sont dans Datacentre -&amp;gt; notre machine -&amp;gt; Updates -&amp;gt; Repositories -&amp;gt; Add.&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_08.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_08_m.png&quot; alt=&quot;Promox VE install 08&quot;&gt;&lt;figcaption&gt;Promox VE install 08, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_09.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_09_m.png&quot; alt=&quot;Promox VE install 09&quot;&gt;&lt;figcaption&gt;Promox VE install 09, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Une fois les dépôts configurer, on remonte dans Updates on clique sur Refresh puis sur Upgrade. Notre machine est à jour. Si le noyau est modifié il faudra surement redémarrer le serveur.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_install_10.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_install_10_m.png&quot; alt=&quot;Promox VE install 10&quot;&gt;&lt;figcaption&gt;Promox VE install 10, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Voila pour la partie serveur. Il faudra ajouter la gestion des backups. Je ferais peut-être un billet sur l'utilisation de Proxmox Backup Server tel que je l'utilise. C'est bien pratique.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;Création du template Debian&lt;/h3&gt;

&lt;p&gt;Pour ma domotique, j'utilise un template de VM qui me permet de créer des VM en 2 minutes, la base est toujours la même, seuls l'IP et le conteneur Docker changent. Je vais faire dans un premier temps un template uniquement de la distribution puis je le dupliquerais pour faire un second template avec ce qu'il faut pour Docker.&lt;br&gt;
Dans l'interface web de Proxmox, On va dans &lt;strong&gt;Datacentre -&amp;gt; notre machine&lt;/strong&gt;, on clic droit dessus pour ouvrir son menu et on fait &lt;code&gt;Create VM&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_02.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_02_m.png&quot; alt=&quot;PVE Template Install 02&quot;&gt;&lt;figcaption&gt;PVE Template, bouton de création VM, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On paramètre maintenant notre machine virtuelle. Dans l'onglet &lt;strong&gt;General&lt;/strong&gt;, on change le &lt;strong&gt;VM ID&lt;/strong&gt;, on va en mettre un assez élevé pour ne pas le mélanger aux autres, je prend&lt;code&gt; 900&lt;/code&gt; pour ce template et on va la nommé, ici ce sera &lt;code&gt;template-debian&lt;/code&gt;.&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_03.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_03_m.png&quot; alt=&quot;PVE Template Install 03&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet général, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Ensuite dans l'onglet &lt;strong&gt;OS&lt;/strong&gt;, on lui indique de ne pas utiliser de média (on va le faire de manière spéciale un peu plus tard), le reste ne change pas.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_04.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_04_m.png&quot; alt=&quot;PVE Tempalte Install 04&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet OS, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Ensuite dans l'onglet &lt;strong&gt;System&lt;/strong&gt;, on garde tout par défaut, on va juste cocher la case &lt;code&gt;Qemu Agent&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_05.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_05_m.png&quot; alt=&quot;PVE Template Install 05&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet System, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Ensuite dans l'onglet &lt;strong&gt;Disks&lt;/strong&gt;, on va supprimer le disque par défaut. (on va l'ajouter de manière spéciale un peu plus tard)&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_06.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_06_m.png&quot; alt=&quot;PVE Template Install 06&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet Disks, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On ne touche pas aux onglet &lt;strong&gt;CPU&lt;/strong&gt; et &lt;strong&gt;Memory&lt;/strong&gt;, on pourra les modifier lors de la création de nos VM. Dans l'onglet &lt;strong&gt;Network&lt;/strong&gt; on choisie le &lt;strong&gt;Brigde&lt;/strong&gt; réseau à utiliser et on décoche la case &lt;code&gt;Firewall&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_07.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_07_m.png&quot; alt=&quot;PVE Template Install 07&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet Network, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On vérifie que tout est bon et on clic sur &lt;strong&gt;Finish&lt;/strong&gt;.&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_08.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_08_m.png&quot; alt=&quot;PVE Template Install 08&quot;&gt;&lt;figcaption&gt;PVE Template, Onglet Confirm, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On passe à la seconde phase de la création du template, il va falloir lui ajouter un disque Cloud-init. Pour cela on se rend dans &lt;strong&gt;Datacentre -&amp;gt; notre machine -&amp;gt; norte VM (900) -&amp;gt; Hardware&lt;/strong&gt;, on déroule le menu &lt;strong&gt;Add&lt;/strong&gt; et on sélectionne &lt;code&gt;CloudInit Drive&lt;/code&gt;, on utilise le &lt;strong&gt;Bus&lt;/strong&gt; &lt;code&gt;IDE 0&lt;/code&gt; et le &lt;strong&gt;Storage&lt;/strong&gt; &lt;code&gt;local-lvm&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_09.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_09_m.png&quot; alt=&quot;PVE Template Install 09&quot;&gt;&lt;figcaption&gt;PVE Template, menu Add hardware, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Toujours sur notre VM 900 on se rend dans la partie &lt;strong&gt;Cloud-init&lt;/strong&gt; et on va modifier le &lt;strong&gt;User&lt;/strong&gt; et son &lt;strong&gt;Password&lt;/strong&gt;. Ces identifiant serviront à se connecter à la machine en SSH par exemple, cette utilisateur aura les droits sudo.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_10.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_10_m.png&quot; alt=&quot;PVE Template Install 10&quot;&gt;&lt;figcaption&gt;PVE Template, paramètres Cloud-init, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Dans cette partie on va également configurer le réseau pour utiliser DHCP, même si on le verra par la suite on va assigner une IP à chaque machine virtuelle avant de la démarrer.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_11.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_11_m.png&quot; alt=&quot;PVE Template Install 11&quot;&gt;&lt;figcaption&gt;PVE Template, config DHCP, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Maintenant on va ajouter le disque. On utilise le shell de norte interface web Proxmox mais on pourrait utiliser un client SSH.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_12.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_12_m.png&quot; alt=&quot;PVE Template Install 12&quot;&gt;&lt;figcaption&gt;PVE Template, node shell, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Et on va enchainer quelques commandes :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Tout d'abord on télécharge l'image de l'OS Debian pour KVM&lt;/li&gt;
&lt;li&gt;On redimensionne l'image (je mets 16G par defaut, on pourra ensuite changer pour chaque machine)&lt;/li&gt;
&lt;li&gt;On autorise la console (le 900 est le numero de notre template)&lt;/li&gt;
&lt;li&gt;On importe le disque dans la VM template&lt;/li&gt;
&lt;li&gt;On scanne les volumes pour les prendre en compte&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce qui donne dans le shell :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;wget https://cloud.debian.org/images/cloud/bookworm/latest/debian-12-generic-amd64.qcow2
qemu-img resize debian-12-generic-amd64.qcow2 16G
qm set 900 --serial0 socket --vga serial0
qm importdisk 900 debian-12-generic-amd64.qcow2 local-lvm
qm rescan&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
On retourne dans la partie dédiée à notre template, dans &lt;strong&gt;Hardware&lt;/strong&gt; il faut ajouter le disque qu'on vient de créer en cliquant dessus puis &lt;strong&gt;Add&lt;/strong&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_14.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_14_m.png&quot; alt=&quot;PVE Template Install 14&quot;&gt;&lt;figcaption&gt;PVE Template, Add unused disk, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Le disque apparait maintenant normalement. &lt;strong&gt;Hard Disk (scsi0)&lt;/strong&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_15.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_15_m.png&quot; alt=&quot;PVE Template Install 15&quot;&gt;&lt;figcaption&gt;PVE Template, hardware with disk, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On se déplace dans le menu &lt;strong&gt;Options&lt;/strong&gt; et on va modifier l'ordre de boot en passant le disque &lt;strong&gt;scsi0&lt;/strong&gt; en second et en cocher sa case &lt;code&gt;Enabled&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_16.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_16_m.png&quot; alt=&quot;PVE Template Install 16&quot;&gt;&lt;figcaption&gt;PVE Template, Boot order, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Tout est prêt pour un premier démarrage du template, on se rend dans la console de la VM 900 et on démarre la machine. Ca mouline un moment puis plus rien, il suffit de taper &lt;em&gt;entrer&lt;/em&gt; et l'invite de commande apparait.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_install_17.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_install_17_m.png&quot; alt=&quot;PVE Template Install 17&quot;&gt;&lt;figcaption&gt;PVE Template, console, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
Le login et le mot de passe sont ceux indiqués dans la configuration de Cloud-init. On va :&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mettre à jour l'OS&lt;/li&gt;
&lt;li&gt;Installer Qemu&lt;/li&gt;
&lt;li&gt;L'ajouter au boot&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce qui donne dans la console :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
sudo apt install qemu-guest-agent
sudo systemctl enable qemu-guest-agent&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Sur les dernières versions de Debian, le service SSH n'est pas activé, je l'utilise, donc je vais l'activer de suite :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo systemctl enable ssh
sudo systemctl start ssh&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Maintenant on va faire un reset de l'ID du template et nettoyer les informations d'initialisation.&lt;br&gt;
&lt;strong&gt;A chaque démarrage de la VM de template pour y apporter des modifications, il sera obligatoire de refaire ces lignes de commandes !&lt;/strong&gt;&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo su -
cat /dev/null &amp;gt; /etc/900
cat /dev/null &amp;gt; /var/lib/dbus/900
cloud-init clean&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Il ne reste plus qu'à arrêter notre template avec un joli :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;shutdown -h now&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Voila la VM de template Debian est prête à être cloné.&lt;br&gt;
&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;Création du template contenant Docker&lt;/h3&gt;

&lt;p&gt;Pour la création du second template Docker contenant les outils pour Portainer on va cloner le template Debian qu'on vient de créer et lui apporter les modifications nécessaires.&lt;br&gt;
&lt;br&gt;
Pour cela on clic droit sur le template Debian pour afficher le menu et on choisi &lt;code&gt;Clone&lt;/code&gt;.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_docker_install_01.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_docker_install_01_m.png&quot; alt=&quot;PVE Template Docker Install 01&quot;&gt;&lt;figcaption&gt;PVE Template, Docker clone, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On choisi un numéro ID de Vm, comme précédement on en prend un élevé ici &lt;code&gt;910&lt;/code&gt; puis on lui donne un nom, ici &lt;code&gt;template-docker&lt;/code&gt;. On valide. Le clonage prend un peu de temps puis on lance la console de notre nouvelle VM, l'utilisateur et le mot de passe sont ceux donner dans le template Debian.&lt;br&gt;&lt;/p&gt;&lt;a href=&quot;https://chez.jcdenis.fr/public/domotique/pve_template_docker_install_02.png&quot; title=&quot;Ouvrir le média&quot;&gt;&lt;figure class=&quot;media-center&quot;&gt;&lt;img src=&quot;https://chez.jcdenis.fr/public/domotique/.pve_template_docker_install_02_m.png&quot; alt=&quot;PVE Template Docker Install 02&quot;&gt;&lt;figcaption&gt;PVE Template, Docker console, avr. 2024&lt;/figcaption&gt;&lt;/figure&gt;&lt;/a&gt;&lt;p&gt;&lt;br&gt;
On va ensuite enchainer les commandes pour ajouter Docker :&lt;br&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ajout du répertoire de clés pgp&lt;/li&gt;
&lt;li&gt;Ajout du logiciel pgp&lt;/li&gt;
&lt;li&gt;Téléchargement de la clé&lt;/li&gt;
&lt;li&gt;Ajout de la clé&lt;/li&gt;
&lt;li&gt;Mise à jour des dépôts&lt;/li&gt;
&lt;li&gt;Installation de Docker et de tout ce qu'on aura besoin pour nos VM&lt;/li&gt;
&lt;li&gt;Ajout des droits de l'utilisateur sur Docker&lt;/li&gt;
&lt;li&gt;On se délogue pour prendre en compte les droits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Ce qui donne dans la console :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  &amp;quot;deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release &amp;amp;&amp;amp; echo &amp;quot;$VERSION_CODENAME&amp;quot;) stable&amp;quot; | \
  sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo usermod -aG docker $USER
exit&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;On se relogue sur la console et on ajoute l'agent Portainer qui nous servira sur les futurs VM :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -d -p 9001:9001 --name portainer_agent --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/volumes:/var/lib/docker/volumes portainer/agent:2.19.4&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Comme on a modifié le template il faut à nouveau le nettoyer :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;sudo su -
cat /dev/null &amp;gt; /etc/900
cat /dev/null &amp;gt; /var/lib/dbus/900
cloud-init clean
shutdown -h now&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;&lt;br&gt;
Et voila notre seconde template dédié à docker prêt.&lt;br&gt;&lt;/p&gt;

&lt;h3&gt;Création de la machine virtuelle Portainer&lt;/h3&gt;

&lt;p&gt;Ca va aller vite grâce à nos templates !&lt;br&gt;
&lt;br&gt;
On va cloner le Template Docker et ensuite lui assigner une IP fixe dans notre réseau. Pour ma part quand c'est possible, l'ID de ma VM sera également l'IP de la machine virtuelle. Pour cela on se rend dans le shell de notre serveur Proxmox (ou en SSH) et on enchaine les deux commandes suivantes :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;qm clone 910 120 --name portainer
qm set 120 --ipconfig0 ip=10.1.4.120/23,gw=10.1.4.1&lt;/code&gt;&lt;/pre&gt;
&lt;ul&gt;
&lt;li&gt;Je clone mon template d'ID &lt;strong&gt;910&lt;/strong&gt; vers le VM d'ID &lt;strong&gt;120&lt;/strong&gt; que je nomme &lt;strong&gt;portainer&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;J'assigne à la VM &lt;strong&gt;120&lt;/strong&gt; l'IP &lt;strong&gt;10.1.4.120&lt;/strong&gt; dans mon réseau&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Je ne touche ni à la taille du disque, ni à la taille de la mémoire, ni au nombre de processeur de ma futur VM, les valeurs par défaut du template iront très bien. Maintenant on démarre la VM et on se connecte à la console (ou en SSH vers l'IP qu'on vient d'assigner) le login et le mot de passe sont ceux indiqués lors de la création du tout premier template.&lt;br&gt;
Et on exécute un docker de Portainer :&lt;br&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code class=&quot;language-bash&quot;&gt;docker run -d -p 80:8000 -p 443:9443 --name portainer --restart=always -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer-ce:latest&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Et voila, le gestionnaire de Docker de notre domotique est fonctionnel et est accessible par interface web à l'adresse http://10.4.1.120. (sur le port 80)&lt;br&gt;
&lt;br&gt;
Magique.&lt;br&gt;
&lt;br&gt;
Dans le prochain billet je &lt;a href=&quot;https://chez.jcdenis.fr/post/2024/04/03/Ma-domotique-IV-%3A-MQTT&quot;&gt;présente la VM MQTT&lt;/a&gt; qui est le centre d'échange d'informations de ma domotique et l'utilisation de Portainer pour ce premier cas.&lt;/p&gt;</description>
        
              </item>
      </channel>
</rss>
