Terraform

Les réponses aux questions courantes concernant les espaces de travail d' IBM Cloud Schematics s sont regroupées dans la section suivante.

IBM Cloud Schematics prend-il en charge plusieurs versions de fournisseur Terraform ?

Oui, IBM Cloud Schematics prend en charge plusieurs versions de fournisseur Terraform. Vous devez ajouter le bloc « provider » de Terraform en précisant la version du fournisseur. Par défaut, le fournisseur utilise la version actuelle 1.21.0; les quatre versions précédentes, à savoir 1.20.1, 1.20.0, 1.19.0 et 1.18.0, sont également prises en charge.

Exemple pour une configuration de fournisseurs multiples :

terraform{
    required_providers{
    ibm = ">= 1.21.0" // Error !! version unavailable.
    ibm = ">= 1.20.0" // Execute against latest version.
    ibm = "== 1.20.1" // Executes version v1.20.1.
    }
}

La version actuellement publiée est la version 1.21.0. Pour plus d'informations, voir Version du fournisseur.

Comment mettre à jour la version Terraform?

IBM Cloud Schematics est en train de supprimer les anciennes versions de Terraform et d'introduire 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 Schematics Terraform et le calendrier de dépréciation.

Vous pouvez suivre les rubriques pour passer d'une version de Terraform à une autre

Comment puis-je pull latest coder à partir d'un référentiel Git à l'aide de la ligne de commande?

La mise à jour des espaces de travail IBM Cloud® Schematics via la ligne de commande requiert la zone requise name.

Vous devez exécuter la commande ibmcloud schematics workspace update --id <workspace-id> --file <updatefile.json>. L'exemple updatefile.json contient la zone de nom avec la valeur.

{
    "name":"testworkspace"
}

Quels outils et utilitaires sont utilisés dans l'environnement d'exécution?

Schematics Le runtime est construit à partir de l'Universal Base Image ( UBI-8 ) et les utilities/softwares s de runtime fournies avec l' UBI-8 sont disponibles pour les actions de provisionnement Terraform et les actions « Ansible ». Pour plus d'informations, voir la liste des outils et utilitaires utilisés dans l'environnement d'exécution Schematics.

Comment résoudre les problèmes de jeton Git lors de la création d'espaces de travail à l'aide de l'interface de ligne de commande

L'utilisation de la commande schematics workspace new --file schematic-file.json -g xxxx émet une exception Access token creation failed status, car le jeton n'est pas spécifié dans la commande.

Vous devez vérifier votre authentification avant d'effectuer l'opération via la ligne de commande. Créez ensuite un espace de travail à l'aide de la commande schematics workspace new --file schematic-file.json --github-token xxxx. Pour plus d'informations, voir la commande ibmcloud schematics workspace new.

Comment résoudre les problèmes d'autorisation lors de la création ou de la mise à jour d'un espace de travail?

Des problèmes d'autorisation surviennent lorsque le rôle et les autorisations d'accès sont insuffisants lors de la mise à jour de l'espace de travail. Pour plus d'informations, consultez la section « Gestion des droits d'accès des utilisateurs ».

Comment puis-je utiliser les modules Terraform IBM avec Schematics?

Vous pouvez utiliser des modules Terraform IBM préconstruits, open-source et prêts pour l'entreprise avec les espaces de travail Schematics. Ces modules fournissent les meilleures pratiques pour le provisionnement des ressources IBM Cloud et peuvent être référencés directement dans vos configurations Terraform. Par exemple, vous pouvez utiliser les modules terraform-ibm pour provisionner des ressources avec les meilleures pratiques intégrées.

Quels sont les avantages de l'utilisation des modules Terraform IBM?

Les modules Terraform IBM (TIM) offrent plusieurs avantages :

  • Pré-construit, testé et entretenu par IBM.
  • Suivre les meilleures pratiques et les lignes directrices en matière de sécurité sur le site IBM Cloud.
  • Réduire le temps de développement et la complexité.
  • Assurer la cohérence entre les déploiements.
  • Prise en charge des modèles d'infrastructure de niveau entreprise.
  • Mises à jour régulières et soutien de la communauté.

