Configurar a descoberta de recursos
Configure a descoberta de recursos para gerar arquivos do Terraform para recursos existentes em seu compartimento.
Use o recurso de descoberta de recursos do OCI para:
- Crie arquivos de estado para recursos existentes na Console e adicione esses recursos a uma configuração do Terraform.
- Duplique sua infraestrutura existente em uma nova tenancy ou região.
- Detecte desvio de estado para recursos atualizados.
Neste tutorial, você configura a funcionalidade de descoberta de recursos do provedor Oracle Cloud Infrastructure Terraform no seu ambiente local. Para confirmar sua configuração, execute a descoberta de recursos para extrair informações da sua tenancy e criar um script para ela.
As principais tarefas incluem:
- Crie chaves RSA.
- Instale arquivos binários do provedor do Terraform OCI.
- Configure as variáveis de autenticação da API do provedor OCI Terraform.
- Autentique os comandos da CLI do provedor do OCI.
- Crie um script no seu ambiente, com relação aos domínios de disponibilidade na sua tenancy, por meio da funcionalidade de descoberta de recursos.

Para obter mais informações, consulte Casos de Uso e Benefícios.
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:
- Cloud ShellObservação
Se você estiver usando o Oracle Cloud Infrastructure Cloud Shell, o Provedor Terraform do OCI já estará instalado e você não precisará criar chaves RSA. Ignore essa seção e vá para Adicionar Política de Lista.
- Cloud Shell
- Como instalar o Linux no Windows com WSL (WSL)
- Git for Windows para acessar uma VM com Linux.
1. Preparar
Prepare seu ambiente para autenticar e executar comandos de descoberta de recursos. Além disso, colete as informações de que sua conta precisa para autenticar seus comandos.
Você cria chaves RSA para a API acessando sua conta do Oracle Cloud Infrastructure.
Se você estiver usando o Cloud Shell ou o Resource Manager, ignore a criação das chaves RSA. Você já está autenticado quando acessa a Console do OCI.
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 comandos do Provedor do OCI Terraform e copie-as no seu notebook.
Se você estiver usando o Cloud Shell, só precisará localizar o
<tenancy-ocid>
na etapa a seguir.Se você estiver usando o Cloud Shell, ignore esta seção.
Instale a versão mais recente dos binários do Provedor de OCI Terraform v4.2+:
2. Criar um Script de Autenticação
Crie um script de shell para designar informações de autenticação às variáveis de autenticação do provedor do OCI. Sua conta do Oracle Cloud Infrastructure autentica os comandos do provedor do OCI por meio dos valores designados a esses parâmetros.
Se você estiver usando o Cloud Shell ou o Resource Manager, não precisará adicionar autenticação. Prossiga para a seção 3. Descobrir um Recurso.
- Vá para Autenticação (Descoberta de Recursos).
- Defina as seguintes variáveis de ambiente para autenticação baseada em Chave de API:
- TF_VAR_tenancy_ocid
- TF_VAR_user_ocid
- TF_VAR_fingerprint
- TF_VAR_private_key_path
- TF_VAR_region
Nesta seção, você executa o arquivo provider-oci.sh
para adicionar as variáveis de autenticação do provedor do OCI às variáveis de ambiente.
3. Descobrir um Recurso
Descubra os domínios de disponibilidade em sua tenancy.
Cada tenancy tem uma lista de domínios de disponibilidade. Ao descobrir os domínios de disponibilidade na sua região, você confirma que:
- Sua conta do Oracle Cloud Infrastructure pode autenticar seus comandos do provedor do Oracle Cloud Infrastructure.
- Você pode obter informações da sua conta com a funcionalidade de descoberta de recursos.
- Em seu diretório
$HOME
, crie um diretório chamadoresource-discovery
.cd
mkdir resource-discovery
- Se você estiver usando o Cloud Shell, localize o arquivo do Provedor Terraform do OCI instalado no diretório
/usr/bin
.ls /usr/bin
O nome do arquivo é:
terraform-provider-oci_<version>
Nome do arquivo de exemplo:
terraform-provider-oci_v5.2.1
- Execute o seguinte comando:
- No Cloud Shell:
terraform-provider-oci_<version> -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
- Em sua instância de computação ou em seu ambiente local:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
Importante
- Substitua
<tenancy-ocid>
pelas informações de Reunir Informações Necessárias. - Se você estiver usando o Cloud Shell, substitua
terraform-provider-oci_<version>
pelo nome do arquivo encontrado na etapa 2.
Amostra de saída:
... INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-1' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-2' INFO <date> [INFO] ===> Generating resource 'oci_identity_availability_domain.export_QnsC-US-ASHBURN-AD-3' ... INFO <date> Found 6 'availability_domain' resources. Generated under '/<home-directory>/resource-discovery/availability_domain.tf'. INFO <date> === COMPLETED ===
Observação
- O OCID da tenancy é o OCID do compartimento para o compartimento raiz. Fornecer um
<compartment-ocid>
específico ou seu<tenancy-ocid>
tem como resultado os mesmos domínios de disponibilidade. - Para descobrir recursos de identidade, você não precisa mencionar um OCID de compartimento. No exemplo anterior, você obterá o mesmo resultado se removesse o
compartment_id
do comando. Ocompartment_id
existe para você aprender a sintaxe de outros serviços.
- No Cloud Shell:
- mensagem de erro: Falha ao consultar pacotes de provedores disponíveis:
- Se você estiver em uma VPN, verifique suas configurações de proxy.
- erros 401 - (Service erro:NotAuthenticated):
- Você tem um valor incorreto para um dos seguintes itens:
- OCID da Tenancy
- OCID do Usuário
- impressão digital
- Chave privada RSA (o caminho ou a chave)
- Você tem um valor incorreto para um dos seguintes itens:
- esse host não está disponível:
- Você tem um valor incorreto para:
- identificador da região
- Você tem um valor incorreto para:
- Vá para Uso (Descoberta de Recursos).
Duas opções de comando são listadas.
- Selecione a opção de comando que usa
compartment_id
como um comando base:terraform-provider-oci -command=export -compartment_id= -output_path=
- Atualize o comando base:
- Em vez de
terraform-provider-oci
, use seu comando de link simbólico:tf-oci
- Revise a seção Descrição do Parâmetro para adicionar valores apropriados aos parâmetros no comando base:
- Use o comando
export
para executar a descoberta de recursos:-command=export
- Adicione o OCID do compartimento no qual você está descobrindo recursos:
-compartment_id=<tenancy-ocid>
- Crie e depois especifique um diretório para os recursos descobertos:
Exemplo:
-output_path=$HOME/resource-discovery
- Use o comando
- Em vez de
- Procure a frase
availability_domain
e observe as seguintes informações:Resources that are dependent on availability domains will be generated under availability_domain.tf file. These include: oci_core_boot_volume oci_file_storage_file_system oci_file_storage_mount_target oci_file_storage_snapshot
- Para serviços, use:
availability_domain
(Embora não seja um serviço, ele funciona com serviço.)- Exemplo:
-services=availability_domain
- Você não precisa de aspas nos nomes de serviço.
- Construa o comando:
Por exemplo:
tf-oci -command=export -compartment_id=<tenancy-ocid> -services=availability_domain -output_path=$HOME/resource-discovery
Observação
O comando de descoberta de recursos não cria um diretório para os recursos descobertos. Crie um diretório e especifique o caminho no seu comando.
Parabéns! Sua conta do Oracle Cloud Infrastructure agora pode autenticar seus comandos do provedor do Terraform OCI. E seu ambiente está pronto para executar os comandos de descoberta de recursos.
Referências:
O Que Vem a Seguir
Explore outros tutoriais do Terraform:
Para explorar mais informações sobre desenvolvimento com produtos Oracle, confira estes sites: