Création d'espaces de travail et importation de votre Terraform

Utilisez un « Schematics » pour gérer vos ressources IBM Cloud Schematics à l'aide de Terraform. Les paramètres de l'espace de travail définissent le moteur Terraform hébergé dans un référentiel Git à utiliser, ainsi que les variables d'entrée permettant de personnaliser le modèle.

IBM Cloud Schematics abandonne les anciennes versions de Terraform et introduit la prise en charge des versions plus récentes de Terraform. Pour plus d'informations, consultez le cycle de vie de la dépréciation de Terraform sur Schematics ainsi que le calendrier de dépréciation.

Avant de commencer

Assurez-vous que les points de terminaison location et url pointent vers la même région lorsque vous créez ou mettez à jour les espaces de travail et les actions Schematics. Pour plus d'informations sur l'emplacement et le noeud final, voir Où sont stockées vos informations?

Création d'un espace de travail à l'aide de l'interface utilisateur

  1. Connectez-vous à la consoleIBM Cloud
  2. Cliquez sur l'icône Menu > Platform Automation > Schematics > Terraform > Create workspace.
    • Dans la section « Spécifier un modèle » :
      • URL dépôt GitHub, GitLab, ou Bitbucket- <provide your Terraform Git repository URL.

      • Jeton d'accès personnel- <leave it blank>. Vous pouvez cliquer sur Open reference picker pour sélectionner une clé de référence Secrets Manager. Pour plus d'informations, voir la création d'une instance Secrets Manager.

      • Version de Terraform - terraform_v1.4. Vous devez sélectionner la version 1.4 de Terraform ou une version ultérieure. Par exemple, si vos modèles Terraform sont créés à l'aide de Terraform v1.4, sélectionnez le paramètre « Terraform version » comme suit terraform_v1.4. Vous pouvez choisir Terraform_v1.5 pour utiliser la version 1.5 de Terraform, ou terraform_v1.4 pour utiliser la version 1.4 de Terraform. Lorsque vous spécifiez « terraform_v1.5 », cela signifie que les utilisateurs peuvent disposer d’adresses telles que Terraform v1.5.0, v1.5.1 ou v1.5.7, etc. Schematics prend en charge Terraform_v1.x et prévoit également de mettre à disposition de nouvelles versions après la publication de 30 to 45 days de la version du langage de configuration HashiCorp (HCL).

        Schematics prend en charge l'édition actuelle de Terraform v1.4, via Terraform_v1.6. Terraform doit utiliser une contrainte de version, telle que >, >= ou ~> pour l' required_version, afin de sélectionner automatiquement la version actuelle.

        terraform {
        required_version = "~> 1.1"
        }
        
      • Cliquez sur Next.

    • Dans la section « Détails de l'espace de travail ». Entrez un nom pour votre workspace name. 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.
      • Nom de l'espace de travail: schematics-agent-service.
      • Balises en tant que my-tags. Facultatif : entrez des étiquettes pour votre espace de travail. Vous pourrez utiliser ces balises ultérieurement pour retrouver plus rapidement votre espace de travail.
      • Groupe de ressources en tant que default ou autre groupe de ressources pour cet espace de travail.
      • Location en tant que North America ou autre région pour cet espace de travail. Choisissez l'endroit où vous souhaitez créer votre espace de travail L'emplacement détermine où s'exécutent vos tâches Schematics, et où sont stockées les données de votre espace de travail? Vous pouvez choisir entre une région, comme l'Amérique du Nord, ou une grande agglomération, comme Francfort ou Londres. Si vous sélectionnez un lieu, Schematics déterminera celui-ci en fonction des disponibilités. Si vous sélectionnez une ville métropolitaine, votre espace de travail est créé à cet emplacement. Pour plus d'informations sur le lieu de stockage de vos données, consultez la rubrique « Où vos informations sont-elles stockées? » Le site que vous choisissez est indépendant de la ou des régions dans lesquelles vous souhaitez provisionner vos ressources cloud. La console ne prend pas en charge tous les emplacements disponibles. Pour créer l'espace de travail dans un autre emplacement, utilisez plutôt l'interface de ligne de commande ou l'API.
      • Facultatif : entrez un nom descriptif pour votre espace de travail.
      • Cliquez sur Next.
    • Cliquez sur Create. Votre espace de travail est créé à l'état Brouillon et la page Paramètres de l'espace de travail s'ouvre.

Importation de votre modèle Terraform