Pour plus d'informations, voir À propos des modules Terraform IBM.

Comment utiliser les services Schematics avec un ID de test?

Les identifiants de test sont considérés comme une « IBM ID » valide pour configurer les appels API liés au catalogue global ou au contrôleur de ressources. Si vous ne parvenez pas à y accéder, effectuez l'opération Contacter le service de support.

Comment limiter le clonage de dossier de référentiel Git

Par défaut, lors de la création d'un espace de travail via l'interface utilisateur, Schematics cloner le référentiel Git complet et tous les sous-répertoires. Désélectionnez l'indicateur Use full repository pour limiter les dossiers clonés et améliorer les performances de téléchargement.

Schematics a introduit un indicateur compact dans l'API create workspace et update workspace pour télécharger le sub directories dans les référentiels Git. Si l'indicateur « compact » est défini sur « true », le système télécharge et enregistre sub directories de manière récursive; dans le cas contraire, vous pouvez continuer à télécharger et à enregistrer l'intégralité du référentiel lors de la création de l'espace de travail.

Pour obtenir la réponse, lancez la commande « get workspace API » afin de consulter la valeur du drapeau « compact ». L'indicateur « compact » ne peut être spécifié que si le champ « template_repo.url » est fourni. Lors d'une mise à jour, si ce champ n'est pas renseigné, mais que l' URL est renseignée, le téléchargement est compact.

L'utilisation compacte dans la charge est .template_data[0].compact = true/false. Pour plus d'informations, voir Compact download for Schematics workspace.

Comment supprimer un espace de travail en cas d'échec de la suppression?

Si une ressource est supprimée en dehors de Schematics, une opération de suppression d'espace de travail s'affiche en tant que resource no longer exists.

Vous devez supprimer l'espace de travail sans détruire les ressources, comme si celles-ci n'étaient pas disponibles. Pour plus d'informations, voir Suppression d'un espace de travail.

Quelle est la meilleure façon de déployer une charte Helm à l'aide de données d'identification ou de secrets?

Le meilleur moyen est d'utiliser le catalogue IBM Cloud pour gérer les graphiques Helm où, à l'intérieur du catalogue, vous pouvez conserver les données d'identification et les marquer comme sécurisées. Pour plus d'informations, voir Liste des catalogues associés à Helm.

Comment traiter les échecs de travail causés par les activités de maintenance?

L'impact inattendu dû à la maintenance entraîne l'échec des activités en cours dans l'espace de travail Schematics. Cet espace de travail et l'activité qui s'y déroule sont désignés sous le nom d'« Failed ». L'utilisateur peut alors réexécuter l'activité. Pour plus d'informations, voir diagramme d'état de l'espace de travail.

Comment définir la balise d'édition Git ?

2021/11/08 12:34:06 -----  New Action  -----
 2021/11/08 12:34:06 Request: RepoURL=https://xxxxxxxxxx/wh-hp-insights/hi-cloud-automation, workspaceSource=Schematics, Branch=2021.10, Release=, Folder=terraform-v2/workspace-hi-qa-automation-app
 2021/11/08 12:34:06 Related Activity: action=UPDATE_WORKSPACE,processedBy=sandbox-6bcf8bffcd-rxbww_2478
 2021/11/08 12:34:06 Getting download command
 2021/11/08 12:34:11 Fatal, could not download repo, Failed to clone git repository, couldn't find remote ref "refs/heads/2021.10" (most likely invalid branch name is passed)
 2021/11/08 12:34:12 Problems found with the Repository. Please Rectify and Retry

Si le paramètre Release est vide et que le paramètre Branch a été défini avec la balise d'édition.

Schematics ne prend pas en charge la balise « release », car il est difficile de déterminer s'il s'agit d'une balise de version ou d'une branche du dépôt Git URL. Vous devez définir la balise release via API Schematics.

