Aller au contenu
English
Infrastructure as Code medium

Formation Pulumi - provisionnement local avec KVM

8 min de lecture

logo pulumi

Cette section vous fait démarrer Pulumi sans compte cloud et sans première demo deforme par un provider public. Vous allez comprendre le modèle mental de l'outil, identifier le role d'une stack, du state et du provider, voir quels langages sont disponibles, puis suivre un parcours local valide sur KVM/libvirt.

Le point de départ n'est pas un bucket AWS ni un exemple trop abstrait. Le parcours actuel va jusqu'à une vraie VM KVM qui demarre localement, après la création d'un réseau NAT, d'un disque clone et d'un disque cloud-init. L'objectif est de montrer ce que Pulumi fait vraiment, avant d'ouvrir vers les sujets plus larges comme les composants, les secrets, la CI ou le multi-cloud.

Le redémarrage de la section Pulumi se fait volontairement en petit périmètre, mais sur une base testée.

ModuleRoleStatut
Hub PulumiVue d'ensemble, concepts, runtimes et parcoursDisponible
Concepts, stacks et stateModèle mental du projet, du backend, du state et du previewDisponible
Préparation localeProjet Python, backend local, stack, provider libvirtDisponible
Première stack KVMRéseau, disque, cloud-init et VM visible dans virshDisponible
Inputs, outputs, config et secretsParamétrage de stack, outputs utiles et secret masqueDisponible
Structure de projet et composantsDécoupage du projet Python et création d'un ComponentResource reutilisableDisponible
Preview, tests et CICompilation Python, tests unitaires, preview non interactif et workflow self-hostedDisponible
Sécuriser Pulumi en équipePassphrase non vide, permissions strictes et workflow self-hosted sans fuite de secretsDisponible

Pulumi peut s'appuyer sur plusieurs runtimes. C'est un de ses points forts, mais aussi une source de confusion au début si on ne clarifie pas le sujet.

  • TypeScript / JavaScript : très apprecies dans les équipes déjà alignees sur l'écosystème Node.js.
  • Python : excellent choix pour apprendre, parce que la syntaxe laisse bien voir les ressources et les objets manipules.
  • Go : utile pour les équipes qui privilegient le typage strict et les binaires simples a intégrer dans des outillages plateforme.
  • C# / .NET : pertinent dans les environnements déjà structures autour de cet écosystème.
  • Java : possible également pour des équipes qui veulent rester sur leur langage habituel.
  • YAML : supporte, mais moins representatif de la promesse centrale de Pulumi, qui est justement de s'appuyer sur un langage generaliste.

Le runtime change, mais le modèle IaC reste le même : ressources, dépendances, state, preview, apply et verification.

Cette section prend Python comme langage de reference pour une raison pédagogique.

  • Python est lisible très vite, même pour un lecteur qui debute sur Pulumi.
  • Il permet de voir clairement les objets Provider, Network, Volume, CloudinitDisk et Domain.
  • Il s'intègre bien dans un lab Linux local avec KVM/libvirt.
  • Il ajoute moins de bruit annexe qu'un premier guide en Go ou en TypeScript avec davantage d'outillage autour.

Ce choix ne dit pas que Python est le seul bon runtime pour Pulumi. Il dit simplement que c'est un bon runtime pour apprendre.

Pourquoi Pulumi attire vite les équipes techniques

Section intitulée « Pourquoi Pulumi attire vite les équipes techniques »

Pulumi se distingue des autres outils IaC parce qu'il vous laisse décrire l'infrastructure avec un langage generaliste. Cette approche parle souvent plus vite aux développeurs, mais elle peut aussi tromper au début : on écrit en Python, TypeScript, Go ou C#, pourtant le modèle reste bien un modèle de ressources, de state et de réconciliation.

Autrement dit, le langage change, mais les questions importantes restent les mêmes : qu'est-ce qui est déjà cree, qu'est-ce qui doit changer, dans quel ordre, et comment vérifier le résultat. C'est pour cela que cette section commence par un lab local très simple a observer.

Avant d'entrer dans les guides, gardez ces repères en tête :

  • Projet : le dossier qui contient votre code Pulumi, son runtime et ses dépendances.
  • Stack : une instance du projet avec sa propre configuration et son propre state.
  • Provider : le composant qui sait parler a la plateforme cible, ici libvirt.
  • State : la mémoire de ce que Pulumi a cree, modifie ou supprime.
  • Preview : la simulation de ce qui va changer avant application.
  • Destroy : le retour a un état propre pour rejouer le scenario.

Le point le plus important pour un debutant est simple : Pulumi n'est pas un script shell imperatif deguise. Vous décrivez des ressources, puis Pulumi calcule les operations a exécuter.

Ce que vous saurez faire après les premiers guides

Section intitulée « Ce que vous saurez faire après les premiers guides »

Une fois les deux premiers guides termines, vous saurez :

  • initialiser un projet Pulumi Python depuis un dossier vide ;
  • activer un backend local avec pulumi login --local ;
  • ajouter le provider libvirt et comprendre son role ;
  • créer un réseau, un disque clone, un disque cloud-init et une VM KVM ;
  • vérifier le résultat avec virsh ;
  • detruire proprement la stack pour rejouer le scenario.

Commencez par préparer le projet local et le backend. Passez ensuite au guide pratique qui fait démarrer une première VM KVM visible dans libvirt.

Ce que cette section ne cherche pas encore a couvrir

Section intitulée « Ce que cette section ne cherche pas encore a couvrir »

Le but n'est pas encore de traiter tout l'écosystème Pulumi. Les sujets suivants restent a produire après validation en lab :

  • les backends distants partages avec verrouillage et chiffrement KMS ;
  • l'ouverture vers des providers cloud publics ou hybrides.

Cette limite est volontaire. Une section qui promet trop tot plus qu'elle ne teste finit par devenir fragile.

  • Pulumi reste un outil IaC pilote par un state, même si le code est écrit dans un langage generaliste.
  • Cette section part sur Python parce qu'il rend le modèle plus lisible pour debuter.
  • Le meilleur point d'entrée actuel est un workflow local sur KVM/libvirt.
  • Le backend local suffit pour apprendre les notions essentielles sans token SaaS.
  • Le premier objectif n'est pas le cloud public, mais une vraie VM locale créée puis détruite proprement.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn