Configurar o OCI Terraform
Configure os scripts do provedor Terraform do Oracle Cloud Infrastructure, documentados no Registro do Terraform, para conexão com uma conta do OCI. Confirme a configuração extraindo informações da tenancy.
As principais tarefas incluem:
- Crie chaves RSA.
- Configure os scripts do provedor Terraform do Oracle Cloud Infrastructure:
- Autentique seus scripts do Terraform.
- Obtenha informações sobre os domínios de disponibilidade em sua tenancy.

Para obter mais informações, consulte:
Antes de Começar
Para executar este tutorial com sucesso, você precisa ter o seguinte:
- Uma conta no Oracle Cloud Infrastructure. Consulte Solicitar e Gerenciar Promoções do Oracle Cloud Grátis
- Um ambiente MacOS, Linux ou Windows:
- MacOS
- Linux (Qualquer distribuição)
- Você pode instalar uma VM Linux com uma forma de Computação Always Free no Oracle Cloud Infrastructure. Consulte Free Tier: Instalar Apache e PHP em uma Instância Oracle Linux.
- Oracle Cloud Infrastructure Cloud Shell:
- Como instalar o Linux no Windows com WSL (WSL)
- Git for Windows para acessar uma VM com Linux.
Este tutorial usa um ambiente Oracle Linux VM com uma forma AMD para seus exemplos, mas você pode usar qualquer ambiente mencionado nesta seção.
1. Preparar
Prepare seu ambiente para autenticar e executar scripts do Terraform. Além disso, obtenha as informações de que sua conta precisa para autenticar os scripts.
Ignore a criação de chaves RSA se:
- Você está usando o Cloud Shell ou o Resource Manager. Você já está autenticado quando acessa a Console do Oracle Cloud.
- Você já criou chaves RSA para o tutorial Configurar Descoberta de Recursos.
Agora você configurou as chaves RSA para estabelecer conexão com sua conta do OCI.
- Referência
- Como Gerar uma Chave de Assinatura da API
Se seu nome de usuário estiver no grupo Administrators
, ignore esta seção. Caso contrário, peça ao administrador para adicionar a seguinte política à sua tenancy:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancy
Com esse privilégio, você pode listar todos os recursos da sua tenancy.
- Acesse a Console do Oracle Cloud.
- No menu de navegação , selecione o menu Perfil
e, em seguida, selecione Definições do usuário ou Meu perfil, dependendo da opção que você vir.
- Selecione Grupos ou Meus grupos, dependendo da opção exibida.
- Em um bloco de notas, copie o nome de um grupo ao qual seu nome de usuário pertence.
- Abra o menu de navegação e selecione Identidade e Segurança. Em Identidade, selecione Políticas.
- Selecione o compartimento:
<your-tenancy>(root)
- Selecione Criar Política.
- Na página Criar Política, informe os seguintes valores:
- Nome:
list-resources
- Descrição:
Allow the group <a-group-that-your-username-belongs-to> to list the resources in this tenancy.
- Compartimento:
<your-tenancy>(root)
- Nome:
- Para Criador de Política, selecione Mostrar editor manual.
- Cole na seguinte política:
allow group <a-group-that-your-username-belongs-to> to read all-resources in tenancy
- Selecione Criar.
Referência: Políticas Comuns
Prepare as informações necessárias para autenticar seus scripts do Terraform e copie as informações em um bloco de notas.
2. Criar Scripts
Crie scripts para autenticação, para extrair dados da sua conta e imprimir saídas.
required_providers
para declarar as versões necessárias do provedor.Use as seguintes variáveis para autenticação baseada em Chave de API:
tenancy_ocid
user_ocid
private_key_path
fingerprint
region
Não é necessário instalar o provedor. O provedor é baixado quando você executa os scripts neste tutorial.
provider.tf
e obtém informações da sua conta.No Terraform, para extrair dados, você usa uma origem de dados. A extração de dados de uma origem de dados é semelhante ao método GET em APIs REST.
- Vá para Provedor do Oracle Cloud Infrastructure.
- Na caixa Filtro no canto superior esquerdo, digite
availability domains
. - Em Identidade, vá para Origens de Dados e selecione oci_identity_availability_domains.
O título da página é o tipo de recurso:
oci_identity_availability_domains
- Localize o nome da Origem de Dados no título da página:
- Origem de Dados:
- Na seção Referência de Argumento, localize todos os argumentos (entradas) identificados como (Necessário):
- compartment_id
- Construa um bloco de origem de dados:
- Declarar uma origem de dados com a palavra-chave:
data
. - Adicione um label para o nome da origem de dados:
"oci_identity_availability_domains"
- Adicione um label de sua escolha para o nome local:
- O label pode conter letras, dígitos, sublinhados (
_
) e hifens (-
). O primeiro caractere não deve ser um dígito. - Este tutorial usa o nome local,
"ads"
, para construirdata "oci_identity_availability_domains" "ads"
.
- O label pode conter letras, dígitos, sublinhados (
- Dentro do bloco de código, forneça valores para todos os argumentos obrigatórios.
- Exemplo:
compartment_id = "<some-compartment-ocid>"
- Exemplo:
- Para argumentos opcionais, forneça valores para restringir os resultados da extração. Somente algumas origens de dados têm argumentos opcionais.
- Declarar uma origem de dados com a palavra-chave:
A origem de dados oci_identity_availability_domains
extrai uma lista de domínios de disponibilidade. Nesta seção, você declara um bloco de saída para imprimir as informações extraídas.
- Vá para Referência de Atributos (oci_identity_availability_domains).Observação
Os atributos são as saídas que você pode retornar para a origem de dadosoci_identity_availability_domains
. - Encontre os atributos:
- Atributo:
availability_domains:
- A lista de domínios de disponibilidade
- Se você gerar
availability_domains:
, obterão três atributos para cada domínio de disponibilidade na lista:- compartment_id
- id
- nome
- Atributo:
- Construa um bloco de saída da origem de dados:
- Declarar um bloco de saída com a palavra-chave:
output
- Adicione um rótulo a ser impresso com os resultados de saída:
- O label pode conter letras, dígitos, sublinhados (
_
) e hifens (-
). O primeiro caractere não deve ser um dígito. - Exemplo:
"all-availability-domains-in-your-tenancy"
- O label pode conter letras, dígitos, sublinhados (
- Dentro do bloco de código, informe um valor para a saída da origem de dados com a expressão:
value = data.<data-source-name>.<local-name-for-data-source>.<attribute>
- Exemplo:
value = data.oci_identity_availability_domains.ads.availability_domains
- Declarar um bloco de saída com a palavra-chave:
3. Executar Scripts
Execute seus scripts do Terraform. Depois que sua conta autentica os scripts, o Terraform extrai os domínios de disponibilidade da sua tenancy.
tf-provider
.Agora você tem uma pasta chamada .terraform
que inclui os plug-ins do provedor oci
.
plan
do Terraform.
terraform plan
Exemplo de saída:
data.oci_identity_availability_domains.ads: Reading...
data.oci_identity_availability_domains.ads: Read complete after 1s [id=xxx]
Changes to Outputs:
+ all-availability-domains-in-your-tenancy = [
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.xxx"
+ name = "QnsC:US-ASHBURN-AD-1"
},
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.yyy"
+ name = "QnsC:US-ASHBURN-AD-2"
},
+ {
+ compartment_id = "ocid1.tenancy.oc1..xxx"
+ id = "ocid1.availabilitydomain.zzz"
+ name = "QnsC:US-ASHBURN-AD-3"
},
]
You can apply this plan to save these new output values to the Terraform state, without changing any real
infrastructure.
- Você está extraindo dados, então o plano mostra que você só está adicionando saídas. Você não está adicionando, alterando ou destruindo nenhum recurso.
- Você está usando o arquivo
output.tf
em vez da opção-out
, para que possa ignorar a seguinte mensagem:Note: You didn't use the -out option to save this plan, so Terraform can't guarantee to take exactly these actions if you run "terraform apply" now.
Parabéns! Sua conta do Oracle Cloud Infrastructure agora pode autenticar seus scripts do provedor do Oracle Cloud Infrastructure Terraform.
Referências:
Você pode encontrar as mensagens de erro a seguir ao executar seus scripts do Terraform.
Erros 401 - (Service error:NotAuthenticated)
Uma das seguintes variáveis tem um valor incorreto:
- OCID da Tenancy
- OCID do Usuário
- Impressão Digital
- Chave privada RSA (o caminho ou a chave)
Não é possível criar o cliente; configuração inválida: não foi encontrada uma configuração adequada para a chave privada
Os scripts do Terraform não podem localizar a chave privada RSA.
Esse host não está presente.
O identificador de região tem um valor incorreto.
Falha ao consultar pacotes de provedores disponíveis
Se você estiver em uma VPN, verifique as configurações de proxy.
O Que Vem a Seguir
Para o próximo tutorial Terraform: Vamos Começar, vá para:
Para explorar mais informações sobre desenvolvimento com produtos Oracle, confira estes sites: