Usando Terraform para configurar Schematics

O Terraform em IBM Cloud® permite o provisionamento previsível e consistente de serviços IBM Cloud para criar rapidamente ambientes de nuvem complexos e com várias camadas, seguindo os princípios da Infraestrutura como Código ( IaC ). Da mesma forma, você pode automatizar o provisionamento, a atualização e a exclusão do seu espaço de trabalho IBM Cloud Schematics e das instâncias de ações usando o Terraform.

Procurando por um Terraform gerenciado na solução do IBM Cloud? Experimente o IBM Cloud Schematics. Com o Schematics, você pode usar a linguagem do Terraform com a qual está familiarizado, mas não precisa se preocupar em configurar e manter a linha de comando do Terraform e o plug-in do provedor IBM Cloud. O Schematics também fornece modelos predefinidos do Terraform que podem ser instalados no catálogo IBM Cloud.

Antes de começar, certifique-se de que você tenha o acesso necessário para criar e trabalhar com recursos do IBM Cloud Schematics.

Exemplo - Criação dos espaços de trabalho Schematics usando o Terraform

Conclua as etapas a seguir para criar uma área de trabalho Schematics usando o Terraform:

  1. Siga o Tutorial de introdução do Terraform no IBM Cloud para instalar a CLI do Terraform e configurar o IBM Cloud Provider Plug-in for Terraform. O plug-in abstrai o IBM Cloud APIs que é usado para provisionar, atualizar ou excluir recursos do Schematics.

  2. Crie os arquivos de configuração do Terraform denominados main.tf, terraform.tfvars e versions.tf.

    É possível usar a URL do Git de exemplo do Terraform https://github.com/IBM-Cloud/terraform-provider-ibm/tree/master/examples/ibm-api-gateway. Este exemplo usa a instância de serviço para configurar uma API para um serviço IBM Cloud de sua escolha. Agora é possível especificar o terminal de API que você deseja usar para acesso ao seu serviço e definir chaves de assinatura para que seja possível consumir com segurança sua API.

    Se você tiver uma área de trabalho criada em uma região diferente de us, deve-se configurar o terminal de API para essa região. Por exemplo, se a sua região especificada for eu, o terminal de API deverá ser especificado como IBMCLOUD_SCHEMATICS_API_ENDPOINT=https://eu.schematics.cloud.ibm.com na variável de ambiente. Para obter mais informações sobre os locais do espaço de trabalho Schematics e os pontos de extremidade a serem usados, consulte Onde minhas informações estão armazenadas?

    Em seguida, crie a área de trabalho do Schematics tf-testwks-apigwy no grupo de recursos default de sua região. Essa área de trabalho aponta para um modelo do Terraform de sua escolha que requer a versão terraform_v1.5 do Terraform.

    versions.tf

    O arquivo amostra versions.tf para especificar a versão do provedor que você precisa para criar a área de trabalho.

      terraform {
      required_version = ">=1.0.0, <2.0"
        required_providers {
          ibm = {
            source = "IBM-Cloud/ibm"
          }
        }
      }
    

    terraform.tfvars

    O arquivo de amostra terraform.tfvars para armazenar informações confidenciais, tais como credenciais. Para obter mais informações, consulte Referenciando credenciais por meio de um arquivo terraform.tfvars. Para criar chaves de API, consulte Criando chaves de 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.tf

    Revise o arquivo main.tf de amostra a seguir. Este arquivo chama as variáveis do arquivo terraform.tfvars usando a URL do Git e, em seguida, cria uma área de trabalho do Schematics usando sua chave API do 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
    }
    
    

    A tabela a seguir lista os parâmetros suportados ao criar e inicializar uma instância de serviço com o Terraform. Para obter mais informações sobre os parâmetros detalhados para criar o espaço de trabalho, consulte ibm_schematics_workspace recurso.

    Parâmetros suportados para criar áreas de trabalho do Schematics com o Terraform.
    Parâmetro Descrição
    description A descrição da área de trabalho.
    location O local no qual você deseja criar sua área de trabalho do Schematics e executar ações do Schematics.
    resource_group O ID do grupo de recursos no qual você deseja provisionar a área de trabalho,
    name O nome de sua área de trabalho. O nome pode ter até 128 caracteres de comprimento e pode incluir caracteres alfanuméricos, espaços, traços e sublinhados. Ao criar uma área de trabalho para seu próprio modelo Terraform, considere incluir o componente de microsserviço configurado com seu modelo Terraform e o ambiente do IBM Cloud no qual você deseja implementar os recursos em seu nome.
    tags Uma lista de tags que estão associadas à área de trabalho.
    template_env_settings Uma lista de variáveis de ambiente que você deseja aplicar durante a execução de uma ação do Terraform.
    template_git_url A URL do repositório Git, na qual você tem os detalhes de configuração para provisionar o recurso.
    template_type Especifique a versão do Terraform que você deseja aplicar à área de trabalho do Schematics.
  3. Inicialize a CLI do Terraform.

    terraform init
    

    Se o caminho da variável de ambiente para o Terraform não for configurado, você poderá ver o erro command not found: terraform. Corrija o erro configurando o caminho para o seu Diretório de instalação do Terraform.

  4. Crie um plano de execução do Terraform. O plano de execução do Terraform resume todas as ações que precisam ser executadas para criar a área de trabalho do Schematics em sua conta.

    terraform plan
    
  5. Crie a instância de área de trabalho do Schematics e a política de acesso do IAM no IBM Cloud.

    terraform apply
    

    Para obter mais informações sobre como solucionar os erros do comando terraform apply, consulte encontrar a causa raiz da falha do comando Schematics apply.

  6. No painel do Schematics, verifique se sua área de trabalho tf-testwks-apigwy foi criada. E os recursos são provisionados a partir da lista de recursos IBM Cloud Schematics.

  7. Verifique se a política de acesso foi atribuída com sucesso. Para obter mais informações, consulte Revisando o acesso designado no console.

O que vem a seguir?

Agora que você criou com sucesso sua primeira área de trabalho do Schematicscom o Terraform on IBM Cloud, é possível escolher entre as tarefas a seguir:

  • Saiba como criar um recurso de trabalho IBM Cloud Schematics para executar seu modelo do Terraform em IBM Cloud.
  • Para executar Ansible playbooks em IBM Cloud confira o recurso IBM Cloud Schematics action.
  • Explore outros recursos e fontes de dados do Terraform compatíveis para IBM Cloud Schematics ou verifique outros argumentos e atributos que você pode usar para os recursos do Terraform que foram usados no exemplo.
  • Simplifique o provisionamento usando o Terraform IBM Modules(TIM) de código aberto, seguro por padrão e pronto para uso corporativo.