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.
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âmetroworkingDirectory
. - 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
.
Módulos
O serviço Resource Manager suporta as seguintes origens do módulo Terraform:
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.
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.
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)
Documentos do Esquema
Os documentos de esquema são recomendados para configurações do Terraform ao usar o Resource Manager. Consulte Estender Páginas da Console Usando Documentos de Esquema.