Configurações do Terraform para o Resource Manager

Verifique os requisitos e as recomendações das configurações do Terraform usadas com o Resource Manager. Use o Terraform e o Resource Manager para instalar, configurar e gerenciar recursos usando o modelo infrastructure-as-code.

Para obter informações básicas sobre as configurações do Terraform, consulte Criando Configurações. Para obter instruções sobre como usar configurações com pilhas e jobs, consulte Gerenciando Pilhas e Jobs.

Para origens de configuração do Terraform suportadas com o Resource Manager, consulte Onde Armazenar Suas Configurações do Terraform.

Além de gravar seu próprio arquivo de configuração do Terraform, você também tem a opção de gerar uma configuração do Terraform de um compartimento existente usando a descoberta de recursos ou um modelo de amostra.

Cuidado

Não forneça credenciais do usuário ou outras informações confidenciais nas configurações do Terraform.

Requisitos

Os arquivos de configuração do Terraform usados com o Resource Manager devem atender aos requisitos a seguir.

Provedor Terraform

Ao usar o serviço Resource Manager, o campo region do bloco provider "oci" é o único campo obrigatório. Para obter mais informações sobre como definir provedores, consulte Requisitos do Arquivo de Configuração.

Estrutura de Arquivos

O serviço Resource Manager requer a seguinte estrutura de arquivos para a configuração do Terraform:

  • O diretório de trabalho deve conter pelo menos um arquivo .tf. O diretório de trabalho não pode conter um diretório .terraform.

    O diretório de trabalho é o caminho no qual você deseja executar o Terraform. Por padrão, o diretório de trabalho é o diretório-raiz da configuração (para uma configuração submetida a upload, a raiz do arquivo .zip). Ao usar a API, você pode especificar outra localização para o diretório de trabalho, definindo o parâmetro workingDirectory.

  • A configuração deve seguir as diretrizes especificadas em Criando Configurações.
  • Nenhum arquivo de estado do Terraform (.tfstate) pode existir na configuração.
  • Se você planeja fazer upload da configuração localmente, coloque todos os arquivos em um arquivo .zip.

Variáveis

Recomendamos o uso de um documento de esquema com sua configuração do Terraform para facilitar a entrada de usuários na Console do Oracle Cloud Infrastructure.

O serviço Resource Manager não tem requisitos para variáveis nas configurações do Terraform. O serviço Resource Manager suporta o comportamento nativo do Terraform para tratar variáveis. O Terraform define variáveis de suas definições de variáveis que usam restrições de tipo suportadas. Quando você executa um job, os valores de variável da pilha são adicionados como variáveis de ambiente no host Terraform do Resource Manager. Por exemplo, a VCN especificada em uma pilha para determinada variável de VCN é adicionada como uma variável de ambiente.

Observação

Quando definida na configuração do Terraform, as variáveis a seguir preenchem automaticamente com valores nas páginas da Console usadas para criar e editar a pilha. Os valores da pilha são usados quando você seleciona as ações do Terraform Plano, Aplicar e Destruir.

  • tenancy_ocid (OCID da tenancy)
  • compartment_ocid (OCID do compartimento)
  • region (região)
  • current_user_ocid (OCID do usuário atual)

Configuração do Provedor de Terceiros

Consulte provedores Terraform de terceiros nas configurações do Terraform usadas com o Resource Manager.

Por padrão, as novas pilhas do Resource Manager extraem provedores de terceiros do Registro do Terraform. (A menos que atualizado, determinadas pilhas mais antigas são extraídas do Resource Manager). Provedores personalizados também estão disponíveis para pilhas novas e atualizadas.

Como em qualquer configuração de provedor, recomendamos especificar versões. Os arquivos de bloqueio de dependência são gerenciados automaticamente para pilhas novas e atualizadas. Os provedores são atualizados dentro das restrições de versão da configuração do Terraform. Para obter instruções, consulte Recuperando os Fornecedores Mais Recentes.

Para obter mais informações sobre como adicionar provedores às configurações do Terraform, consulte Configuração do Provedor.

Exemplo de Configuração do Terraform para o Serviço Resource Manager

O exemplo a seguir mostra uma configuração do Terraform que está contida em um único arquivo. Esta amostra básica define apenas um provedor Terraform, um recurso do Oracle Cloud Infrastructure e um conjunto de variáveis.



variable "compartment_ocid" {}
variable "region" {}

provider "oci" {
  region = "${var.region}"
}

resource "oci_core_virtual_network" "vcn1" {
  cidr_block = "10.0.0.0/16"
  dns_label = "vcn1"
  compartment_id = "${var.compartment_ocid}"
  display_name = "vcn1"
}

Com mais frequência, as configurações do Terraform consistem em dois ou mais arquivos agrupados (para uma configuração carregada por upload, os arquivos seriam empacotados em um arquivo .zip). Para ver configurações mais complexas do Terraform que incluem vários arquivos, explore os exemplos em Exemplos de Provedor do Oracle Cloud Infrastructure do Terraform.

Dica

Crie pilhas rapidamente com configurações do Terraform do OCI de exemplo. Vá para Exemplos de Provedor do Terraform Oracle Cloud Infrastructure, navegue até a pasta da configuração desejada (como adm) e clique no botão Implantar no Oracle Cloud em "Botão Mágico" no arquivo readme.

Onde Armazenar Suas Configurações do Terraform

Ao criar uma pilha com o Resource Manager, você pode selecionar sua configuração do Terraform nas origens a seguir.

  • Arquivo .zip local
  • Pasta local
  • Bucket do Object Storage

    O conteúdo mais recente do bucket é usado automaticamente por qualquer job em execução na pilha associada.

  • Sistema de controle de código-fonte, como Git

    A versão mais recente da sua configuração é usada automaticamente por qualquer job em execução na pilha associada.

  • Modelo (configuração pré-criada do Terraform da Oracle ou de um modelo privado)
  • Compartimento existente (Descoberta de Recursos)