Adicionar interface do Terraform Orchestration em um bloco de recursos
Depois de ativar o app da Store do Terraform para Cloud Provisioning and Governance, para oferecer suporte a operações baseadas em nuvem para provedores de nuvem usando o Terraform Open Source Edition. Adicione a interface de Orquestração do Terraform no bloco de recursos para executar operações baseadas em nuvem por meio de modelos do Terraform.
Antes de Iniciar
Procedimento
- No Portal de administração de nuvem, navegue até Design > Bloco de Recursos.
- Clique no bloco de recursos, por exemplo, Azure Datacenter.
- Mova o estado do bloco de recursos de Publicado para Rascunho para torná-lo editável.
- Navegar até Informações gerais > Interface de Convidadoe, em seguida, clique em Novo.
- Pesquise e selecione a Interface de Orquestração do Terraform na lista Interface de convidado e clique em Enviar.
- Clique na guia Operações.
- Na guia Parâmetrosde entrada, navegue até Interface e selecione Terraform Orquestração Interface
-
Na guia Parâmetros de entrada, configure as entradas da operação de CAPI.
Na interface CAPI, que neste caso é a Interface de Orquestração do Terraform, abra o método CreateStack. As entradas do CAPI são exibidas na guia Entrada, onde você cria parâmetros.
A guia Parâmetros de entrada é onde os usuários inserem valores. Você pode mapear esses parâmetros de entrada para os parâmetros na guia Entrada. Para fazer isso, copie o valor de Mapeamento da guia Parâmetros de entrada para o campo Valor na Etapas > Entrada guia.
Se esta etapa estiver invocando um script e esse script exigir argumentos para retornar valores, você poderá adicionar um novo parâmetro de entrada para cada argumento. Use esta sintaxe no campo Valor : $ {parameter.arg1}.
- Clique na subguia Etapas em Operações.
- Clique em Adicionar etapa.
-
Preencha os campos de formulário.
Campo Descrição Tipo de Operação Selecione o tipo de operação.
Invocar API de nuvem: selecione esta opção para selecionar um provedor, interface e método do CAPI.
Provedor de API Selecione a API que fornece as interfaces necessárias. Os provedores fazem parte da API da nuvem (CAPI).
Por exemplo, o CAPI fornece o provedor Terraform OpenSource, que fornece a Interface de Orquestração de configuração.
Este valor aparecerá se você selecionar o tipo de operação Invocar API em nuvem.
Interface de API Selecione a interface que tem os métodos que você deseja usar. Para este exemplo, a Interface de Orquestração de configuração fornece várias interfaces ou métodos que o sistema usa durante o provisionamento. Método de API Selecione o método para executar a operação. Neste exemplo, ExecuteCommand é necessário para provisionar modelos do Terraform. Versão de CAPI Insira a versão da API CAPI. Condição Insira uma condição opcional que deve ser atendida antes que o sistema use esta etapa. -
Clique em Enviar.
As guias Processador de entrada e de resposta são exibidas para a etapa.
-
Na guia Entrada, configure as entradas da operação de CAPI.
Na interface CAPI, que neste caso é a Interface de Orquestração de Configuração, abra o método ExecuteCommand. As entradas do CAPI são mostradas na guia Entrada, onde você cria parâmetros.
Lembre-se de que os parâmetros na guia Parâmetros de entrada são onde os usuários inserem valores. Você pode mapear esses parâmetros de entrada para os parâmetros na guia Entrada. Copie o valor de Mapeamento da guia Parâmetros de entrada para o campo Valor na Etapas > Entrada guia.
Se esta etapa estiver invocando um script e esse script exigir argumentos para retornar valores, você poderá adicionar um novo parâmetro de entrada para cada argumento. Use esta sintaxe no campo Valor : $ {parameter.arg1}.
Nota:Mapeie os valores conforme mencionado na tabela a seguir para os seguintes parâmetros:Parâmetro Valor Parâmetrosadicionais Insira o seguinte script: {"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))Endereço do nó $(ci.cmdb_ci_workload_config_provider[name=${parameter.WorkloadConfigProvider}].url)Script Para operação CreateStack
${CloudScript.scripts.TerraformDeploy}Script Para operação DeleteStack
${CloudScript.scripts.DestroyTerraform} -
Na guia Processador de resposta, configure os processadores de resposta anexando scripts de recursos.
Você teria adicionado Scripts de Recurso ao bloco de recursos ao criar o Bloco de Recursos.
- Na lista Operação, selecione a operação CreateStack ou DeleteStack.
-
Clique no ícone de adição
para Adicionar processador de resposta.
- Clique na subguia Script de recurso e em Novo.
-
Preencha o formulário.
Tabela 1. Novo registro Campo Descrição Nome Insira um nome (por exemplo, Create_AzureTF_Stack_Response_Processor) para o script do recurso. Tipo Selecione um tipo (Processador de resposta) para o script. Script Script de recurso para criar
Insira o seguinte script: 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 recurso para exclusão
Insira o seguinte script: 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); } - Na lista Nome do script, selecione o script correspondente à operação selecionada e clique em Enviar.
-
Mova o estado do bloco de recursos de Rascunho para Publicado.
O bloco de recursos do datacenter passa do estado de rascunho para o estado publicado e você não pode fazer mais mudanças no bloco de recursos. Você só pode modificar um bloco de recursos depois de definir o status como Rascunho.