Ajouter l'interface d'orchestration Terraform sur un bloc de ressources
Une fois que vous avez activé l'application Terraform pour Cloud Provisioning and Governance, pour 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 d'orchestration Terraform 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.
- Dans la liste Interface d'invité, recherchez et sélectionnez Interface d'orchestration Terraform, puis cliquez sur Envoyer.
- 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 de CAPI.
Dans l'interface de la CAPI, ici une interface d'orchestration Terraform, ouvrez la méthode CreateContainer. Les entrées de la 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 saisissent 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 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.
-
Remplissez les champs du formulaire.
Champ Description Type d'opération 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 la 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, la CAPI propose 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 Appeler l'API dans le cloud.
Interface API 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 lors de la mise en service. Méthode API Sélectionnez la méthode pour effectuer l'opération. Dans cet exemple, ExecuteCommand est requis pour mettre en service des modèles terraform. Version de 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 Entrée et Processeur de réponse s'affichent pour l'étape.
-
Dans l'onglet Entrée, configurez les entrées de l'opération de CAPI.
Dans l'interface de la CAPI, ici une interface d'orchestration de configuration, ouvrez la méthode CreateContainer. Les entrées de la 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 saisissent 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 mentionnées dans la table suivante pour les paramètres suivants :Paramètre Valeur AdditionalParameters 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} -
Dans l'onglet Processeur de réponses, configurez les processeurs de réponses en joignant des scripts de ressources.
Vous avez peut-être 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 d'ajout
pour ajouter un processeur de réponses.
- Cliquez sur le sous-onglet Script de ressource puis sur Nouveau.
-
Complétez le formulaire.
Tableau 1. Nouvel enregistrement Champ Description Nom Entrez 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 la création
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 la 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.
-
Faites passer l'état du bloc de ressources de Brouillon à Publié.
Le bloc de ressources du centre de données passe de l'état Brouillon à l'état Publié et vous ne pouvez pas apporter d'autres changements au bloc de ressources. Vous ne pouvez modifier un bloc de ressources qu'après avoir défini l'état sur Brouillon.