Ajouter l’interface Terraform Orchestration sur un bloc de ressources
Après avoir activé l’application de stockage Terraform pour Mise en service et gouvernance du cloud, afin de prendre en charge les opérations basées sur le cloud pour les fournisseurs dans le cloud à l’aide de Terraform Open Source Edition. Ajoutez l’interface Terraform Orchestration sur le bloc de ressources pour exécuter des opérations basées sur le cloud via des modèles Terraform.
Avant de commencer
Procédure
- Sur le portail d’administration du cloud, accédez à Conception > Bloc de ressources.
- Cliquez sur le bloc de ressources, par exemple Centre de données Azure.
- Déplacez l’état du bloc de ressources de Publié à Brouillon pour le rendre modifiable.
- Accédez à la Informations générales > Interface d’invité, puis cliquez sur Nouveau.
- Recherchez et sélectionnez l’interface Terraform Orchestration dans la liste Interface d’invité, puis cliquez sur Soumettre.
- Cliquez sur l’onglet Opérations .
- Dans l’onglet Paramètres d’entrée, accédez à Interface et sélectionnez Interface d’orchestration Terraform
-
Dans l’onglet Paramètres d’entrée , configurez les entrées de l’opération CAPI.
Dans l’interface CAPI, qui dans ce cas est l’interface d’orchestration Terraform, ouvrez la méthode CreateStack . Les entrées de CAPI s’affichent dans l’onglet Entrée, où vous créez des paramètres.
L’onglet Paramètres d’entrée est l’endroit où les utilisateurs entrent des valeurs. Vous pouvez mapper ces paramètres d’entrée aux paramètres de l’onglet Entrée . Pour ce faire, copiez la valeur de mappage de l’onglet Paramètres d’entrée dans le champ Valeur du Étapes > Entrée onglet.
Si cette étape appelle un script et que ce script nécessite des arguments pour renvoyer des valeurs, vous pouvez ajouter un nouveau paramètre d’entrée pour chaque argument. Utilisez cette syntaxe dans le champ Valeur : ${parameter.arg1}.
- Cliquez sur le sous-onglet Étapes sous Opérations.
- Cliquez sur Ajouter une étape.
-
Renseignez les champs de formulaire.
Champ Description Type d'exploitation Sélectionnez le type d’opération.
Appeler l’API dans le cloud : sélectionnez cette option pour sélectionner un fournisseur, une interface et une méthode à partir de CAPI.
Fournisseur d’API Sélectionnez l’API qui fournit les interfaces dont vous avez besoin. Les fournisseurs font partie de l’API dans le cloud (CAPI).
Par exemple, CAPI fournit le fournisseur Terraform OpenSource, qui fournit l’interface d’orchestration de configuration.
Cette valeur s’affiche si vous sélectionnez le type d’opération Invoquer l’API dans le cloud.
API Interface Sélectionnez l’interface qui contient les méthodes que vous souhaitez utiliser. Pour cet exemple, l’interface d’orchestration de configuration fournit plusieurs interfaces ou méthodes que le système utilise pendant la mise en service. Méthode API Sélectionnez la méthode pour effectuer l’opération. Dans cet exemple, ExecuteCommand est nécessaire pour mettre en service les modèles Terraform. Version de l’CAPI Entrez la version de l’API CAPI. Condition Entrez une condition facultative qui doit être remplie avant que le système n’utilise cette étape. -
Cliquez sur Envoyer.
Les onglets Processeur d’entrée et Processeur de réponse s’affichent pour l’étape.
-
Sous l’onglet Entrée , configurez les entrées de l’opération CAPI.
Sur l’interface CAPI, qui dans ce cas est Configuration Orchestration Interface, ouvrez la méthode ExecuteCommand . Les entrées de CAPI s’affichent dans l’onglet Entrée, où vous créez des paramètres.
N’oubliez pas que les paramètres de l’onglet Paramètres d’entrée sont l’endroit où les utilisateurs entrent des valeurs. Vous pouvez mapper ces paramètres d’entrée aux paramètres de l’onglet Entrée . Copiez la valeur de mappage de l’onglet Paramètres d’entrée dans le champ Valeur du Étapes > Entrée onglet.
Si cette étape appelle un script et que ce script nécessite des arguments pour renvoyer des valeurs, vous pouvez ajouter un nouveau paramètre d’entrée pour chaque argument. Utilisez cette syntaxe dans le champ Valeur : ${parameter.arg1}.
Remarque :Mappez les valeurs comme indiqué dans la table suivante pour les paramètres suivants :Paramètre Valeur Paramètres supplémentaires Entrez le script suivant : {"ServerType":"$(Script:sn_cmp_terraform.TerraformCommandUtils. getConfigProviderServerTypeByName[arg=${parameter.WorkloadConfigProvider}])"}ConfigMgmtProviderInfo $(capiResolver.NodeCredentialResolver#nodeCredentialId=$(ci.sn_cmp_wl_cfg_mgmt_provider [name=${parameter.WorkloadConfigProvider}].credential))Adresse du nœud $(ci.cmdb_ci_workload_config_provider[name=${parameter.WorkloadConfigProvider}].url)Script Pour l’opération CreateStack
${CloudScript.scripts.TerraformDeploy}Script Pour l’opération DeleteStack
${CloudScript.scripts.DestroyTerraform} -
Sous l’onglet Processeur de réponses , configurez les processeurs de réponses en joignant des scripts de ressources.
Vous auriez ajouté des scripts de ressources au bloc de ressources, lors de la création du bloc de ressources.
- Dans la liste Opération, sélectionnez l’opération CreateStack ou DeleteStack .
-
Cliquez sur l’icône Ajouter un
pour Ajouter un processeur de réponses.
- Cliquez sur le sous-onglet Script de ressource , puis cliquez sur Nouveau.
-
Complétez le formulaire.
Tableau 1. Nouvel enregistrement Champ Description Nom Saisissez un nom (par exemple, Create_AzureTF_Stack_Response_Processor) pour le script de ressource. Type Sélectionnez un type (Processeur de réponses) pour le script. Script Script de ressource pour créer
Entrez le script suivant : function processResponse (response, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId) { var responseObject = global.JSON.parse(response); var tfState = global.JSON.parse(responseObject.terraform.state); var processor = new sn_cmp_terraform.TerraformResponseProcessor(); var processedResponses = processor.processResponse(tfState, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId); return global.JSON.stringify(processedResponses); }Script Script de ressource pour suppression
Entrez le script suivant : function processResponse (response, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId) { var responseObject = global.JSON.parse(response); var tfState = global.JSON.parse(responseObject.terraform.state); var processor = new sn_cmp_terraform.TerraformResponseProcessor(); var processedResponses = processor.processResponse(tfState, cloudServiceAccountId, ldc, correlationId, step, requestorContext, stackId); return global.JSON.stringify(processedResponses); } - Dans la liste Nom du script , sélectionnez le script correspondant à l’opération sélectionnée, puis cliquez sur Soumettre.
-
Passez l’état du bloc de ressources de Brouillon à Publié.
Le bloc de ressources de centre de données passe de l’état Brouillon à l’état Publié et vous ne pouvez pas apporter d’autres modifications au bloc de ressources. Vous ne pouvez modifier un bloc de ressources qu’une fois que vous avez défini l’état sur Brouillon.