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:
-
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
APIsqui sont utilisés pour fournir, mettre à jour ou supprimer les ressources Schematics -
Créez les fichiers de configuration Terraform nommés
main.tf,terraform.tfvarsetversions.tf.Vous pouvez utiliser l'exemple Terraform d'URL Git
https://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égioneu, le noeud final d'API doit être spécifié sous la formeIBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.comdans 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-apigwydans le groupe de ressourcesdefaultde votre région. Cet espace de travail pointe vers un modèle Terraform de votre choix qui requiert la version Terraformterraform_v1.5.versions.tfExemple de fichier
versions.tfpour 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.tfvarsExemple de fichier
terraform.tfvarspour 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 fichierterraform.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.tfConsultez l'exemple de fichier
main.tfsuivant. Ce fichier appelle les variables du fichierterraform.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_workspaceressource.Paramètres pris en charge pour la création d'espaces de travail Schematics avec Terraform. Paramètre Description descriptionDescription de l'espace de travail. locationEmplacement dans lequel créer votre espace de travail Schematics et exécuter des actions Schematics. resource_groupID du groupe de ressources dans lequel mettre à disposition l'espace de travail. nameNom 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. tagsListe des étiquettes associées à l'espace de travail. template_env_settingsListe des variables d'environnement à appliquer lors de l'exécution d'une action Terraform. template_git_urlURL du référentiel Git dans lequel se trouvent les détails de configuration pour la mise à disposition de la ressource. template_typeSpécifiez la version de Terraform à appliquer dans l'espace de travail Schematics. -
Initialisez l'interface de ligne de commande de Terraform.
terraform initSi le chemin d'accès à la variable d'environnement pour Terraform n'est pas défini, l'erreur
command not found: terraformpeut s'afficher. Corrigez l'erreur en définissant le chemin d'accès au répertoire d'installation de Terraform. -
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 -
Créez l'instance d'espace de travail Schematics et la stratégie d'accès IAM dans IBM Cloud.
terraform applyPour 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 -
Dans le tableau de bord Schematics, vérifiez que l'espace de travail
tf-testwks-apigwya été créé Les ressources sont fournies à partir de la liste de ressources IBM Cloud Schematics -
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 playbooksdans 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.