Criando espaços de trabalho e importando seu Terraform

Use um Schematics para gerenciar seus recursos do IBM Cloud Schematics com o Terraform. As configurações do espaço de trabalho definem o mecanismo do Terraform hospedado em um repositório do Git a ser utilizado, juntamente com quaisquer variáveis de entrada para personalizar o modelo.

IBM Cloud Schematics está descontinuando o uso das versões mais antigas do Terraform e introduzindo suporte para a versão mais recente do Terraform. Para obter mais informações, consulte o ciclo de vida de descontinuação do Terraform no Schematics e o Cronograma de descontinuação.

Antes de Iniciar

Certifique-se de que o endpoints location e url estejam apontando para a mesma região ao criar ou atualizar os espaços de trabalho e ações do Schematics. Para obter mais informações sobre local e terminal, consulte Onde suas informações estão armazenadas?

Criação de um espaço de trabalho usando a interface do usuário

  1. Faça login no consoleIBM Cloud.
  2. Clique no ícone de hambúrguer Menu > Platform Automation > Schematics > Terraform > Create workspace.
    • Na seção “Especificar modelo ”:
      • URL do repositório do GitHub, GitLab, ou Bitbucket- <provide your Terraform Git repository URL.

      • Token de acesso pessoal- <leave it blank>. Você pode clicar em Open reference picker para selecionar sua referência de chave Secrets Manager. Para obter mais informações, consulte a criação de uma instância do Secrets Manager.

      • Versão do Terraform - terraform_v1.4. É necessário selecionar a versão do Terraform 1.4 ou uma versão posterior. Por exemplo, se seus modelos do Terraform forem criados usando o Terraform v1.4, selecione o parâmetro Terraform version como terraform_v1.4. Você pode selecionar Terraform_v1.5 para usar a versão do Terraform 1.5 e terraform_v1.4 para usar a versão do Terraform 1.4. Quando você especifica “ terraform_v1.5 ”, isso significa que os usuários podem ter endereços do tipo Terraform v1.5.0, v1.5.1 ou v1.5.7, e assim por diante. O Schematics oferece suporte a Terraform_v1.x e também planeja disponibilizar novas versões após 30 to 45 days do lançamento da Linguagem de Configuração do HashiCorp (HCL).

        O Schematics suporta a liberação atual do Terraform v1.4, por meio do Terraform_v1.6. O Terraform deve utilizar a restrição de versão, como >, >= ou ~> para o required_version do Terraform, a fim de selecionar automaticamente a versão atual.

        terraform {
        required_version = "~> 1.1"
        }
        
      • Clique em Next.

    • Na seção “Detalhes do Workspace ”. Insira um nome para o seu workspace name. O nome pode ter até 128 caracteres de comprimento e pode incluir caracteres alfanuméricos, espaços, traços e sublinhados.
      • Nome da área de trabalho como schematics-agent-service
      • Tags como my-tags.. Opcional: insira tags para sua área de trabalho. Você pode usar as tags mais tarde para encontrar seu espaço de trabalho mais rapidamente.
      • Grupo de recursos como default ou outro grupo de recursos para essa área de trabalho
      • Local como North America ou outra região para esta área de trabalho.. Decida onde você quer criar seu espaço de trabalho? A localização determina onde suas tarefas do Schematics são executadas e onde os dados do seu espaço de trabalho são armazenados? Você pode escolher entre uma região, como a América do Norte, ou uma cidade metropolitana, como Frankfurt ou Londres. Se você selecionar um local, o Schematics determinará o local com base na disponibilidade. Se você selecionar uma cidade metropolitana, sua área de trabalho será criada nesse local. Para obter mais informações sobre onde seus dados são armazenados, consulte “Onde suas informações são armazenadas?” A localização que você escolher não depende da região ou regiões onde você deseja provisionar seus recursos na nuvem. O console não é compatível com todos os locais disponíveis. Para criar a área de trabalho em um local diferente, use a CLI ou a API no lugar.
      • Opcional: insira um nome descritivo para sua área de trabalho.
      • Clique em Next.
    • Clique em Create. Sua área de trabalho é criada com um estado Rascunho e a página Configurações da área de trabalho é aberta.

Importando seu modelo do Terraform

