Créer une configuration Terraform
Lors de l'organisation des solutions Service Catalog de votre organisation, vous pouvez créer une configuration Terraform, ou configuration, que vos utilisateurs déploient à l'aide de Terraform. Une fois la configuration créée, vous pouvez la partager avec des utilisateurs en l'attribuant aux catalogues.
Dans ce guide, vous utilisez Cloud Build pour exécuter des commandes Terraform dans la dernière version de l'image Docker de Terraform, et vous utilisez Cloud Storage pour stocker et gérer les ressources Terraform, telles que les modules et les fichiers d'état.
Pour obtenir des ressources et des conseils sur l'utilisation de Terraform, consultez la page Utiliser Terraform avec Google Cloud.
Avant de commencer
Vous devez disposer des rôles IAM (Identity and Access Management) suivants :
- Administrateur du catalogue (
roles/cloudprivatecatalogproducer.admin
) OU Gestionnaire du catalogue (roles/cloudprivatecatalogproducer.manager
) pour le projet Google Cloud pour lequel Service Catalog est activé. - Administrateur de l'espace de stockage (
roles/storage.admin
) pour le projet dans lequel Service Catalog est activé. Éditeur Cloud Build (
roles/cloudbuild.builds.editor
) pour le projet dans lequel vous souhaitez créer la solution.Si vous ne disposez pas de ces rôles, contactez l'administrateur de votre organisation pour demander l'accès.
- Administrateur du catalogue (
Configurez Cloud Build dans le projet dans lequel vous créez la configuration :
-
Enable the Cloud Build API.
L'activation de l'API crée automatiquement un compte de service Cloud Build que vous utiliserez à l'étape suivante.
Attribuez les rôles IAM suivants au compte de service :
- Éditeur de projet (
roles/editor
) - Administrateur de l'espace de stockage (
roles/storage.admin
)
Pour connaître les étapes à suivre pour attribuer des rôles, consultez la page Configurer l'accès pour le compte de service Cloud Build.
- Éditeur de projet (
-
Importer des fichiers de configuration dans Cloud Storage
Vous utilisez Cloud Storage pour gérer vos fichiers de configuration Terraform pour Service Catalog.
Créer un bucket Cloud Storage
Pour configurer Cloud Storage, créez un bucket dans le projet où vous avez activé Service Catalog pour votre organisation :
- In the Google Cloud console, go to the Cloud Storage Buckets page.
- Click Create bucket.
- On the Create a bucket page, enter your bucket information. To go to the next
step, click Continue.
- For Name your bucket, enter a name that meets the bucket naming requirements.
-
For Choose where to store your data, do the following:
- Select a Location type option.
- Select a Location option.
- For Choose a default storage class for your data, select a storage class.
- For Choose how to control access to objects, select an Access control option.
- For Advanced settings (optional), specify an encryption method, a retention policy, or bucket labels.
- Click Create.
Activer la gestion des versions d'objets
Vous devez utiliser la fonctionnalité de gestion des versions d'objets dans votre bucket pour éviter que votre configuration Terraform ne soit supprimée ou écrasée. Pour activer la gestion des versions d'objets, consultez la documentation Cloud Storage sur l'utilisation de la gestion des versions d'objets.
Accorder l'accès à votre bucket
Lorsque les utilisateurs de votre organisation déploient la configuration, leur compte de service Cloud Build doit disposer d'un accès en lecture à votre bucket. Si votre bucket est stocké dans le projet Cloud dans lequel les utilisateurs déploient la configuration, le compte de service dispose déjà de cet accès.
Si vos utilisateurs déploient la configuration dans un autre projet Cloud, accordez l'accès au bucket en utilisant l'une des méthodes suivantes :
Attribuez le rôle Lecteur des objets de l'espace de stockage (
roles/storage.objectViewer
) aux comptes de service Cloud Build de vos utilisateurs ou à une ressource Google Cloud dans laquelle vos utilisateurs déploient des configurations Terraform, telle qu'un projet, un dossier ou une organisation.Utilisez une liste de contrôle d'accès (LCA) pour gérer l'accès au bucket.
Pour en savoir plus sur la gestion des accès aux buckets, consultez la page Présentation du contrôle des accès de Cloud Storage.
Créer et importer un module Terraform
Après avoir configuré votre bucket Cloud Storage, vous devez créer et importer un module Terraform, qui est un conteneur de tous vos fichiers de configuration. Service Catalog utilise le module pour générer automatiquement un fichier de schéma JSON afin de définir les variables de votre configuration.
Lorsque vous appelez des modules en dehors du répertoire actuel, utilisez le chemin d'accès distant au lieu d'un chemin d'accès relatif. Par exemple, au lieu de source = "../../"
, utilisez source = "GoogleCloudPlatform/cloud-run/google"
.
Pour obtenir les modules correspondant aux cas d'utilisation courants de Google Cloud, consultez le kit Cloud Foundation.
L'exemple de code suivant illustre un fichier de configuration Terraform main.tf
:
variable "machine_type" {
type = string
default = "n1-standard-1"
}
variable "zone" {
type = string
default = "us-central1-a"
}
variable "deployment_identifier" {
description = "The unique name for your instance"
type = string
}
resource "google_compute_instance" "default" {
name = "vm-${var.deployment_identifier}"
machine_type = var.machine_type
zone = var.zone
boot_disk {
device_name = "boot"
auto_delete = true
initialize_params {
image = "debian-cloud/debian-11"
}
}
network_interface {
network = "default"
access_config {
// Ephemeral IP
}
}
}
Après avoir créé votre module, compressez le ou les fichiers dans un fichier ZIP. Assurez-vous que le module est stocké à la racine du fichier ZIP.
Pour vous assurer que le module est correctement stocké lorsque vous compressez vos fichiers Terraform, exécutez la commande suivante :
zip solution.zip file1.tf file2.tf file3.tf
Importez ensuite le fichier ZIP dans votre bucket. Pour savoir comment importer un fichier ZIP, consultez la documentation de Cloud Storage sur l'importation d'objets.
Créer la configuration dans Service Catalog
Après avoir configuré un bucket Cloud Storage avec votre module Terraform, vous créez une solution Service Catalog qui inclut le bucket.
Pour créer la configuration Terraform en tant que solution Service Catalog, procédez comme suit :
Accédez à la page Solutions d'administrateur de Service Catalog dans Cloud Console.
Accéder à la page SolutionsCliquez sur Sélectionner pour choisir le projet Google Cloud.
Cliquez sur CRÉER UNE SOLUTION. Dans la liste déroulante, sélectionnez Créer une configuration Terraform.
Saisissez un nom, une description et un slogan pour votre configuration Terraform. Le slogan est une brève description d'une solution que les utilisateurs voient lorsqu'ils parcourent Service Catalog.
Dans le champ Lien vers la configuration Terraform, indiquez le lien vers le bucket Cloud Storage contenant le fichier ZIP du module Terraform, par exemple
gs://my-terraform-bucket/my-zip-file.zip
.Si vous le souhaitez, importez une icône pour la solution. Les dimensions recommandées pour une icône sont de 80 x 80 pixels.
Si vous le souhaitez, indiquez un lien vers l'assistance et les coordonnées pour le créateur.
Si vous le souhaitez, ajoutez un lien vers la documentation de la solution.
Sélectionnez la version Terraform que vous souhaitez utiliser pour déployer la solution.
Cliquez sur CRÉER.
La solution est créée et apparaît sur la page Solutions de l'administrateur Service Catalog.
La capture d'écran suivante illustre la création d'une configuration Terraform :
Étapes suivantes
- Attribuez la configuration Terraform à un catalogue afin que les utilisateurs de votre organisation puissent accéder à la solution et la déployer.
- Mettez à jour une solution avec les dernières informations de la configuration Terraform.