Le ven. 24 mai 2024 à 21:42, Edgar Bonet <guilde@???> a écrit :
[...]
> J'ai déjà entendu parler de Proxmox, mais j'aimerais éviter de passer
> par un nuage, fut-il « on premises ». Je préfère faire ça sur mon PC. Il
> y a peut-être moyen d'installer Proxmox dans une VM, mais ça va faire un
> peu trop « Inception », non ?
Non, tu ne peux pas. Proxmo est l'ensemble des outils autour d'un
virtualiseur (chroot et kvm aux dernières nouvelles) : mettre un
virtualiseur dans un virtualiseur n'a pas de sens (mais tu peux mettre
des conteneur dans une machine virtualisé sans souci).
> > L'avantage [de la virtualisation complète] est multiple : totalement
> > iso avec une installation sur un système natif (donc ta valide est
> > totale, contrairement au chroot au le noyau est celui de ton système
> > par exemple).
>
> C'est bien ça l'aspect qui me séduit : la qualité de validation.
>
> > Ton temps d'installation est peu ou prou celui que tu aurais
> > en installant une machine...
>
> Avec Vagrant c'est bien plus rapide que ça, car basé sur des images type
> « cloud », prêtes à l'emploi.
Sauf que tes images, tu ne connais pas trop comment elles sont
fabriquées. Et les fabriquer toi-même revient au même temps
qu'installer une VM (c'est même souvent plus compliqué pour un
conteneur). Donc, pour faire de la qualité, le temps est le même dans
les deux cas...
>
> > Le gros désavantage est la ressource [...].
>
> Ce n'est pas un problème pour moi. J'ai un gros PC au labo, et je ne
> fais jamais tourner plus de 6 VM en même temps. Je suis large côté
> ressources.
Tu peux installer Proxmox sur ta machine directement (c'est un poil
compliqué et proxmox livre directement des images de Debian à
installer). Sinon, tu peux installer libvirtd.
Pour installer Proxmox directement sur Debian :
https://pve.proxmox.com/wiki/Install_Proxmox_VE_on_Debian_12_Bookworm
(ça n'a rien de très compliqué non plus).
> > En plus, si tu n'as pas besoin de graphisme, tu peux très bien avoir
> > peu de ressources...
>
> Oui, oui ! Je préfère me passer de l'interface graphique si c'est
> possible !
Tu peux dans les deux cas.
https://pve.proxmox.com/wiki/Command_Line_Tools
https://debian-facile.org/atelier:chantier:virtualisation-avec-libvirt
Encore une fois, c'est bien pour automatiser certains trucs, mais dès
que tu veux manipuler un peu, voir l'ensemble, passer sur l'interface
graphique aide. L'avantage de ces solutions est que les deux sont
possibles simultanément.
Tu noteras qu'avec libvirtd (virsh en réalité), tu peux gérer tes
conteneurs Valgrant... les « shell de virtualisation » sont souvent
agnostiques du point de vue de la virtualisation (sauf pour créer le
point de virtualisation d'origine).
> > Après, je n'ai pas compris dans le détail ce que tu fais.
>
> Je crée une VM pour chaque distribution : Ubuntu (22.04 et 24.04),
> Debian (11, 12 et testing) et Rocky Linux 9. Sur chacune de ces VMS, je
> fais :
>
> 1. apt|dnf install les paquets qui vont bien ;
>
> 2. télécharger/compiler/installer les dépendance qui ne sont pas
> packagées par la distribution ;
>
> 3. télécharger/compiler/installer feeLLGood (le soft qu'on développe) ;
>
> 4. lancer un test basique sur un problème minimaliste.
>
> Le but est de vérifier que la procédure d'installation que j'ai
> documentée[1] fonctionne. Ça a l'air bête dit comme ça, mais ça ne va
> pas de soi. Et tant qu'on y est, vérifier que le soft marche.
Si je comprends, une fois que tu as fait cela, les VM sont bonnes pour
valider ou c'est le fait de faire cela qui valide le tout ? En tout
cas, tout cela s'automatise parfaitement (et prend place dans un truc
qu'on appelle alors l'intégration continue).
Si tu dois installer avant, tu installes une fois ta VM et tout ton
bazar et tu gardes au chaud cette VM de référence. Tu la dupliques à
chaque fois que tu en as besoin et tu fais ta tambouille sur la
dupliquée (que tu vires une fois la validation obtenue)
Si tu dois installer ta tambouille pour valider aussi, tu installes
une fois la VM de référence nue et c'est elle que tu dupliques.
Pour automatiser ce que tu as à faire, tu as pléthore d'outils pour
t'aider. Tu peux tout scripter (mais cela t'obliges à mettre ton
environnement au point) ou bien utiliser des outils de déploiement
automatique (comme ansible qui est un truc décentralisé ou il existe
des trucs centralisés)
> > qemu virtualise tout et est extrêmement lent.
>
> C'est sûr que je ne voudrais pas émuler un x64_64 sur un x86_64... Il
> m'avait pourtant semblé lire que qemu savait se reposer sur KVM dans le
> cas x64_64/x64_64, et que c'était quasiment « l'interface utilisateur »
> de KVM.
Non. Historiquement, il y a qemu qui est un *émulateur* : cela veut
dire que toutes les couches de l'ordinateur sont virtualisées. F
Bellard, qui a écrit (entres autres merveilles) le premier qemu a
ensuite proposé de « bypassé » certaines couches en travaillant
directement avec le noyau Linux pour accélérer drastiquement le
traitement. Il a vendu quelque temps sa solution, puis l'a libérée.
C'est devenu kvm et est intégrée au noyau depuis des lustres. XEN, un
virtualiseur plus ancien, t'oblige à avoir un noyau spécifique (ou
t'obligeait : je n'ai pas trop suivi le développement de XEN). J'ai
travaillé sur XEN il y a un siècle et il avait déjà tous les trucs les
plus puissants (comme ajouter de la RAM à la volée...). Mais depuis
kvm a rattrapé son retard. Pour ton usage de toute façon, tous ces
trucs sont overkill : c'est bon quand on fait de l'administration pure
sur des grosses fermes...
Du coup, il y a un gros air de famille entre qemu et kvm, ce qui se
traduit par le fait que toutes les commandes sont identiques, en
substituant qemu par kvm dans le nom de commande. En gros.
[...]
> Bon, avec tout ça, j'ai éliminé l'option conteneurs. Il me reste à
> étudier les outils en ligne de commande qui viennent avec libvirt.
> Quelqu'un connaît ?
Je t'ai donné les liens là-haut.
Je te conseille malgré tout un apprentissage dual avec l'interface
graphique pour t'y habituer.
PK
--
|\ _,,,---,,_ Patrice KARATCHENTZEFF
ZZZzz /,`.-'`' -. ;-;;,_ mailto:patrice.karatchentzeff@gmail.com
|,4- ) )-,_. ,\ ( `'-'
'---''(_/--' `-'\_)