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.
Usar a Regra de Serviço do OCI Events para Atualizar Registros de DNS entre Regiões para uma Zona Privada com o OCI Functions
Introdução
Neste tutorial, aprenderemos a atualizar automaticamente registros de DNS (Sistema de Nomes de Domínio) para instâncias de computação em uma zona privada em ambas as regiões quando uma nova instância de computação é criada ou quando ela é movida durante um cenário de switchover em um plano do Oracle Cloud Infrastructure Full Stack Disaster Recovery (OCI Full Stack DR). Este tutorial abrange dois serviços específicos do OCI.
-
Regra de Serviço de Eventos do OCI: Um serviço que aciona respostas automatizadas a alterações e eventos em seu ambiente do OCI.
-
OCI Functions: Um serviço de computação sem servidor que permite executar código em resposta a eventos sem gerenciar a infraestrutura.
Esse caso de uso foi inicialmente previsto para uso durante um plano de switchover de DR do OCI Full Stack, no qual as instâncias são movidas entre regiões. Essencialmente, o processo de switchover de DR (Recuperação de Desastre) envolve a criação de uma nova instância na nova região e, em seguida, o encerramento da instância na região anterior. Com base nesse cenário, este tutorial se concentra no tipo de evento Iniciar - Fim da Instância, que aciona um OCI Functions para atualizar os registros de DNS para zonas privadas em ambas as regiões.
Essa solução também pode servir como uma automação de zona privada de DNS do OCI padrão. Ele cria um registro DNS para cada nova instância criada no compartimento selecionado ou para qualquer outro filtro especificado para identificar as instâncias de destino. Para obter mais informações, consulte Serviços que Produzem Eventos.
Arquitetura de Alto Nível
Observação:
Este tutorial é projetado exclusivamente para fins educacionais e de estudo. Ele fornece um ambiente para os alunos experimentarem e ganharem experiência prática em um ambiente controlado. É crucial notar que as configurações e práticas de segurança empregadas neste tutorial podem não ser adequadas para cenários do mundo real.
As considerações de segurança para aplicativos do mundo real geralmente são muito mais complexas e dinâmicas. Portanto, antes de implementar qualquer uma das técnicas ou configurações demonstradas aqui em um ambiente de produção, é essencial realizar uma avaliação e revisão de segurança abrangente. Essa revisão deve abranger todos os aspectos da segurança, incluindo controle de acesso, criptografia, monitoramento e conformidade, para garantir que o sistema esteja alinhado com as políticas e os padrões de segurança da organização.
A segurança sempre deve ser uma prioridade ao fazer a transição de um ambiente de laboratório para uma implantação do mundo real.
Objetivos
-
Configure uma regra do OCI Event Service para acionar um OCI Functions fornecido. Essa função atualizará um registro de zona privada de DNS em duas regiões sempre que uma nova instância for criada no compartimento selecionado.
Observação: Este tutorial não abordará a configuração do OCI Full Stack DR. Em vez disso, ele se concentrará na automatização da zona privada de DNS em duas ou mais regiões. Para obter mais informações, consulte Usar o OCI Full Stack Disaster Recovery Service com domínios do Oracle WebLogic Server.
Pré-requisitos
-
OCI Environment
-
Conta do OCI com permissões de administrador.
-
Um compartimento para criar seus recursos.
Observação: Anote o nome do compartimento e o ID do compartimento.
-
Lista de OCIDs (Oracle Cloud Identifier) da zona privada de DNS do OCI em que as instâncias recém-iniciadas terão um registro de DNS em cada região que você precisar. Neste tutorial, temos duas zonas privadas de DNS: uma para região de GRU e outra para região de VCP.
-
-
Ambiente da Máquina Local
-
Configure a CLI local do Oracle Cloud Infrastructure. Para obter mais informações, consulte Instalando a CLI do OCI.
-
Docker local para poder criar imagens. Se você estiver usando o Oracle Linux, consulte Docker: Instalar o Docker no Oracle Linux 8 (OL8).
-
CLI do Fn Project local para poder implantar sua função no OCI. Para obter mais informações, consulte Instalando a CLI do Fn Project.
-
Tarefa 1: Configurar Grupos Dinâmicos
Vá para seu domínio, clique em Grupos Dinâmicos e crie os grupos a seguir.
Nome do Grupo Dinâmico: MyFunctions
.
ALL {resource.type = 'fnfunc', resource.compartment.id = 'pasteYourCompartmentOCID'}
Tarefa 2: Criar Políticas
Vá para Políticas e crie as políticas a seguir.
Nome da Política: FunctionsPolicies
.
Allow dynamic-group MyFunctions to read repos in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use instance-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to read app-catalog-listing in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use volume-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use virtual-network-family in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to manage dns-records in compartment YOUR-COMPARTMENT-NAME
Allow dynamic-group MyFunctions to use dns-zones in compartment YOUR-COMPARTMENT-NAME
Tarefa 3: Criar o OCI Container Registry
-
Vá para Serviços do Desenvolvedor, clique em Registro de contêiner e crie um repositório privado para a imagem Fn.
Nome do Repositório:
lab/fnpy-event-dns-update
. -
Verifique os repositórios e anote o Namespace.
-
Abra o shell de terminal no qual você tem a CLI e o Docker do OCI instalados e faça log-in no registro. Verifique o URL correto da sua região. Neste tutorial, estamos usando a região Leste do Brasil (São Paulo) na qual o URL do registro é
gru.ocir.io
.docker login gru.ocir.io Username: <your container namespace>/youruser Password: YOUR_AUTH_TOKEN_CREATED_EARLIER
Tarefa 4: Criar as Funções do OCI Python para Atualizar o DNS em Zonas Privadas
-
Vá para a Console do OCI e clique em Serviços do Desenvolvedor. Em Functions, clique em Applications e Create application.
-
Crie a configuração para as zonas privadas de DNS do OCI afetadas.
Observação: Esta variável de configuração especifica os OCIDs das zonas privadas a serem atualizados. Você pode listar vários OCIDs, separados por vírgulas.
Nome do Segredo Valor TARGET_ZONES_OCID Definir a lista de OCIDs PRIVATE ZONES como separados por vírgulas Neste tutorial, definiremos duas zonas privadas: uma para a região GRU e outra para a região VCP.
Amostra:
ocid1.dns-zone.oc1.sa-saopaulo-1.xxxx
ocid1.dns-zone.oc1.sa-vinhedo-1.xxx
-
Vá para o shell de terminal no qual você tem o Docker, a CLI do OCI e a CLI do Fn Project instalados e execute os comandos a seguir para inicializar a função.
Observação: Se você seguiu as tarefas, o comando de log-in do Docker já foi executado até agora, caso contrário, prossiga com o log-in do Docker na Tarefa 3.3.
mkdir lab cd lab fn create context oci-cloud --provider oracle fn use context oci-cloud fn update context oracle.compartment-id PASTE_YOUR_COMPARTMENT_OCID fn update context api-url https://functions.sa-saopaulo-1.oraclecloud.com fn update context registry gru.ocir.io/PASTE_YOUR_REGISTRY_NAMESPACE/lab fn init --runtime python fnpy-event-dns-update cd fnpy-event-dns-update ls -lrt
Observação: Neste tutorial, estamos usando a região Leste do Brasil (São Paulo), se você estiver usando outra região, será necessário alterar os locais
api-url
eregistry
.O comando
init
criará uma função hello world emfunc.py
. Substituiremos esse código. -
Obtenha o código de amostra da função Python aqui: fnpy-event-dns-update.zip, descompacte-o e substitua os arquivos durante o comando
init
.-
Copie o arquivo zip para o diretório do laboratório no qual você executou o comando
fn init
e verifique os arquivos no diretório.ls -lrt
-
Descompacte o arquivo e substitua os arquivos existentes.
unzip fnpy-event-dns-update.zip
-
-
Crie o novo código e implante a função.
ls -lrt fn deploy --app MyApp
Tarefa 5: Criar a Regra do Serviço OCI Events
-
Vá para a Console do OCI e clique em Observabilidade e Gerenciamento. Em Events Service, selecione Rules e clique em Create Rule.
-
Digite as seguintes informações.
- Nome: Informe
MyAutoDNSRule
. - Condições da Regra:
- Condição 1:
- Condition: Selecione
Event Type
. - Nome do Serviço: Selecione
Compute
. - Tipo de Evento: Selecione
Instance - Launch End
.
- Condition: Selecione
- Condição 2:
- Condition: Selecione
Attribute
. - Nome do Atributo: Selecione
compartmentId
. - Valores de Atributo: Informe o OCID do compartimento.
- Condition: Selecione
- Condição 1:
- Ações:
- Tipo de Ação: Selecione
Functions
. - Compartimento da Função: Selecione seu compartimento.
- Aplicativo da Função: Selecione
MyApp
. - Função: Selecione
fnpy-event-dns-update
.
- Tipo de Ação: Selecione
Observação: Neste exemplo, estamos filtrando as instâncias por compartmentID, o que significa que qualquer instância recém-iniciada nesse compartimento acionará a função selecionada. Você pode especificar diferentes filtros e condições com base em suas necessidades.
- Nome: Informe
Tarefa 6: Validar a Solução
Neste tutorial, estabelecemos zonas privadas de DNS nas regiões GRU e VCP e documentamos os OCIDs de cada zona privada de DNS. Esses OCIDs serão usados para configurar o OCI Functions.
-
Certifique-se de que o OCI Functions esteja disponível e ative o registro em log para ele.
-
Vá para a Console do OCI e clique em Serviços do Desenvolvedor. Em Funções, clique em Aplicativos e selecione seu aplicativo criado
MyApp
. -
Clique em Logs e selecione Ativar Log.
-
-
Verifique as zonas privadas de DNS atuais. Nós configuramos um domínio chamado
UBUNTUAPPS.COM
em ambas as regiões, conforme mostrado nas imagens a seguir. -
Crie uma nova instância de computação para simular um switchover de DR do OCI Full Stack. Isso acionará o evento
Instance Launch - END
, que, em seguida, chamará o OCI Functions para atualizar a zona privada de DNS nas duas regiões. -
Depois que a instância for criada, verifique se a zona privada de DNS foi atualizada corretamente em ambas as regiões.
-
Revise os logs do OCI Functions para verificar os detalhes da função executada.
Links Relacionados
Reconhecimentos
- Autor - João Tarla (Engenheiro de Soluções da 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.
Use OCI Events Service Rule to Update Cross Region DNS Records for a Private Zone with OCI Functions
G11043-01
July 2024