Pourquoi est-ce que je reçois une erreur 403 au lieu d'une erreur 404 lors de l'utilisation d'un ID d'espace de travail non valide?

curl -X GET https://schematics.cloud.ibm.com/v1/workspaces/badWOrkspaceId -H "Authorization: $IAM_TOKEN"
{"requestid":"3a3cbffe-e23a-4ccf-b764-042f7379c084","timestamp":"2021-11-11T17:00:07.169953698Z","messageid":"M1078","message":"Error while validating the location in the account. Verify you have permission to the location in the global catalog settings.","statuscode":403}

Oui, l'API a été modifiée : elle vérifie désormais d'abord l'emplacement et, si elle ne parvient pas à obtenir l'emplacement correct de l'espace de travail, elle renvoie une erreur 403 au lieu d'une erreur 404.

Comment activer la journalisation de débogage Terraform?

Vous pouvez définir la variable d'environnement pour la définition du suiviTF_LOG=debug de débogage de journal Terraform du contenu, comme indiqué dans l'exemple du contenu. Pour plus d'informations, voir Mise à jour des espaces de travailSchematics.

{
  "name": "sample",
  "type": [
    "terraform_v1.4"
  ],
  "description": "terraform workspace",
  "tags": [
  ],
  "template_repo": {
    "url": "<your repo>"
  },
  "template_data": [
    {
      "folder": ".",
      "type": "terraform_v1.4",
      "env_values":[
      {
        "TF_LOG":"debug"
      }
    ]
    }
  ]
}

Comment importer des ressources de cloud dans un espace de travail?

Utilisez la commande ibmcloud schematics workspace import --options value, -o value : Optional et l'exemple de syntaxe pour effectuer l'importation à partir de la ligne de commande. Pour plus d'informations, voir Importation de l'espace de travailSchematics.

ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "-var IC_API_KEY=XXXXXXXX"
or
ibmcloud schematics workspaces import --id <workspace_id> --address <my terraform resource address> --resourceID <the CRN of the item to import> --options "--var-file=<path-to-var-file>"

Comment puis-je télécharger des fichiers de travail?

Oui, vous pouvez télécharger les fichiers de travail Schematics. Pour plus d'informations, voir Télécharger les fichiers de travail Schematics.

Comment résoudre les échecs de délai d'attente de ressource Terraform?

Vous devez mettre à jour ou augmenter la valeur du délai d'attente de 5 minutes ou 10 minutes en fonction du service, comme indiqué dans le bloc terraform. Sinon, vous devez envoyer l' null value e pour utiliser les valeurs par défaut.

variable "create_timeout"
{
 type = String
 description = "Timeout duration to create LogDNA instance in Schematics."
 default = "15m"
}

Comment définir la variable d'environnement TF_CLI_ARGS?

Non, vous ne pouvez pas définir directement la valeur d'une variable d'environnement dans la console des espaces de travail d' Schematics. A la place, vous pouvez utiliser une CURL à l'aide de l'APISchematics ou de la ligne de commande Schematics.

  "env_values": [
        {
          "TF_LOG": "debug"
        },
  ]

Puis-je utiliser des référentiels Git privés pour les modules?

Oui, Schematics prend en charge le téléchargement de modules Terraform à partir de référentiels privés. Pour plus d'informations, voir Prise en charge des modules de téléchargement à partir de l'hôte distant privé.

Puis-je éditer toutes les variables d'un espace de travail?

Vous ne pouvez modifier qu'une seule variable à la fois depuis la console d' Schematics. A partir de la ligne de commande, vous pouvez éditer toutes les variables de l'espace de travail au format JSON à l'aide de la commande ibmcloud schematics workspace update.

Comment importer des clés lors de l'importation de ressources KMS?

Oui, vous pouvez définir ou gérer les clés à l'aide de ibm_kms_key, comme indiqué dans l'exemple de bloc de code. Pour plus d'informations, voir ibm_kms_key.