Si vous voulez télécharger un fichier d'archivage sur bande (.tar) au lieu d'importer votre espace de travail vers un référentiel Git, vous devez utiliser à la place la commande ibmcloud schematics workspace upload et vous reporter à l'API Upload a TAR file to your workspace.

  1. Dans la page de l'espace de travail Paramètres, entrez l'icône d'édition pour modifier votre Repository URL. Le lien peut pointer vers la branche master, une autre branche ou un sous-répertoire.

    • Exemple de branche master : https://github.com/myorg/myrepo
    • Exemple d'autres branches : https://github.com/myorg/myrepo/tree/mybranch
    • Exemple de sous-répertoire : https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
  2. Si vous voulez utiliser un référentiel Git privé, entrez votre jeton d'accès personnel. Le jeton d'accès personnel est utilisé pour l'authentification auprès de votre référentiel Git afin d'accéder à votre modèle Terraform. Vous pouvez cliquer sur Open reference picker pour sélectionner une clé de référence Secrets Manager. Pour plus d'informations, consultez la section « Création d'un jeton d'accès personnel pour la ligne de commande ». Et pour valider et cloner le modèle en toute sécurité, vous pouvez cliquer sur Open reference picker pour sélectionner votre clé de référence Secrets Manager. Pour plus d'informations, voir la création d'une instance Secrets Manager.

  3. Sélectionnez le Terraform version dans lequel les fichiers de configuration Terraform sont écrits.

  4. Cliquez sur l'option I understand the changes that could happen if I edit this URL and I agree to these happening de la case à cocher.

  5. Cliquez sur Sauvegarder. IBM Cloud Schematics télécharge automatiquement les fichiers de configuration Terraform à partir de votre référentiel, les analysent pour les erreurs de syntaxe et extrait toutes les variables d'entrée que vous avez déclarées dans vos fichiers de configuration. Une fois que tous les fichiers de configuration ont été téléchargés et qu'aucune erreur de syntaxe n'a été détectée, l'état de l'espace de travail passe à Inactif.

    Une fois que vos fichiers de configuration Terraform ont été analysés, vous pouvez afficher les résultats sur la page Activité de l'espace de travail. Le nombre total de fichiers analysés dans le référentiel source est affiché sous la catégorie scanned. Le nombre total de fichiers vulnérables, tels que ceux portant des extensions non prises en charge, est affiché sous la catégorie discarded. Cliquez sur Travaux pour rechercher les détails des fichiers analysés et supprimés. Pour plus d'informations sur la consultation des journaux, consultez la section « Examen des détails de la tâche « Schematics ».

  6. Vérifiez les valeurs des variables d'entrée par défaut de votre modèle Terraform. Pour modifier la valeur d'une variable d'entrée, cliquez sur « Modifier » dans le menu des actions de l'espace de travail. En fonction du type de données utilisé par votre variable, vous devez saisir la valeur dans un format spécifique. Consultez le tableau ci-dessous pour découvrir des exemples de valeurs pour chaque type de données pris en charge.

    | Type | Exemple | | --- | -- | | number | 4.56 | | string | exemple de valeur | | bool | false | | map(string) | {key1 = "value1", key2 = "value2"} | | set(string) | ["Bonjour", "he"] | | map(number) | {internal = 8080, external = 2020} | | list(string) | ["Us-south", "eu-gb"] | | list | ["Valeur", 30] | | list(list(string)) |:[{internal = 8300 external = 8300 protocol = "tcp"},{internal = 8301 external = 8301 protocol = "ldp" }] : liste (objet ({internal = number external = number protocol = string})): [{internal = 8300 external = 8300 protocol = "tcp"} {internal = 8301 external = 8301 protocol = "ldp"}]|

Utilisation de modèles Terraform dans IBM Cloud

Vous pouvez gérer les ressources Cloud avec Schematics pour commencer à créer, mettre à jour ou supprimer des ressources Cloud avec Terraform.

