Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever em uma conta gratuita, consulte Conceitos básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Integrar o Oracle Cloud Infrastructure Resource Manager com o Processo de Automação
Introdução
O serviço Oracle Cloud Infrastructure (OCI) Resource Manager automatiza a implantação e as operações de todos os recursos do OCI. Usando o modelo infrastructure como código (IaC), o serviço se baseia no Terraform, um padrão do setor de código aberto que permite que os engenheiros do DevOps desenvolvam e implantem sua infraestrutura em qualquer lugar.
Uma configuração Terraform codifica sua infraestrutura em arquivos de configuração declarativos. O serviço OCI Resource Manager permite compartilhar e gerenciar a configuração da infraestrutura e os arquivos de estado em várias equipes e plataformas.
Por meio do OCI Resource Manager, é possível executar scripts do Terraform na Console do OCI. Também é possível fazer uma chamada REST ou usar a CLI do OCI (Interface de Linha de Comando) do Oracle Cloud Infrastructure, expandindo assim as possibilidades de integração com ferramentas de automação, como OCI Devops, Jenkins, GitHub etc.
Neste tutorial, automatizaremos a implantação de uma instância do Oracle Autonomous Database obtendo a senha de administrador do banco de dados com segurança por meio de segredos do OCI Vault sem expô-la nos arquivos, para que o usuário de execução do OCI Resource Manager tenha acesso adequado para criar o banco de dados e a senha armazenada.
Objetivos
- Configure a automação por meio do Terraform para que você possa criar instâncias com suas credenciais de acesso apropriadas, mas sem expor qualquer informação confidencial, como senha, deve ser armazenada para que apenas usuários autorizados possam usá-la no script do Terraform.
Pré-requisitos
-
Um usuário dentro de um grupo de usuários sem nenhuma política. Esse usuário receberá as permissões apropriadas para executar o Terraform no OCI Resource Manager.
-
Bucket do OCI Object Storage em um compartimento específico (se você quiser gerar o script Terraform nesse bucket).
-
O script do Terraform será executado por meio do OCI Resource Manager e o usuário deverá ter permissões para:
- Crie recursos no compartimento.
- Crie uma instância do Oracle Autonomous Database.
- Ler uma senha do OCI Vault.
- Executar script do Terraform.
Tarefa 1: Criar um Segredo para o Oracle Autonomous Database no OCI Vault
Criaremos uma senha no OCI Vault para ilustrar como configurar um novo recurso no Terraform sem expor dados confidenciais.
Segredos são credenciais como senhas, certificados, chaves SSH ou tokens de autenticação que você usa com os serviços do OCI. O armazenamento de segredos em um OCI Vault oferece maior segurança do que você pode obter armazenando-os em outro local, como em arquivos de código ou de configuração. Você pode recuperar segredos do serviço OCI Vault quando precisar deles para acessar recursos ou outros serviços.
Você pode criar segredos usando a Console, a CLI ou a API do OCI. O conteúdo de um segredo é importado de uma origem externa para o serviço. O serviço OCI Vault armazena segredos em vaults.
Observação: Para essa tarefa, precisamos fazer log-in como um usuário administrador na Console do OCI. Você deve ter permissão para criar uma senha no OCI Vault.
-
Faça log-in na Console do OCI, clique em Identidade e Segurança e Vault.
-
Selecione o compartimento no qual deseja armazenar os segredos e clique em Criar Vault.
-
Informe um nome para o seu vault, confirme o compartimento e clique em Criar Vault.
-
Confirme se o vault foi criado e crie uma chave. Clique em Principais Chaves de criptografia e Criar chave.
-
Confirme o compartimento e digite um nome para sua chave. Por exemplo, digite
autonomouskey
como Nome e clique em Criar Chave.Confirme se a chave foi criada.
-
Clique em Secrets e em Create Secret.
-
Criaremos a senha do Autonomous Admin. Especifique as seguintes informações e clique em Criar Segredo.
- Compartimento: Selecionar compartimento.
- Nome: Informe o nome do seu primeiro segredo.
- Selecione Geração de segredo manual para incluir a senha.
- Secret Type Template: Digite
Plain-Text
. - Conteúdo do Segredo: Informe sua senha.
-
Você precisará do OCID do Segredo. Para copiar o OCID, clique em Copiar.
Tarefa 2: Criar Políticas para o usuário do OCI
Neste tutorial, considere seu nome de usuário TestUser
incluído em um grupo chamado TestGroup
. Agora, crie uma política com o nome TestPolicy
.
Essa tarefa é importante porque controla todos os privilégios necessários para garantir a segurança da automação do Terraform.
Observação: Para essa tarefa, precisamos fazer log-in com um usuário administrador no OCI.
-
Vá para a Console do OCI, clique em Identity & Security e Policies.
-
Clique em Criar Política.
-
Na seção Instruções, informe as políticas a seguir.
-
Essas políticas dão permissão para o grupo
TestGroup
criado anteriormente para gerenciar uma pilha e jobs no OCI Resource Manager.- Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
-
Esta política dá o direito de criar uma instância do Oracle Autonomous Database na integração de compartimentos.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
O grupo pode ler a senha armazenada no OCI Vault por meio de scripts do Terraform.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
Esta política dá o direito de salvar os scripts do Terraform em um compartimento específico.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
Essa política permite que os usuários de
TestGroup
editem o código no OCI Code Editor.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
Tarefa 3: Criar uma Pilha de um Modelo
Crie uma pilha para uma instância do Oracle Autonomous Database. Podemos usar um modelo para isso. A primeira etapa é fazer logon como o usuário criado na Tarefa 2.
-
Vá para a Console do OCI e clique no menu de hambúrguer.
-
Clique em Serviços de Desenvolvimento e Pilhas.
-
Selecione seu Compartimento e clique em Criar pilha.
-
Na página Informações da pilha, selecione Modelo e clique em Selecionar modelo para gerar um script do Terraform para o Oracle Autonomous Database.
-
Na guia Serviço, selecione Banco de Dados Autonomous Transaction Processing e clique em Selecionar modelo.
-
Você pode gerar os scripts do Terraform e armazená-los no bucket do OCI Object Storage. Selecione Usar provedores Terraform personalizados, informe o Compartimento e o Nome do bucket e salve sua pilha.
Sua pilha foi salva.
-
Este modelo não lê o segredo armazenado no Vault do OCI. Para fazer com que o Terraform leia o segredo, precisamos alterar o código.
Clique em Editar e selecione Editar configuração do Terraform no editor de código.
-
Você pode editar o código. O código padrão gera uma string aleatória para a senha.
-
Arquivo
main.tf
.Você precisa adicionar um novo dados chamado
oci_secrets_secretbundle
e designá-lo aos seguintes atributos:admin_password
nas seçõesautonomous_data_warehouse
eautonomous_database
.password
na seçãoautonomous_database_wallet
.
-
main.tf
- seçãoautonomous_data_warehouse
.data "oci_secrets_secretbundle" "bundle" { secret_id = var.secret_ocid } admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
-
main.tf
- seçãoautonomous_database
. -
main.tf
- seçãoautonomous_database_wallet
.
Adicione o código a seguir no arquivo
variables.tf
e substitua o OCID do seu segredo gerado na Tarefa 1.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
Arquivo
variables.tf
.
Observação: Salve seus arquivos. Mova o cursor do mouse sobre sua pilha (no lado direito do editor, no título Autonomous Transaction Processing....), clique com o botão direito do mouse e salve seu projeto. Se você sair sem salvar, a execução supõe que você usará a string aleatória no script de código original.
-
Tarefa 4: Testar as Permissões
Você pode testar as políticas e ver como tem controle das instâncias do OCI Resource Manager, do OCI Vault e do Oracle Autonomous Database em um compartimento específico.
-
Faça log-in na Console do OCI com suas credenciais de usuário administrador e remova todas as políticas do grupo
TestGroup
na políticaTestPolicy
. Clique em Excluir e confirme. -
Agora, faça log-in com seu usuário no grupo
TestGroup
e você não poderá ver a pilha; portanto, não poderá executá-la. -
Adicione as instruções a seguir com o Usuário administrador.
Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
As instruções a seguir concedem ao usuário em
TestGroup
permissões para usar a pilha do OCI Resource Manager. -
Removemos a concessão para que seu usuário criasse uma instância do Oracle Autonomous Database e lesse o segredo no OCI Vault. Assim, você pode executar sua pilha, mas sem sucesso. Para testar, clique em aplicar na página de detalhes da pilha.
-
Adicione as permissões do Oracle Autonomous Database e do OCI Vault em
TestPolicy
.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Clique em aplicar na página de detalhes da pilha e você poderá ver que tem o controle de todos os recursos sem expor nenhuma senha.
Tarefa 5: Chamar a Automação do OCI Resource Manager com REST
Todos os recursos do OCI têm uma API REST do OCI ou um comando da CLI do OCI para chamar serviços conforme executado na Console do OCI.
Para obter mais informações sobre a API REST do OCI, consulte API REST do OCI. Você pode ver a lista de comandos da CLI do OCI aqui: Referência de Comando da CLI do Oracle Cloud Infrastructure.
Agora, podemos optar por executar a pilha do OCI Resource Manager com uma API REST do OCI ou um comando da CLI do OCI. Para criar um Job, consulte CreateJob ou você pode usar o código de amostra curl-oci.zip a seguir com curl-oci.sh
preparado com parâmetros do OCI.
Você precisa criar a assinatura para suas solicitações REST. Para obter mais informações, consulte Passo a passo da chamada REST do OCI (Oracle Cloud Infrastructure) com curl.
-
Crie um arquivo chamado
STACK-RUN.sh
. Esta será sua solicitação REST usando umcurl-oci.sh
(esta ferramenta preparará sua string de autorização com suas informações do OCI). -
Crie um arquivo chamado
request.json
com o ID da pilha e o ID do compartimento. -
Abra o arquivo
curl-oci.sh
e altere os parâmetros a seguir. Esses parâmetros são os mesmos da instalação da CLI do OCI.Agora, execute o script.
Você pode ver os resultados de sucesso.
Links Relacionados
Confirmação
- Autor - Cristiano Hoshikawa (Engenheiro de Soluções Oracle LAD A-Team)
Mais Recursos de Aprendizagem
Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal Oracle Learning YouTube. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98159-01
May 2024