Se você deseja fazer upload de um arquivo tar (.tar) em vez de importar sua área de trabalho para um repositório Git, deverá usar o comando ibmcloud schematics workspace upload e ver a API upload de um arquivo tar para sua área de trabalho.

  1. Na página Configurações da área de trabalho, insira o ícone de edição para editar o seu Repository URL. O link pode ter como destino a ramificação master, outras ramificações ou um subdiretório.

    • Exemplo para a ramificação master: https://github.com/myorg/myrepo
    • Exemplo para outras ramificações: https://github.com/myorg/myrepo/tree/mybranch
    • Exemplo para subdiretório: https://github.com/mnorg/myrepo/tree/mybranch/mysubdirectory
  2. Se você deseja usar um repositório Git privado, insira o seu token de acesso pessoal. O token de acesso pessoal é usado para autenticar-se no repositório Git para acessar o seu modelo do Terraform. Você pode clicar no link Open reference picker para selecionar uma referência de chave Secrets Manager. Para obter mais informações, consulte “Criação de um token de acesso pessoal para a linha de comando ”. E para validar e clonar o modelo com segurança, você pode clicar em Open reference picker para selecionar sua referência de chave Secrets Manager. Para obter mais informações, consulte a criação de uma instância do Secrets Manager.

  3. Selecione o Terraform version no qual seus arquivos de configuração do Terraform estão gravados.

  4. Clique na opção I understand the changes that could happen if I edit this URL and I agree to these happening caixa de seleção.

  5. Clique em Salvar. O IBM Cloud Schematics automaticamente faz downloads dos arquivos de configuração do Terraform do seu repositório, os escaneia quanto a erros de sintaxe e recupera todas as variáveis de entrada que você declarou em seus arquivos de configuração. Quando todos os arquivos de configuração são transferidos por download com sucesso e nenhum erro de sintaxe é localizado, o estado da área de trabalho muda para Inativo.

    Após seus arquivos de configuração do Terraform serem escaneados, será possível visualizar os resultados na página Atividade da área de trabalho. O número total de arquivos escaneados no repositório de origem é exibido como scanned. O número total de arquivos que são vulneráveis, como extensões de arquivo não suportadas é exibido como discarded. Clique em Tarefas para localizar os detalhes dos arquivos que foram escaneados e descartados. Para obter mais informações sobre como visualizar registros, consulte “Analisando os detalhes da tarefa ‘ Schematics ’ ”.

  6. Revise os valores da variável de entrada para seu modelo do Terraform. Para alterar o valor de uma variável de entrada, clique em “Editar” no menu de ações da Área de Trabalho. Dependendo do tipo de dados utilizado pela sua variável, você deve inserir o valor em um formato específico. Consulte a tabela a seguir para ver exemplos de valores para cada tipo de dados compatível.

    | Tipo | Exemplo | | --- | -- | | number | 4.56 | | string | valor de exemplo | | bool | false | | map(string) | {key1 = "value1", key2 = "value2"} | | set(string) | ["olá", "ele"] | | map(number) | {internal = 8080, external = 2020} | | list(string) | ["us-south", "eu-gb"] | | list | ["value", 30] | | list(list(string)) | :[{internal = 8300 external = 8300 protocol = "tcp"},{internal = 8301 external = 8301 protocol = "ldp" }] : list(object({internal = number external = number protocol = string})) : [{internal = 8300 external = 8300 protocol = "tcp"} {internal = 8301 external = 8301 protocol = "ldp"}]|

Usando modelos do Terraform em IBM Cloud

Você pode Gerenciar recursos de nuvem com Schematics para começar a criar, atualizar ou excluir recursos de nuvem com o Terraform.

