IBM Cloud Docs
Utilisation de Terraform pour configurer Schematics

Utilisation de Terraform pour configurer Schematics

Terraform on IBM Cloud® permet un provisionnement prévisible et cohérent des services IBM Cloud pour construire rapidement des environnements complexes et multi-niveaux selon les principes de l'Infrastructure as Code IaC. De même, vous pouvez automatiser la mise à disposition, la mise à jour et la suppression de votre espace de travail IBM Cloud Schematics et des instances d'actions à l'aide de Terraform.

Vous recherchez un Terraform géré sur une solution IBM Cloud ? Essayez IBM Cloud Schematics. Avec Schematics, vous pouvez utiliser le langage Terraform qui vous est familier, mais vous n'avez pas à vous soucier de la configuration et de la maintenance de la ligne de commande Terraform et du plug-in fournisseur IBM Cloud Provider plug-in. Schematics fournit également des modèles Terraform prédéfinis que vous pouvez installer à partir du catalogue IBM Cloud.

Avant de commencer, assurez-vous de disposer de l'accès requis pour créer et utiliser l'espace de travail IBM Cloud Schematics.

Exemple - Création des espaces de travail Schematics à l'aide de Terraform

Pour créer un espace de travail Schematics à l'aide de Terraform, procédez comme suit:

  1. Suivez le tutoriel d'initiation de Terraform surIBM Cloud pour installer l'interface de ligne de commande Terraform et configurer IBM Cloud Provider Plug-in for Terraform. Le plug-in abstrait les IBM Cloud APIs qui sont utilisés pour fournir, mettre à jour ou supprimer les ressources Schematics

  2. Créez les fichiers de configuration Terraform nommés main.tf, terraform.tfvarset versions.tf.

    Vous pouvez utiliser l'exemple Terraform d'URL Githttps://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway. Cet exemple utilise une instance de service afin de configurer une API pour un service IBM Cloud de votre choix. Vous pouvez spécifier le noeud final d'API que vous voulez utiliser pour accéder à votre service et définir des clés d'abonnement de manière à pouvoir consommer votre API en toute sécurité.

    Si un espace de travail est créé dans une autre région que us, vous devez définir le nœud final de l'API sur cette région. Par exemple, si vous spécifiez la région eu, le noeud final d'API doit être spécifié sous la forme IBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.com dans la variable d'environnement. Pour plus d'informations sur les emplacements de l'espace de travail Schematics et les points de terminaison à utiliser, voir Où mes informations sont-elles stockées ?

    Ensuite, créez l'espace de travail Schematics tf-testwks-apigwy dans le groupe de ressources default de votre région. Cet espace de travail pointe vers un modèle Terraform de votre choix qui requiert la version Terraform terraform_v1.5.

    versions.tf

    Exemple de fichier versions.tf pour spécifier la version du fournisseur dont vous avez besoin pour créer l'espace de travail.

      terraform {
      required_version = ">=1.0.0, <2.0"
        required_providers {
          ibm = {
            source = "IBM-Cloud/ibm"
          }
        }
      }
    

    terraform.tfvars

    Exemple de fichier terraform.tfvars pour stocker des informations sensibles, telles que des données d'identification. Pour plus d'informations, voir Référencement de données d'identification à partir d'un fichier terraform.tfvars. Pour créer des clés d'API, voir Création de clés d'API.

    schematics_workspace_name="tf-testwks-apigwy"
    schematics_workspace_description="Sample workspace created with terraform with URL"
    schematics_workspace_type="terraform_v1.5"
    schematics_workspace_location="us-south"
    schematics_workspace_resource_group="default"
    ibmcloud_api_key="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    

    main.tf

    Consultez l'exemple de fichier main.tf suivant. Ce fichier appelle les variables du fichier terraform.tfvars à l'aide de l'URL Git, puis crée un espace de travail Schematics à l'aide de votre clé d'API IBM Cloud.

    variable "schematics_workspace_name" {}
    variable "schematics_workspace_description" {}
    variable "schematics_workspace_type" {}
    variable "schematics_workspace_location" {}
    variable "schematics_workspace_resource_group" {}
    variable "ibmcloud_api_key" {}
    
    resource "ibm_schematics_workspace" "schematics_workspace_instance" {
    name = var.schematics_workspace_name
    description = var.schematics_workspace_description
    location = var.schematics_workspace_location
    resource_group = var.schematics_workspace_resource_group
    tags = ["sample"]
    template_env_settings = [
        { env1 = "val1" },
        { env2 = "val2" }
    ]
    template_type= var.schematics_workspace_type
    template_git_url = "https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway"
    }
    
    provider "ibm" {
    region           = "us-south"
    ibmcloud_api_key = var.ibmcloud_api_key
    }
    
    

    Le tableau ci-après répertorie les paramètres pris en charge lorsque vous créez et initialisez une instance de service avec Terraform. Pour plus d'informations sur les paramètres détaillés de création d'un espace de travail, voir ibm_schematics_workspace ressource.

    Paramètres pris en charge pour la création d'espaces de travail Schematics avec Terraform.
    Paramètre Description
    description Description de l'espace de travail.
    location Emplacement dans lequel créer votre espace de travail Schematics et exécuter des actions Schematics.
    resource_group ID du groupe de ressources dans lequel mettre à disposition l'espace de travail.
    name Nom de votre espace de travail. Le nom peut comporter jusqu'à 128 caractères et peut inclure des caractères alphanumériques, des espaces, des tirets et des traits de soulignement. Lorsque vous créez un espace de travail pour votre propre modèle Terraform, envisagez d'inclure le composant de microservice que vous avez configuré avec votre modèle Terraform et l'environnement IBM Cloud dans lequel vous souhaitez déployer vos ressources dans votre nom.
    tags Liste des étiquettes associées à l'espace de travail.
    template_env_settings Liste des variables d'environnement à appliquer lors de l'exécution d'une action Terraform.
    template_git_url URL du référentiel Git dans lequel se trouvent les détails de configuration pour la mise à disposition de la ressource.
    template_type Spécifiez la version de Terraform à appliquer dans l'espace de travail Schematics.
  3. Initialisez l'interface de ligne de commande de Terraform.

    terraform init
    

    Si le chemin d'accès à la variable d'environnement pour Terraform n'est pas défini, l'erreur command not found: terraform peut s'afficher. Corrigez l'erreur en définissant le chemin d'accès au répertoire d'installation de Terraform.

  4. Créez un plan d'exécution Terraform. Le plan d'exécution Terraform récapitule toutes les actions à exécuter pour créer l'espace de travail Schematics sur votre compte.

    terraform plan
    
  5. Créez l'instance d'espace de travail Schematics et la stratégie d'accès IAM dans IBM Cloud.

    terraform apply
    

    Pour plus d'informations sur le dépannage des erreurs de la commande terraform apply, voir trouver la cause première de l'échec de l'application Schematics

  6. Dans le tableau de bord Schematics, vérifiez que l'espace de travail tf-testwks-apigwy a été créé Les ressources sont fournies à partir de la liste de ressources IBM Cloud Schematics

  7. Vérifiez que la règle d'accès a été affectée. Pour plus d'informations, voir Vérification de l'accès affecté à la console.

Étape suivante ?

Maintenant que vous avez créé votre premier espace de travail Schematics avec Terraform sur IBM Cloud, vous pouvez :

  • Découvrez comment créer une ressource de travail IBM Cloud Schematics pour exécuter votre modèle Terraform dans IBM Cloud
  • Pour exécuter Ansible playbooks dans IBM Cloud, réservez la ressource Action IBM Cloud Schematics.
  • Explorez d'autres ressources et sources de données Terraform prises en charge pour IBM Cloud Schematics ou vérifiez les autres arguments et attributs que vous pouvez utiliser pour les ressources Terraform utilisées dans l'exemple.