resource "ibm_resource_instance" "kms_instance" {
  name     = "instance-name"
  service  = "kms"
  plan     = "tiered-pricing"
  location = "us-south"
}
resource "ibm_kms_key" "test" {
  instance_id  = ibm_resource_instance.kms_instance.guid
  key_name     = "key-name"
  standard_key = false
  force_delete =true
}
resource "ibm_cos_bucket" "smart-us-south" {
  bucket_name          = "atest-bucket"
  resource_instance_id = "cos-instance-id"
  region_location      = "us-south"
  storage_class        = "smart"
  key_protect          = ibm_kms_key.test.id
}

Pouvez-vous activer la fonction TRACE pour faciliter le débogage de l'API Schematics lors de l'exécution de la commande « workspace list »?

Non, actuellement, Schematics ne prend pas en charge cette fonction lors de l'exécution de la commande IBMCLOUD_TRACE=true ibmcloud schematics workspace list.

Comment résoudre les erreurs dans la liste des espaces de travail?

Lors de l'affichage ou de l'extraction d'espaces de travail, l'erreur suivante peut être reçue. Error while retrieving Schematics Instance for the given account:

Error:
Bad status code [400] returned when getting workspace from Schematics: {"requestid":"fe5f0d6d-1d43-4643-a689-35d090463ce8","timestamp":"2022-01-25T20:23:54.727208017Z","messageid":"M1070","message":"Error while retrieving Schematics Instance for the given account.","statuscode":400}

Il se peut que vous ne disposiez pas des droits d'accès suffisants aux espaces de travail situés à l'emplacement indiqué pour récupérer l'instance. Vérifiez bien les autorisations attribuées à votre compte ainsi que les emplacements où votre instance doit être créée. Pour plus d'informations, voir Où sont stockées les informations?

Comment utiliser les référentiels (IBM) GitLab ?

Oui, vous pouvez accéder au dépôt privé ( IBM ) de GitLab en utilisant l'adresse Schematics, à condition de disposer des droits d'accès nécessaires.

  • Si le jeton d'accès au référentiel privé ( IBM ) GitLab git.cloud.ibm.com n'est pas nécessaire, car c'est le jeton IAM qui est utilisé.

  • Si les accès publics GitLab gitlab.com, read_repository et read_api sont nécessaires pour valider le nom de branche pour le référentiel privé.

Vous pouvez utiliser l'exemple de bloc de code Terraform pour configurer les détails du référentiel GitLab.

"template_repo": {
"url": "<gitlab_source_repo_url>",
"branch": ""
},

Les groupes d'accès IAM peuvent-ils être gérés dans Schematics?

Oui, Schematics prend en charge l'ensemble de ressources du fournisseur IBM Cloud complet. Pour plus d'informations sur le fonctionnement du groupe d'accès IAM, voir ibm_iam_access_group.

Comment utiliser les ressources d'un autre compte?

Oui, vous pouvez créer des espaces de travail Schematics dans le compte source IBM Cloud. Ensuite, exécutez Terraform en fournissant des ressources dans le compte cible pour mettre à disposition, via l'interface de ligne de commande et les appels d'API en utilisant l'ID de service de compte cible avec l'authentification, l'autorisation inter-comptes appropriée ou la clé d'API. Pour plus d'informations, voir Gestion des ressources dans un autre compte.

Que signifie l'emplacement North America ?

Lors de la création d'un espace de travail Schematics, l'Amérique du Nord indique systématiquement les emplacements suivants : us-south et us-east. Pour plus d'informations, voir Où puis-je créer des espaces de travail Schematics ? et Où sont stockées mes informations?

Quels ports et adresses IP sont utilisés par Schematics?

Schematics communique avec les ports spécifiés par les ressources associées. Par exemple, pour les ports liés au VPC, consultez la section « VPC : ouverture des ports et adresses IP requis dans les pare-feu d'autres réseaux ».

Quand dois-je utiliser « Schematics » plutôt que les tableaux de bord individuels des ressources?

