Ressourcenblock die Terraform Orchestration-Schnittstelle hinzufügen
Nachdem Sie die Terraform-App im Store für Cloud Provisioning and Governance aktiviert haben, werden cloudbasierte Vorgänge für Cloud-Provider unterstützt, die die Terraform Open Source-Edition verwenden. Fügen Sie die Terraform Orchestration-Schnittstelle zum Ressourcenblock hinzu, um cloudbasierte Vorgänge über Terraform-Vorlagen auszuführen.
Vorbereitungen
Prozedur
- Navigieren Sie im Cloud-Adminportal zu Design > Ressourcenblock.
- Klicken Sie auf den Ressourcenblock, z. B. Azure-Rechenzentrum.
- Ändern Sie den Status des Ressourcenblocks von Veröffentlicht in Entwurf, um ihn bearbeitbar zu machen.
- Navigieren zu Allgemeine Informationen > Gastschnittstelle, und klicken Sie dann auf Neu.
- Suchen Sie die Terraform Orchestration-Schnittstelle in der Liste „Gastschnittstelle“, wählen Sie sie aus, und klicken Sie auf Absenden.
- Klicken Sie auf die Registerkarte Vorgänge.
- Navigieren Sie auf der Registerkarte Eingabeparameter zu Schnittstelle und wählen Sie Terraform Orchestration Interface (Terraform Orchestration-Schnittstelle) aus.
-
Konfigurieren Sie auf der Registerkarte Eingabeparameter die CAPI-Vorgangseingaben.
Öffnen Sie bei der CAPI-Schnittstelle (in diesem Fall die Schnittstelle Terraform Orchestration-Schnittstelle) die Methode CreateStack. Die Eingaben von CAPI werden auf der Registerkarte „Eingabe“ angezeigt, auf der Sie Parameter erstellen.
Die Registerkarte Eingabeparameter wird durch Benutzer ausgefüllt werden. Sie können diese Eingabeparameter den Parametern auf der Registerkarte Eingabe zuordnen. Kopieren Sie dazu den Wert Zuordnung aus der Registerkarte Eingabeparameter in das Feld Wert auf der Schritte > Eingabe Registerkarte.
Wenn dieser Schritt ein Skript aufruft und dieses Skript Argumente zur Rückgabe von Werten erfordert, können Sie für jedes Argument einen neuen Eingabeparameter hinzufügen. Verwenden Sie diese Syntax im Feld Wert: ${parameter.arg1}.
- Klicken Sie unter Vorgänge auf die Unterregisterkarte Schritte.
- Klicken Sie auf Schritt hinzufügen.
-
Füllen Sie die Formularfelder aus.
Feld Beschreibung Vorgangstyp Wählen Sie die Art des Vorgangs aus.
Cloud API aufrufen: Wählen Sie diese Option aus, um einen Provider, eine Schnittstelle und eine Methode aus der CAPI auszuwählen.
API-Anbieter Wählen Sie die API aus, die die erforderlichen Schnittstellen bereitstellt. Die Provider sind Teil der Cloud API (CAPI).
Beispielsweise stellt CAPI den Provider Terraform OpenSource bereit, der die Configuration Orchestration-Schnittstelle bereitstellt.
Dieser Wert wird angezeigt, wenn Sie den Vorgangstyp „Cloud API aufrufen“ auswählen.
API-Schnittstelle Wählen Sie die Schnittstelle mit den Methoden aus, die Sie verwenden möchten. In diesem Beispiel stellt die Configuration Orchestration-Schnittstelle mehrere Schnittstellen oder Methoden bereit, die das System während der Bereitstellung verwendet. API-Methode Wählen Sie die Methode aus, mit der der Vorgang ausgeführt werden soll. In diesem Beispiel ist ExecuteCommand erforderlich, um Terraform-Vorlagen bereitzustellen. CAPI-Version Geben Sie eine Version für die CAPI API ein. Bedingung Geben Sie eine optionale Bedingung ein, die erfüllt sein muss, bevor das System diesen Schritt verwendet. -
Klicken Sie auf Absenden.
Die Registerkarten Eingabe und Antwortprozessor werden für den Schritt angezeigt.
-
Konfigurieren Sie auf der Registerkarte Eingabe die CAPI-Vorgangseingaben.
Öffnen Sie bei der CAPI-Schnittstelle (in diesem Fall die Configuration Orchestration-Schnittstelle) die Methode ExecuteCommand. Die Eingaben von CAPI werden auf der Registerkarte „Eingabe“ angezeigt, auf der Sie Parameter erstellen.
Denken Sie daran, dass die Parameter auf der Registerkarte Eingabeparameter durch Benutzer ausgefüllt werden. Sie können diese Eingabeparameter den Parametern auf der Registerkarte Eingabe zuordnen. Kopieren Sie den Wert Zuordnung aus der Registerkarte Eingabeparameter in das Feld Wert auf der Schritte > Eingabe Registerkarte.
Wenn dieser Schritt ein Skript aufruft und dieses Skript Argumente zur Rückgabe von Werten erfordert, können Sie für jedes Argument einen neuen Eingabeparameter hinzufügen. Verwenden Sie diese Syntax im Feld Wert: ${parameter.arg1}.
Hinweis:Ordnen Sie die Werte für die folgenden Parameter wie in der folgenden Tabelle erläutert zu:Parameter Wert AdditionalParameters Geben Sie das folgende Skript ein: {"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))Knotenadresse $(ci.cmdb_ci_workload_config_provider[name=${parameter.WorkloadConfigProvider}].url)Skript Für CreateStapelvorgang
${CloudScript.scripts.TerraformDeploy}Skript Für DeleteStapelvorgang
${CloudScript.scripts.DestroyTerraform} -
Auf der Registerkarte Antwortprozessor konfigurieren Sie die Antwortprozessoren, indem Sie Ressourcenskripts anhängen.
Sie haben dem Ressourcenblock beim Erstellen des Ressourcenblocks Ressourcenskripts hinzugefügt.
- Wählen Sie in der Liste „Vorgang“ den Vorgang CreateStack oder DeleteStack aus.
-
Klicken Sie bei Antwortprozessor hinzufügen auf das Hinzufügen-Symbol
.
- Klicken Sie auf die Unterregisterkarte Ressourcenskript, und klicken Sie dann auf Neu.
-
Füllen Sie das Formular aus.
Tabelle : 1. Neuer Datensatz Feld Beschreibung Name Geben Sie einen Namen (z. B. Create_AzureTF_Stack_Response_Processor) für das Ressourcenskript ein. Typ Wählen Sie einen Typ (Antwortprozessor) für das Skript aus. Skript Ressourcenskript zum Erstellen
Geben Sie das folgende Skript ein: 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); }Skript Ressourcenskript zum Löschen
Geben Sie das folgende Skript ein: 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); } - Wählen Sie in der Liste Skriptname das Skript aus, das dem ausgewählten Vorgang entspricht, und klicken Sie auf Absenden.
-
Ändern Sie den Status des Ressourcenblocks von Entwurf in Veröffentlicht.
Der Ressourcenblock „Rechenzentrum“ wird vom Status „Entwurf“ in den Status „Veröffentlicht“ verschoben, und Sie können keine weiteren Änderungen am Ressourcenblock vornehmen. Sie können einen Ressourcenblock nur ändern, nachdem Sie den Status auf Entwurf festgelegt haben.