Criação de um espaço de trabalho usando a CLI

  1. Crie um arquivo JSON na sua estação de trabalho local e adicione a configuração do seu espaço de trabalho. Para conhecer mais opções de configuração ao criar o espaço de trabalho, consulte o comando ibmcloud schematics workspace new .

    Para criar uma área de trabalho com o Agente, consulte o comando ibmcloud schematics workspace new with Agent

    {
    "name": "<workspace_name>",
    "type": [
        "<terraform_version>"
    ],
    "location": "<location>",
    "description": "<workspace_description>",
    "tags": [],
    "template_repo": {
        "url": "<github_source_repo_url>"
        "branch": "master"
    },
    "template_data": [
        {
        "folder": ".",
        "type": "<terraform_version>",
        "variablestore": [
          {
            "name": "<variable_name1>",
            "value": "<variable_value1>",
            "type": "string",
            "secure": true
          },
          {
            "name": "<variable_name2>",
            "value": "<variable_value2>",
            "type": "bool",
            "secure": false
          }
        ]
        }
    ]
    }
    
    Descrição do componente do arquivo JSON
    Parâmetro Descrição
    workspace_name Insira um nome para sua área de trabalho. O comprimento máximo do limite de caracteres é configurado para 1 MB.. Para obter mais informações, consulte Projetando sua estrutura da área de trabalho.
    terraform_version A versão do Terraform que você deseja usar para executar seu código do Terraform. Para usar o Terraform version 1.4, insira terraform_v1.4 e de forma semelhante terraform_v1.5 e terraform_v1.6. Certifique-se de que seus arquivos de configuração do Terraform sejam compatíveis com a versão do Terraform especificada. Se a variável “version” do Terraform não for especificada, por padrão, o Schematics seleciona a versão a partir do seu modelo.
    location Insira o local no qual você deseja criar sua área de trabalho. O local determina onde suas ações do Schematics são executadas e onde seus dados da área de trabalho são armazenados. O local é independente da região na qual você deseja criar seus serviços da IBM Cloud.
    description Insira uma descrição para sua área de trabalho.
    github_source_repo_url Insira a URL para o repositório GitHub ou GitLab no qual seus arquivos de configuração do Terraform estão armazenados. Se você optar por criar sua área de trabalho sem um repositório GitHub, sua área de trabalho será criada com um estado rascunho. Para conectar sua área de trabalho a um repositório GitHub posteriormente, deve-se usar o comando ibmcloud schematics workspace update.
    variable_name Opcional: insira o nome da variável de entrada que você declarou em seus arquivos de configuração do Terraform.
    variable_type Opcional: insira o tipo de dados de sua variável de entrada. Para tipos de dados suportados, consulte o comando ibmcloud schematics workspace new.
  2. Crie a área de trabalho.

    ibmcloud schematics workspace new --file workspace.json
    
  3. Verifique se sua área de trabalho foi criada. Certifique-se de que seu espaço de trabalho esteja no estado “Inativo ”.

    ibmcloud schematics workspace list
    
  4. Consulte Gerenciando recursos de nuvem com Schematics para atualizar ou excluir recursos de nuvem com o Terraform.

Criando uma área de trabalho usando API

  1. Siga as etapas para recuperar seu token de acesso do IAM e autenticar com o IBM Cloud Schematics usando a API.

  2. Crie a área de trabalho usando o Terraform

    curl --request POST --url https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>" -d '{"name": "<workspace_name>","type": ["<terraform_version>"],"location": "<location>","description": "<description>","template_repo": {"url": "<github_source_repo_url>"},"template_data": [{"folder": ".","type": "<terraform_version>","variablestore": [{"value": "<variable_value>","name": "<variable_name>","type": "<variable_type>","secure": true}]}]}'
    
    Descrição do componente do arquivo JSON
    Parâmetro Descrição
    iam_access_token Insira o token de acesso do IAM que você recuperou na etapa 1.
    workspace_name Insira um nome para sua área de trabalho. O comprimento máximo do limite de caracteres é configurado para 1 MB.. Para obter mais informações, consulte Projetando sua estrutura da área de trabalho.
    terraform_version A versão do Terraform que você deseja usar para executar seu código do Terraform. Insira terraform_v1.4 para usar o Terraform versão 1.4e de forma semelhante terraform_v1.5 e terraform_v1.6. Certifique-se de que seus arquivos de configuração do Terraform sejam compatíveis com a versão do Terraform especificada. Se a variável “version” do Terraform não for especificada, por padrão, o Schematics seleciona a versão do seu modelo.
    location Insira o local no qual você deseja criar sua área de trabalho. O local determina onde suas ações do Schematics são executadas e onde seus dados da área de trabalho são armazenados. O local é independente da região na qual você deseja criar seus serviços da IBM Cloud.
    description Insira uma descrição para sua área de trabalho.
    github_source_repo_url Insira o URL no repositório GitHub ou GitLab, onde seus arquivos de configuração do Terraform estão armazenados
    variable_name Opcional: insira o nome da variável de entrada que você declarou em seus arquivos de configuração do Terraform.
    variable_value Opcional: insira o valor para sua variável de entrada.
    variable_type Opcional: insira o tipo de dados de sua variável de entrada. Para tipos de dados suportados, consulte o comando ibmcloud schematics workspace new.
  3. Verifique se a área de trabalho foi criada com sucesso.

    curl -X GET https://schematics.cloud.ibm.com/v1/workspaces -H "Authorization: <iam_access_token>"
    
  4. Consulte Gerenciar recursos da nuvem com Schematics para atualizar ou excluir os recursos da nuvem.

Criando área de trabalho usando o Terraform

  1. Siga as etapas em Configurando o Terraform para Schematics para criar sua área de trabalho com o Terraform.

  2. Consulte Gerenciar recursos da nuvem com Schematics para atualizar ou excluir os recursos da nuvem.

Próximas etapas

A próxima etapa do trabalho com espaços de trabalho é a implantação de espaços de trabalho.