Grâce à IBM Cloud Schematics, vous pouvez exécuter votre code d'infrastructure dans IBM Cloud afin de gérer le cycle de vie des ressources cloud. Après avoir mis à disposition une ressource, vous utilisez le tableau de bord de la ressource individuelle pour gérer et interagir avec cette dernière. Par exemple, si vous provisionnez une instance de serveur virtuel dans un Virtual Private Cloud (VPC) avec IBM Cloud Schematics. Vous pouvez utiliser la console VPC, l'API ou la ligne de commande pour stop, reboot et power on votre instance de serveur virtuel. Toutefois, pour supprimer l'instance du serveur virtuel, vous pouvez utiliser la commande « IBM Cloud Schematics ».

Les modifications apportées aux référentiels Git sont-elles actualisées dans Schematics?

Non, si vous modifiez le code de votre modèle Terraform à l'adresse GitHub,, ces modifications ne sont pas automatiquement prises en compte lorsque vous créez un plan d'exécution à l'adresse IBM Cloud Schematics. Pour récupérer les dernières modifications de votre référentiel GitHub, veillez à cliquer sur l'option « Pull latest » (Synchroniser avec le référentiel) depuis la page « settings » (Synchronisation) de l'espace de travail avant de créer votre plan d'exécution.

Où est stocké le fichier d'état Terraform?

Une fois que vous avez provisionné avec succès des ressources Cloud en exécutant une action « apply » de l’ Schematics, l’état de ces ressources est enregistré dans un fichier d’état Terraform (terraform.tfstate). Schematics utilise ce fichier d’état comme source unique de vérité pour déterminer quelles ressources existent dans votre compte. Le fichier « state » établit une correspondance entre les ressources que vous avez spécifiées dans votre fichier de configuration Terraform et les ressources Cloud que vous avez provisionnées.

Les ressources sont-elles supprimées lors de la suppression de l'espace de travail?

La suppression d'un espace de travail sur IBM Cloud Schematics n'entraîne pas la suppression de vos ressources Cloud. Si vous supprimez l'espace de travail avant d'avoir supprimé vos ressources, vous devrez supprimer manuellement toutes vos ressources Cloud depuis le tableau de bord dédié à chaque ressource.

La suppression des ressources Cloud est irréversible. Assurez-vous d'avoir sauvegardé toutes vos données avant de supprimer une ressource. Les ressources sont retirées (supprimées) si vous supprimez la définition de ressource ou si vous mettez en commentaire la ressource dans votre fichier de configuration Terraform. Consultez le fichier journal du plan pour vérifier que toutes vos ressources sont incluses dans le retrait.

Puis-je définir des variables d'environnement pour les espaces de travail?

Vous pouvez définir env values pour un espace de travail à l'aide de l'interface de ligne de commande et de l'API. Pour plus d'informations, voir Utilisation de env_values.

Si votre espace de travail a été créé par le service de projets IBM Cloud, voir Activation des journaux Terraform à l'aide du CLI pour savoir comment définir les variables d'environnement.

Exemple de contenu

{
  "name": "newName",
  "template_data": [
    {
      "type": "<same_as_before>",
      "env_values": [
        {
          "env_key1": "dummy_text"
        },
        {
          "env_key2": "dummy_text"
        }
      ],
      "env_values_metadata": [
        {
          "name": "env_values_1",
          "hidden": false,
          "secure": false
        },
        {
          "name": "env_values_2",
          "hidden": false,
          "secure": false
        }
      ]
    }
  ]
}

La détection de dérive s'exécute-t-elle automatiquement?

Non, la détection de dérive n'est pas une méthode de détection automatique dans l' IBM Cloud Schematics. Pour plus d'informations, voir Détection de la dérive dans Schematics.

Comment puis-je lancer la détection de dérive?

Vous pouvez lancer la détection de dérive à l'aide de l'interface utilisateur et de l'interface de ligne de commande. Pour plus d'informations, voir Détection de la dérive dans Schematics.

Où puis-je consulter l'état d'une tâche de détection de dérive?