Création d'un espace de travail à l'aide de l'interface de ligne de commande

  1. Créez un fichier JSON sur votre poste de travail local et ajoutez-y la configuration de votre espace de travail. Pour plus d'options de configuration lors de la création de l'espace de travail, consultez la commande « ibmcloud schematics workspace new ».

    Pour créer un espace de travail avec l'agent, reportez-vous à la commande ibmcloud schematics workspace new with Agent.

    {
    "name": "<workspace_name>",
    "type": [
        "<terraform_version>"
    ],
    "location": "<location>",
    "description": "<workspace_description>",
    "tags": [],
    "template_repo": {
        "url": "<github_source_repo_url>"
        "branch": "master"
    },
    "template_data": [
        {
        "folder": ".",
        "type": "<terraform_version>",
        "variablestore": [
          {
            "name": "<variable_name1>",
            "value": "<variable_value1>",
            "type": "string",
            "secure": true
          },
          {
            "name": "<variable_name2>",
            "value": "<variable_value2>",
            "type": "bool",
            "secure": false
          }
        ]
        }
    ]
    }
    
    Description des composants du fichier JSON
    Paramètre Description
    workspace_name Entrez un nom pour votre espace de travail. La longueur maximale du nombre maximal de caractères est de 1 Mo. Pour plus d'informations, voir Conception de votre structure d'espace de travail.
    terraform_version Version de Terraform que vous souhaitez utiliser pour exécuter du code Terraform. Pour utiliser Terraform version 1.4, entrez terraform_v1.4, et de la même manière terraform_v1.5, et terraform_v1.6. Vérifiez que vos fichiers de configuration Terraform sont compatibles avec la version que vous spécifiez. Si la variable Terraform « version » n'est pas spécifiée, Schematics sélectionne par défaut la version indiquée dans votre modèle.
    location Emplacement dans lequel vous voulez créer votre espace de travail. L'emplacement détermine où s'exécutent vos actions Schematics et où sont stockées les données de votre espace de travail. Il est indépendant de la région dans laquelle vous voulez créer vos services IBM Cloud.
    description Entrez une description pour votre espace de travail.
    github_source_repo_url Entrez l'URL vers le référentiel GitHub ou GitLab dans lequel vos fichiers de configuration Terraform sont stockés. Si vous choisissez de créer votre espace de travail sans référentiel GitHub, votre espace de travail est créé dans un état deBrouillon. Pour connecter votre espace de travail à un référentiel GitHub ultérieurement, vous devez utiliser la commande ibmcloud schematics workspace update.
    variable_name Facultatif : entrez le nom de la variable d'entrée que vous avez déclarée dans vos fichiers de configuration Terraform.
    variable_type Facultatif : entrez le type de données de votre variable d'entrée. Pour les types de données pris en charge, voir la Commande ibmcloud schematics workspace new.
  2. Créez l'espace de travail.

    ibmcloud schematics workspace new --file workspace.json
    
  3. Vérifiez que votre espace de travail a été créé. Assurez-vous que votre espace de travail est à l'état « Inactif ».

    ibmcloud schematics workspace list
    
  4. Se référer à, Gérer les ressources Cloud avec Schematics pour mettre à jour ou supprimer des ressources Cloud avec Terraform.

Création d'un espace de travail à l'aide d'API

  1. Suivez les étapes permettant d'extraire votre jeton d'accès IAM et de vous authentifier auprès d'IBM Cloud Schematics à l'aide de l'API.

  2. Créez l'espace de travail à l'aide de Terraform.

    curl --request POST --url https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -d '{"name": "<workspace_name>","type": ["<terraform_version>"],"location": "<location>","description": "<description>","template_repo": {"url": "<github_source_repo_url>"},"template_data": [{"folder": ".","type": "<terraform_version>","variablestore": [{"value": "<variable_value>","name": "<variable_name>","type": "<variable_type>","secure": true}]}]}'
    
    Description des composants du fichier JSON
    Paramètre Description
    iam_access_token Entrez le jeton d'accès IAM que vous avez extrait à l'étape 1.
    workspace_name Entrez un nom pour votre espace de travail. La longueur maximale du nombre maximal de caractères est de 1 Mo. Pour plus d'informations, voir Conception de votre structure d'espace de travail.
    terraform_version Version de Terraform que vous souhaitez utiliser pour exécuter du code Terraform. Entrez terraform_v1.4 pour utiliser Terraform version 1.4, et de la même manière terraform_v1.5, et terraform_v1.6. Vérifiez que vos fichiers de configuration Terraform sont compatibles avec la version que vous spécifiez. Si la variable Terraform « version » n'est pas spécifiée, Schematics sélectionne par défaut la version indiquée dans votre modèle.
    location Emplacement dans lequel vous voulez créer votre espace de travail. L'emplacement détermine où s'exécutent vos actions Schematics et où sont stockées les données de votre espace de travail. Il est indépendant de la région dans laquelle vous voulez créer vos services IBM Cloud.
    description Entrez une description pour votre espace de travail.
    github_source_repo_url Accédez à l' URL, puis au référentiel GitHub ou GitLab où sont stockés vos fichiers de configuration Terraform
    variable_name Facultatif : entrez le nom de la variable d'entrée que vous avez déclarée dans vos fichiers de configuration Terraform.
    variable_value Facultatif : entrez la valeur de votre variable d'entrée.
    variable_type Facultatif : entrez le type de données de votre variable d'entrée. Pour les types de données pris en charge, voir la Commande ibmcloud schematics workspace new.
  3. Vérifiez que la création de l'espace de travail a abouti.

    curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>"
    
  4. Voir Gestion des ressources Cloud avec Schematics pour mettre à jour ou supprimer les ressources Cloud.

Création d'un espace de travail à l'aide de Terraform

  1. Suivez les étapes présentées dans Configuration de Terraform pour Schematics pour créer votre espace de travail à l'aide de Terraform.

  2. Voir Gestion des ressources Cloud avec Schematics pour mettre à jour ou supprimer les ressources Cloud.

Etapes suivantes

L'étape suivante de l'utilisation des espaces de travail est le déploiement des espaces de travail.