Automatize a implantação e as operações dos recursos do Oracle Cloud Infrastructure usando o serviço Resource Manager. Com as ferramentas compatíveis de Infraestrutura como Código (IaC), os engenheiros do DevOps podem desenvolver e implantar sua infraestrutura em qualquer lugar.
Uma configuração Terraform codifica sua infraestrutura em arquivos de configuração declarativos. O serviço Resource Manager permite que você compartilhe e gerencie configurações de infraestrutura e arquivos de estado em várias equipes e plataformas. Esse gerenciamento de infraestrutura não pode ser feito com instalações locais do Terraform e módulos do Oracle Terraform individuais. Para obter mais informações sobre o provedor Terraform do Oracle Cloud Infrastructure, consulte Provedor Terraform. Para obter uma introdução geral ao Terraform e ao modelo de "infraestrutura como código", consulte Comunidade do Terraform.
Veja a seguir descrições resumidas dos principais conceitos e componentes do serviço Resource Manager.
configuração
Informações para codificar sua infraestrutura. Use sua configuração para especificar os recursos do Oracle Cloud Infrastructure em uma determinada pilha. Por exemplo, especifique metadados do recurso, definições da origem de dados e declarações variáveis. Cada arquivo de configuração do Terraform é um formato HashiCorp de Linguagem de Configuração (HCL) ou JSON. Os arquivos formatados em HCL usam a extensão de arquivo .tf . Os arquivos formatados em JSON usam a extensão de arquivo .tf.json.
Informações de conexão a um sistema de controle de código-fonte em que seus arquivos de configuração do Terraform são armazenados. Use um provedor de origem de configuração para criar uma pilha com base em um arquivo de configuração Terraform remoto com controle de versão.
Um provedor de origem de configuração tem os seguintes tipos:
Um provedor de origem de configuração pode ser um dos seguintes tipos:
Bitbucket
GitHub
GitLab
Veja a seguir os produtos suportados para cada tipo de provedor de origem de configuração.
Diferença entre o estado real da sua infraestrutura e a última configuração executada da pilha. Por exemplo, a divergência ocorre quando um membro da equipe adiciona uma tag de produção aos seus recursos ou quando um recurso falha. Você pode executar relatórios de detecção de divergência para determinar se os recursos provisionados têm estados diferentes dos definidos na última configuração executada da pilha. Você também pode exibir o status detalhado da divergência para cada recurso.
job
Instruções para executar as ações definidas em sua configuração. Apenas um job por vez pode ser executado em uma determinada pilha; além disso, você só pode ter um conjunto de recursos do Oracle Cloud Infrastructure em uma determinada pilha. Para provisionar outro conjunto de recursos, você deve criar uma pilha separada e usar outra configuração.
Os jobs armazenam o histórico sobre sua pilha associada. Por exemplo, os jobs de planejamento armazenam planos de execução gerados e os jobs de aplicação armazenam configurações (snapshots) e arquivos de estado. Os jobs residem no mesmo compartimento da pilha à qual estão associados. Um OCID é designado a cada job.
Para obter mais informações sobre tipos de jobs do Resource Manager, consulte Criando um Job.
Um job tem os seguintes estados do ciclo de vida:
Aceito (ACCEPTED): O job foi aceito para processamento.
Em andamento (IN_PROGRESS): O job está sendo executado (em execução).
Falha (FAILED): O job não concluiu a execução.
Êxito (SUCCEEDED): O job foi concluído com sucesso.
Cancelando (CANCELING): O job está sendo cancelado; uma notificação foi enviada, mas a execução do job ainda não foi interrompida.
Cancelado (CANCELED): O job foi cancelado e sua execução foi interrompida.
Política de repetição padrão: Um job pode falhar por causa de um problema de serviço downstream. Por exemplo, um job de aplicação para criar uma instância de computação pode falhar por causa de um problema de conectividade temporário no serviço Compute. Quando um job falha por causa de um problema de serviço downstream, o job é repetido de acordo com a política de repetição padrão do Go SDK. Consulte Ir SDK para o Oracle Cloud Infrastructure.
módulo
Um grupo de recursos relacionados. Use os módulos para criar abstrações leves e reutilizáveis, para que você possa descrever sua infraestrutura em termos de sua arquitetura. Para obter informações, consulte Criando Módulos.
Uma funcionalidade para capturar recursos implantados do Oracle Cloud Infrastructure como configuração do Terraform e arquivos de estado. Para obter mais informações, consulte Descoberta de Recursos.
pilha
A coleção de recursos do Oracle Cloud Infrastructure correspondentes a uma determinada configuração do Terraform. Cada pilha reside no compartimento especificado, em uma única região; no entanto, os recursos de uma determinada pilha podem ser implantados em várias regiões. Um OCID é designado a cada pilha.
Uma pilha tem os seguintes estados do ciclo de vida:
Criando: A pilha está sendo criada.
Ativa: A pilha está disponível para uso.
Excluindo: A pilha está sendo excluída.
Excluída: A pilha foi excluída.
Falha: Não foi possível criar a pilha.
estado
O estado da configuração do recurso, armazenado no formato JSON em um arquivo de estado (.tfstate). Para obter mais informações, consulte Gerenciamento de Estado.
Um modelo é uma configuração do Terraform que você pode usar para gerenciar a infraestrutura. Os modelos podem ajudar os clientes novos em infraestrutura como código e que estão atualizando configurações de workflow de produção. Use modelos para experimentar o Resource Manager e aplicar as melhores práticas comprovadas à configuração do workflow de produção. Para obter informações sobre modelos fornecidos pela Oracle, consulte Modelos Fornecidos pela Oracle.
Crie seus próprios modelos privados para compartilhar com outras pessoas na tenancy.
Salve sua configuração de uma página de configuração de recurso para uma pilha. Use a pilha para instalar, configurar e gerenciar o recurso por meio do modelo de "infraestrutura como código". Para obter mais informações, consulte Criando uma Pilha com Base em uma Página de Criação de Recurso
Armazene remotamente suas configurações do Terraform usando sistemas integrados de controle de código-fonte, como Bitbucket Cloud, Bitbucket Server, DevOps, GitHub e GitLab. Essa integração ajuda você a obter integração e entrega contínuas (CI/CD).
Além disso, também permitimos o armazenamento de configurações do Terraform em buckets do Object Storage. Para obter mais informações, consulte Criando uma Pilha com base em um Bucket.
O Resource Manager armazena arquivos de estado do Terraform para pilhas para que você não precise fazer isso. Várias pessoas podem trabalhar em uma pilha simultaneamente porque o Resource Manager bloqueia o estado da pilha, permitindo que apenas um job de cada vez seja executado em uma determinada pilha. O Resource Manager gera e atualiza automaticamente o arquivo de estado da pilha (.tfstate, no formato JSON). Esse arquivo mapeia os recursos da sua pilha para sua configuração e mantém metadados de configuração essenciais, como dependências de recursos.
Descubra se os recursos provisionados têm estados diferentes dos recursos definidos na configuração da última execução da pilha e exiba o status de desvio detalhado para cada recurso.
Opcionalmente, você pode limitar a detecção de desvio a recursos especificados. Cada recurso é identificado por um endereço de recurso, que é uma string derivada do tipo de recurso e do nome especificados na configuração do Terraform da pilha, além de um índice opcional. Por exemplo, o endereço do recurso da quarta instância do serviço Compute com o nome "test_instance" é oci_core_instance.test_instance[3]. O tipo de recurso é oci_core_instance, um ponto atua como delimitador, o nome do recurso é test_instance e o índice é 3 entre colchetes. Para obter mais detalhes e exemplos de endereços de recursos, consulte a documentação do Terraform em Exemplos.
Para obter mais informações sobre a detecção de divergência, consulte deriva e as seguintes instruções:
Com pontos finais privados, você pode acessar recursos de nuvem não pública em sua tenancy pelo Resource Manager. Por exemplo, use o Remote Exec com uma instância privada ou acesse uma configuração do Terraform em um servidor GitHub privado.
Os arquivos de bloqueio de dependência são gerenciados automaticamente para pilhas novas e atualizadas.Você decide quando recuperar as versões mais recentes disponíveis na origem configurada dos provedores do Terraform.Os provedores são atualizados dentro das restrições de versão da configuração do Terraform.Para obter instruções, consulte Recuperando os Provedores Mais Recentes.
Faça rollback de uma pilha para um estado conhecido anterior. O rollback é uma boa alternativa para gastar tempo solucionando problemas do estado desconhecido de uma pilha.
Para fazer rollback, primeiro identifique o job de aplicação bem-sucedido desejado. Este "job de destino" usa outra configuração do Terraform. Crie um job de rollback de plano para esse job de destino e crie um job de rollback de aplicação usando o plano de execução gerado.
Disponibilidade 🔗
O serviço Resource Manager está disponível em todas as regiões comerciais do Oracle Cloud Infrastructure. Consulte Sobre Regiões e Domínios de Disponibilidade para obter a lista de regiões disponíveis, juntamente com locais associados, identificadores de região, chaves de região e domínios de disponibilidade.
Workflow Generalizado 🔗
A imagem a seguir representa uma view generalizada do workflow do Resource Manager.
Console: Para acessar o serviço Resource Manager usando a Console, você deve usar um browser suportado. Para ir até a página de acesso da Console, abra o menu de navegação na parte superior desta página e selecione Console de Infraestrutura. Você é solicitado a digitar seu tenant na nuvem, seu nome de usuário e sua senha. Abra o menu de navegação e selecione Serviços ao Desenvolvedor. Em Resource Manager, selecione Visão Geral.
Cada serviço do Oracle Cloud Infrastructure se integra ao serviço IAM para autenticação e autorização, para todas as interfaces (Console, SDK ou CLI e API REST).
Um administrador da sua organização precisa configurar grupos, compartimentos e políticas que controlam quais usuários podem acessar quais serviços, quais recursos e o tipo de acesso. Por exemplo, as políticas controlam quem pode criar novos usuários, criar e gerenciar a rede na nuvem, iniciar instâncias, criar buckets, fazer download de objetos e assim por diante. Para obter mais informações, consulte Gerenciando Domínios de Identidade. Para ver detalhes específicos sobre a gravação de políticas para cada um dos diversos serviços, consulte a Referência de Políticas.
Se você for um usuário regular (não um administrador) que precisa usar os recursos do Oracle Cloud Infrastructure que sua empresa possui, entre em contato com o administrador para configurar um ID de usuário para você. O administrador pode confirmar qual compartimento ou compartimentos você deve usar.
Importante
As políticas para gerenciar recursos do Oracle Cloud Infrastructure também são obrigatórias para operações do serviço Resource Manager que acessam recursos. Por exemplo, executando um job de aplicação em uma pilha que inclui instâncias e sub-redes do serviço Compute requer políticas que concedem permissões para esses tipos de recursos, nos compartimentos em que você deseja provisionar os recursos. Para ver exemplos de políticas para gerenciar recursos do Oracle Cloud Infrastructure, consulte Políticas Comuns.
Administradores: Para políticas comuns que concedem aos grupos acesso aos recursos do Resource Manager, consulte Políticas do Serviço IAM (Protegendo o Resource Manager).
Segurança 🔗
Além de criar políticas de IAM, siga estas melhores práticas de segurança para o Resource Manager.
Limite o uso de informações confidenciais em arquivos de configuração e saída
Execute uma auditoria de segurança
Use pontos finais privados para acessar recursos com segurança sem expor o tráfego de rede ao público