Pour vérifier les résultats d'une tâche de détection de dérive, vous devez consulter le journal de cette tâche. Le journal du travail fournit les détails de la détection de la dérive en tant que in progress ou completed avec le statut approprié, tel que failure ou success. Pour plus d'informations, voir Détection de la dérive dans Schematics.

Puis-je interrupt ou terminate exécuter des travaux?

Oui, vous pouvez déclencher une interruption, un arrêt forcé ou la fin des ressources de mise à disposition ou d'un travail en cours d'exécution dans Schematics à l'aide des types de travail. Pour plus d'informations, voir Arrêt des types de travail.

Comment corriger une erreur Incorrect Location Input ?

Erreur

{
    "requestid": "3f59c342-cd2c-4703-aa10-9e8e7072a3ac",
    "timestamp": "2022-06-28T20:02:58.529765308Z",
    "messageid": "M1097",
    "message": "Incorrect Location Input.",
    "statuscode": 400
}

Le noeud final global Schematics est défini par défaut sur l'environnement us. Par conséquent, vous devez utiliser des noeuds finaux régionaux pour pointer votre emplacement vers une région eu-de.

Comment afficher les ressources de l'espace de travail?

Utilisez la commande CLI state list pour afficher les mêmes ressources que dans l'interface utilisateur IBM Cloud Schematics.

Comment corriger l'erreur CreateworkspaceWithContext failed Bad request ?

Erreur

CreateWorkspaceWithContext failed Bad request. Check that the information you entered in the payload is complete and formatted correctly in JSON.

L' URL globale du point final public ou privé Schematics pointe par défaut vers la région us. Comme solution palliative, vous pouvez définir la clé de variable d'environnement avant les commandes Terraform.

```sh
export IBMCLOUD_SCHEMATICS_API_ENDPOINT="https://eu-de.schematics.cloud.ibm.com"
```

Vous pouvez également ajouter les noeuds finaux à un fichier JSON pour catégoriser le service de noeuds finaux en tant que service public ou privé.

Exemple de déclaration de fournisseur

{
    "IBMCLOUD_SCHEMATICS_API_ENDPOINT":{
        "public":{
            "eu-de":"https://eu-de.schematics.cloud.ibm.com"
        }
         }
}

Exemple de bloc fournisseur

provider "ibm" {
  endpoints_file_path= "endpoints.json"
}

Les valeurs sensibles du fichier d'état sont-elles chiffrées?

Schematics crypte le fichier d'état Terraform lorsqu'il est stocké et également en transit en utilisant TLS. Terraform ne chiffre pas séparément les valeurs sensibles. Pour plus d'informations, voir sensitive-data dans le fichier d'état.

Pourquoi les variables d'espace de travail définies à l'aide de l'interface de ligne de commande émetent-elles 400 erreurs?

La valeur du magasin de variables de liste d'espace de travail Schematics doit toujours être une chaîne HCL. La zone value doit contenir une chaîne avec caractères d'échappement pour le magasin de variables de la liste, de la mappe ou de la variable complexe. Pour plus d'informations, voir Ajout de valeurs à Schematics pour les variables déclarées.

Pouvez-vous mettre à jour la version Terraform (TF_VERSION) à l'aide d'un fichier JSON ?

Actuellement, la solution de contournement pour mettre à jour le TF_VERSION consiste à transmettre le TF_VERSION lors de la mise à jour du magasin de variables. Schematics détecte automatiquement ce qui est spécifié dans le bloc de version Terraform dans les fichiers TF. Il s'agit du comportement par défaut.

Pour plus d'informations, voir définition et modification de la version.

Peut-on démarrer avec un nouveau fichier d'état Terraform à chaque exécution de travail?

Non, vous devez créer un nouvel espace de travail. Pour plus d'informations, voir Exécution des travaux de l'espace de travail.

Puis-je importer un fichier d'état Terraform existant?

Oui, vous pouvez utiliser l'option d'indicateur --state via l'espace de travail ibmcloud schematics new.

