Utiliser l'Object Storage OVHcloud comme backend Pulumi pour stocker votre état Pulumi
Découvrez comment utiliser un bucket Object Storage comme backend Pulumi pour stocker votre état Pulumi
Objectif
Il est possible de stocker un état Pulumi sur un espace de stockage/backend distant, comme un bucket AWS S3, un Google Cloud Storage (GCS), etc., mais saviez-vous que vous pouvez également stocker vos états Pulumi dans un conteneur (bucket) Object Storage OVHcloud ?
Dans ce tutoriel, vous allez :
- créer un conteneur Object Storage OVHcloud
- vous connecter à Pulumi et initialiser votre backend Pulumi
Prérequis
- Une instance Public Cloud dans votre compte OVHcloud
- L'interface de ligne de commande Pulumi installée
Accès à l'espace client OVHcloud
- Lien direct :
- Pour accéder à vos services :
Public Cloud> Sélectionnez votre projet
Avant de commencer
- Vous devez avoir installé l'interface de ligne de commande Pulumi sur votre machine. Vous pouvez l'installer en suivant les instructions d'installation détaillées.
Pulumi
Pulumi est un outil d'Infrastructure as Code (IaC) qui vous permet de construire vos infrastructures avec un langage de programmation, en Golang par exemple. Les utilisateurs définissent l'état souhaité dans des programmes Pulumi et Pulumi crée les ressources correspondantes.
Pulumi propose une interface de ligne de commande (CLI) intuitive pour provisionner, mettre à jour ou supprimer votre infrastructure. Si vous êtes familier des CLI Docker Compose et Terraform, vous adopterez également l'interface de ligne de commande Pulumi.
Chez OVHcloud, nous avons créé un provider Pulumi que vous pouvez utiliser pour interagir avec les ressources OVHcloud et les gérer.
États et backend Pulumi
Pulumi stocke des métadonnées sur votre infrastructure afin de pouvoir gérer vos ressources cloud, par exemple vos ressources OVHcloud. Ces métadonnées sont appelées state (état) et prennent généralement la forme de fichiers JSON. Chaque stack possède son propre état, et c'est grâce à cet état que Pulumi sait quand et comment créer, lire, supprimer ou mettre à jour des ressources cloud.
Un état Pulumi est mis à jour lorsque vous exécutez les commandes pulumi login, pulumi up ou pulumi destroy.
Par défaut, les fichiers d'état sont stockés dans le cloud Pulumi, mais vous pouvez également les stocker en local. Vous pouvez stocker l'état à distance dans un backend autogéré.
Vous pouvez par exemple stocker votre état Pulumi dans un conteneur Object Storage High Performance d'OVHcloud.
Il existe plusieurs manières de procéder : en utilisant la commande pulumi login ou en configurant un backend dans votre fichier Pulumi.yaml.
Un état est composé de plusieurs fichiers contenus dans un dossier .pulumi :
meta.yaml: il s'agit du fichier de métadonnées. Il ne contient pas d'informations sur les stacks, mais sur le backend lui-même.stacks/: les fichiers d'état actifs de chaque stack (par exempledev.json).locks/: les fichiers de verrouillage facultatifs de chaque stack, si une opération Pulumi est en cours sur celle-ci (par exempledev/$lock.json).history/: l'historique de chaque stack (par exempledev/dev-$timestamp.history.json, où $timestamp enregistre la date et l'heure de création du fichier d'historique).
En pratique
Création d'un conteneur/bucket Object Storage
Vous devez tout d'abord disposer d'un conteneur Object Storage. Si vous n'en possédez pas encore, consultez le guide Créer un conteneur Object Storage.
Pour ce guide, notre conteneur Object Storage possède les caractéristiques suivantes :
- une classe
Object Storage - High Performance - situé dans la région
GRA - avec un utilisateur nouvellement créé
- nommé
pulumi
Conservez les identifiants de votre Object Storage : vous utiliserez la clé d'accès Object Storage et la clé secrète Object Storage dans les commandes export à venir.
Cliquez sur pulumi pour accéder au bucket et afficher ses informations, dont l'Endpoint, qui vous sera utile.
Exportez les identifiants de votre Object Storage dans des variables d'environnement :
Configuration du backend Pulumi et connexion
Il existe plusieurs manières de définir le backend permettant de stocker un rapport Pulumi dans un backend distant. Suivez celle que vous préférez.
Exécutez la commande pulumi login et passez directement en paramètre l'URL du backend S3 :
Comme vous pouvez le constater, dans les deux solutions, nous avons défini tous les paramètres nécessaires pour accéder au bucket Object Storage OVHcloud existant :
- endpoint=s3.gra.perf.cloud.ovh.net
- region=gra (ou la région de votre bucket Object Storage OVHcloud)
Vous pouvez maintenant coder votre programme Pulumi. Après l'exécution de la commande pulumi up, votre fichier d'état Pulumi sera stocké dans un conteneur Object Storage OVHcloud.
Aller plus loin
Échangez avec notre communauté d'utilisateurs.