Provisionar, Configurar e Remover Recursos
Use o Terraform para implantar, alterar e remover seus recursos na nuvem de forma eficiente.
Sobre Arquivos de Estado do Terraform
O Terraform armazena informações de estado para rastrear seus recursos de infraestrutura gerenciados, mapear os recursos implantados para sua configuração, rastrear metadados e melhorar o desempenho de implantações de infraestrutura grandes.
Por default, o arquivo terraform.tfstate
é armazenado no host local. Esse comportamento padrão não é ideal nos ambientes de TI nos quais vários usuários precisam criar e destruir os recursos definidos em uma determinada configuração. Para controlar a implantação e o gerenciamento de recursos em um ambiente com vários usuários, armazene os arquivos do estado do Terraform no Oracle Cloud Infrastructure Object Storage e compartilhe os arquivos de estado e bloqueie os arquivos entre todos os usuários.
Consulte Usando o Armazenamento de Objetos para Arquivos de Estado do Terraform.
Criar os Recursos
Depois de definir as variáveis no arquivo terraform.tfvars
, use a CLI do Terraform para implantar os recursos definidos na configuração do Terraform.
Apply complete! Resources: 33 added, 0 changed, 0 destroyed.
Outputs:
admin_private_ip = 10.0.1.10
bastion_public_ip = 203.0.113.101
kubeconfig = export KUBECONFIG=generated/kubeconfig
ocirtoken = <sensitive>
ssh_to_admin = ssh -i /home/joe/.ssh/id_rsa -J opc@203.0.113.101 opc@10.0.1.10
ssh_to_bastion = ssh -i /home/joe/.ssh/id_rsa opc@203.0.113.101
- A saída
kubeconfig
exibe o comando que você pode usar para definir a variável de ambienteKUBECONFIG
no host local. Execute este comando se quiser usar a CLIkubectl
do seu host local para gerenciar o cluster do Kubernetes. O comando defineKUBECONFIG
para o arquivogenerated/kubeconfig
, que o Terraform cria ao aplicar a configuração. - A saída
ssh_to_admin
exibe o comandossh
que pode ser usado para conexão com o host admin. - A saída
ssh_to_bastion
exibe o comandossh
que você pode usar para se conectar ao host bastion.
Observação:
Você pode exibir esta saída do Terraform a qualquer momento executando o comandoterraform output
Permitir que o Host de Administração Gerencie Recursos
Para permitir que o host admin gerencie recursos no compartimento, você pode designá-lo como um principal de instância. Utilize este recurso se você pretende executar comandos de CLI ou fazer chamadas de API do host admin para gerenciar recursos na topologia.
Observação:
Qualquer usuário que possa se conectar a uma instância de computação usando SSH herda os privilégios de instância privada concedidos à instância. Considere isso ao decidir se o host admin será designado como um principal de instância. Você pode desativar esse recurso ou a qualquer momento sem nenhum impacto no host admin.-
Para designar o host admin como um principal da instância, defina o seguinte em
terraform.tfvars
e, em seguida, executeterraform apply
.admin_instance_principal = true
O host admin é membro de um grupo dinâmico, e uma instrução de política é criada para permitir que o grupo dinâmico gerencie todos os recursos no compartimento.
-
Para retirar os privilégios principais da instância do host admin, defina o seguinte em
terraform.tfvars
e executeterraform apply
.admin_instance_principal = false
Ativar ou Desativar Notificações para o Host Bastion
Você pode usar o Oracle Cloud Infrastructure Notification Service para receber mensagens de status do host bastion quando as atualizações forem aplicadas ou quando o Oracle Ksplice detectar uma tentativa conhecida de exploração.
Observação:
O código Terraform nesta solução configura notificações somente quando você usa a imagem default do Oracle Autonomous Linux.-
Para ativar as notificações para o host bastion, defina as seguintes variáveis em
terraform.tfvars
:bastion_notification_enabled = true bastion_notification_endpoint = "email_address" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "topic_name"
Este é um exemplo de
terraform.tfvars
com as variáveis relacionadas à notificação definidas.bastion_notification_enabled = true bastion_notification_endpoint = "joe@example.com" bastion_notification_protocol = "EMAIL" bastion_notification_topic = "bastion"
- Se o host bastion já tiver sido criado e você quiser ativar as notificações agora, defina essas variáveis e execute novamente o
terraform apply
.- As políticas necessárias são definidas para permitir que o host bastion publique notificações.
- Um tópico de notificação é criado e o endereço de e-mail especificado é inscrito no tópico.
- O host bastion está configurado para enviar notificações.
Após a criação dos recursos, você receberá um e-mail solicitando que você confirme a inscrição.
-
Para desativar as notificações, defina o seguinte em
terraform.tfvars
e executeterraform apply
.bastion_notification_enabled = false admin_notification_enabled = false