Quelle est la longueur maximale de variable des caractères?

La longueur maximale des caractères pris en charge par les variables d'espace de travail Schematics est de 1 Mo.

Quel est le fichier d'état maximal à importer?

Le fichier terraform.tfstate doit être inférieur à 16 Mo. Lorsque vous créez un espace de travail à partir d'un fichier d'état Terraform existant, le fichier terraform.tfstate doit être inférieur à 16 Mo. Un fichier d'état de plus de 16 Mo n'est pas pris en charge dans Schematics. Un message d'erreur s'affiche avec 413 Request Entity Too Large error when creating a new workspace.

Comment corriger les erreurs d'authentification lors de l'utilisation de l'API?

Vous devez créer le jeton d'accès IAM pour votre compte IBM Cloud. Pour plus d'informations, voir Obtention du mot de passe du jeton. Vous trouverez ci-dessous un exemple de message d'erreur ainsi que la solution à cette erreur d'authentification.

Error: Request fails with status code: 400, BXNIMO137E: For the original authentication, client id 'default' was passed, refresh the token, client id 'bx' is used.

La documentation de l'API IAM explique comment créer une default token. Vous pouvez utiliser refresh token pour obtenir un nouveau jeton d'accès IAM si ce jeton est arrivé à expiration. Lorsque le client par défaut (aucun en-tête d'autorisation de base), comme décrit dans cette documentation. La méthode « refresh_token » ne peut pas être utilisée pour récupérer un nouveau jeton d'accès IAM. Lorsque le jeton d'accès IAM est sur le point d'être arrivé à expiration, utilisez la clé de l'API pour créer un jeton d'accès comme indiqué.

  1. Vous devez créer les fichiers access_token et refresh_token.

    export IBMCLOUD_API_KEY=<ibmcloud-api_key>
    curl -X POST "https://iam.cloud.ibm.com/identity/token" -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=urn:ibm:params:oauth:grant-type:apikey&apikey=$IBMCLOUD_API_KEY" -u bx:bx
    
  2. Exportez les variables access_token et refresh_token obtenues à l'étape 1 en tant que variables d'environnement pour ACCESS_TOKEN et REFRESH_TOKEN.

    export ACCESS_TOKEN=<access_token>
    export REFRESH_TOKEN=<refresh_token>
    
  3. Créer un espace de travail

    curl --request POST --url https://cloud.ibm.com/schematics/overview/v1/workspaces -H "Authorization: Bearer <access_token>" -d '{"name":"","type": ["terraform_v1.4"],"description": "","resource_group": "","tags": [],"template_repo": {"url": ""},"template_data": [{"folder": ".","type": "terraform_v1.4","variablestore": [{"name": "variable_name1","value": "variable_value1"},{"name": "variable_name2","value": "variable_value2"}]}]}'
    

Comment extraire l'ID d'espace de travail Schematics en tant que variable d'environnement?

Vous pouvez extraire l'ID d'espace de travail Schematics en tant que variable d'environnement à l'aide du code suivant. Avant d'exécuter un plan ou une application, les variables d'environnement IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_ID, TF_VAR_IC_SCHEMATICS_WORKSPACE_RG_I, IC_IAM_TOKEN et IC_IAM_REFRESH_TOKEN sont automatiquement définies sur vos scripts Terraform.

data "external" "env" {
  program = ["jq", "-n", "env"]
}
output "workspace_id" {
value = "${lookup(data.external.env.result, "TF_VAR_IC_SCHEMATICS_WORKSPACE_ID")}"

Si vous souhaitez afficher toutes les variables d'environnement disponibles dans l'espace de travail, utilisez le code output "${jsonencode(data.external.env.result)}".

Comment rectifier les erreurs 401 de l'appel au courtier lors de la suppression des objets Schematics ?

Après la suppression des objets, si les services Schematics ne parviennent pas à supprimer les objets de votre compte. Vous devez créer un Schematics ticket d'assistance pour le supprimer du contrôleur de ressources.