Aller au contenu
Infrastructure as Code medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Pulumi - preparer un projet local et son backend

6 min de lecture

logo pulumi

Ce guide vous mene d’un dossier vide a un projet Pulumi pret pour un premier lab local sur KVM/libvirt. Vous allez generer le squelette Python, preparer l’environnement virtuel, activer un backend local, creer une stack dev et ajouter le package libvirt. A la fin, vous ne dependez ni d’un cloud public ni d’un token Pulumi Cloud pour commencer.

La sequence ci-dessous a ete rejouee depuis un dossier vide le 1 avril 2026. Elle sert de base de reference pour le guide pratique suivant.

Ce guide existe pour separer clairement trois sujets que beaucoup de contenus melangent trop tot : le runtime du projet, le backend et la stack, puis la premiere ressource provisionnee. Quand vous arriverez au guide de la VM, vous saurez deja d’ou vient un probleme eventuel.

  • un dossier de projet Pulumi Python ;
  • un environnement virtuel venv ;
  • une stack locale dev ;
  • la configuration libvirt:uri vers qemu:///system ;
  • le package libvirt pour ecrire ensuite votre premiere stack.

Verifiez d’abord que votre machine repond aux commandes suivantes :

Fenêtre de terminal
pulumi version
python3 --version
virsh --version
virsh list --all

Si virsh ne fonctionne pas deja, corrigez d’abord votre environnement libvirt/KVM. Ce guide suppose que l’acces a qemu:///system est deja operationnel.

Commencez dans un dossier vide :

Fenêtre de terminal
mkdir -p ~/pulumi-kvm-local
cd ~/pulumi-kvm-local
pulumi new python --generate-only --yes \
--name pulumi-kvm-local \
--description "Premiere stack Pulumi locale sur KVM/libvirt"

L’option --generate-only est utile ici parce qu’elle vous laisse maitriser la suite du bootstrap au lieu de lancer immediatement un deploiement.

Vous obtenez alors un squelette minimal avec au moins :

  • Pulumi.yaml ;
  • __main__.py ;
  • requirements.txt.

Le template Python attend un environnement virtuel. Creez-le puis installez les dependances de base du projet.

Fenêtre de terminal
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt

Verification : pip install -r requirements.txt doit installer le package Pulumi sans erreur.

Le provider libvirt valide dans le lab local est ajoute via le bridge Terraform provider :

Fenêtre de terminal
pulumi package add terraform-provider dmacvicar/libvirt

Cette commande genere le SDK local puis l’ajoute aux dependances du projet.

Vous pourrez ensuite l’importer en Python avec :

import pulumi_libvirt as libvirt

Verification : a la fin de la commande, Pulumi annonce Added package libvirt.

Le backend local permet d’apprendre Pulumi sans service distant.

Fenêtre de terminal
pulumi login --local

Verification : la commande doit confirmer une connexion de type file://~.

Etape 5 - Initialiser la stack et la config libvirt

Section intitulée « Etape 5 - Initialiser la stack et la config libvirt »

Creer la stack maintenant permet de separer clairement le projet, la configuration et le state.

Fenêtre de terminal
pulumi stack init dev
pulumi config set libvirt:uri qemu:///system --stack dev

Vous pouvez verifier la configuration avec :

Fenêtre de terminal
pulumi stack ls
pulumi config get libvirt:uri --stack dev

La stack dev doit apparaitre et la commande de lecture de configuration doit retourner qemu:///system.

Vous avez un projet local pret pour le premier guide pratique :

  • le runtime Python est initialise ;
  • le package libvirt est disponible ;
  • le backend local est actif ;
  • la stack dev est creee ;
  • la cible libvirt est configuree.

La prochaine etape consiste a remplacer le code par une stack qui cree un reseau, un disque clone, un disque cloud-init et une vraie VM KVM.

SymptomeCause probableCorrectif
pulumi: command not foundLe CLI Pulumi n’est pas disponible dans le shell courantVerifiez l’installation du CLI et votre PATH avant de reprendre
permission denied sur qemu:///systemVotre utilisateur n’a pas l’acces libvirt necessaireCorrigez l’appartenance au groupe ou la configuration libvirt avant de continuer
Added package libvirt n’apparait pasLa commande pulumi package add a echoueRelisez le message d’erreur et rejouez la commande dans le projet active
stack 'dev' already existsLa stack a deja ete creeeUtilisez pulumi stack select dev au lieu de pulumi stack init dev
  • Le demarrage valide repose sur pulumi new python --generate-only.
  • Le bon fichier de dependances du template Python est requirements.txt.
  • pulumi login --local suffit pour apprendre Pulumi sans backend SaaS.
  • La stack dev et la config libvirt:uri doivent exister avant le premier preview utile.

Ce site vous est utile ?

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

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn