Automatizando a Configuração de Estado Desejado usando as APIs de Perfil de Configuração do vSphere - Parte 1

Gerenciando a Configuração de Estado Desejado com APIs do vSphere Configuration Profile
Manter as configurações consistentes dos hosts ESX é uma das responsabilidades mais críticas de um administrador do VMware Cloud Foundation (VCF). Mesmo um desvio menor em configurações-chave, como regras de firewall, políticas de senha, configuração de DNS, ou algo tão fundamental quanto NTP, pode ter consequências de longo alcance em um ambiente cloud.
O conceito de Desired State Configuration (DSC) permite que os administradores definam, documentem e controlem a versão da configuração pretendida de sua infraestrutura cloud. Ao fazer isso, é possível impor continuamente a consistência e garantir que todos os ambientes permaneçam alinhados com as configurações de estado desejado. Como administrador de cloud, você deve evitar cenários que possam levar a downtime, degradação de performance ou até mesmo negação de serviço (denial-of-service) causados puramente por configuration drift (desvio de configuração).
Embora as fontes de drift possam variar, o que os administradores realmente precisam é de visibilidade clara, monitoramento contínuo e insights acionáveis em seus ambientes, permitindo-lhes detectar, compreender e remediar proativamente os desvios do estado desejado. O recurso vSphere Configuration Profile (VCP) oferece exatamente essas capacidades, permitindo que os administradores imponham a configuração de estado desejado em clusters vSphere.
Se você é novo em vSphere Configuration Profiles, recomendo fortemente revisar os seguintes recursos para se familiarizar com os fundamentos e os fluxos de trabalho baseados em UI (Interface do Usuário):
- Configuration Management using vSphere Configuration Profile (VCP)
- Monitor Configuration Drift with Alarms
Automatizando a Configuração de Estado Desejado
O objetivo desta série de blog posts em três partes é aprofundar nas APIs do vSphere Configuration Profile (VCP) e demonstrar como você pode construir poderosos fluxos de trabalho de automação em torno delas. Cada parte da série se baseia na anterior, então acompanhar a série completa fornecerá uma compreensão completa e end-to-end do gerenciamento de estado desejado orientado por API.
Esta série cobrirá os seguintes tópicos:
Entendendo as APIs do vSphere Configuration Profile
Nesta primeira publicação, examinaremos as APIs disponíveis, o que elas fazem e como começar a usá-las. Uma compreensão sólida dessas APIs é essencial antes de tentar qualquer automação.
Consumindo APIs do Configuration Profile usando PowerCLI e SDKs Unificados do VCF
O segundo blog post se concentra em invocar essas APIs usando PowerCLI, bem como os SDKs Unificados do VCF para Python e Java, facilitando assim a integração de configuration profiles em seus fluxos de trabalho de automação existentes.
Automatizando a Configuração de Estado Desejado usando GitOps
No blog post final, demonstraremos como aplicar os princípios de GitOps à configuração de estado desejado usando ArgoCD, permitindo fluxos de trabalho estilo CI/CD para gerenciar e impor configuration profiles em escala.
Primeiros Passos com as APIs de Configuração do vSphere
As APIs VCP fazem parte das vSphere Automation APIs, que são baseadas em REST e facilmente consumíveis a partir de suas ferramentas e scripts de automação preferidos. A melhor maneira de explorar essas APIs é importando a especificação openapi.yaml para o seu explorador ou cliente de API. Se você é novo em OpenAPI, recomendo fortemente revisar um blog introdutório e uma demonstração para se familiarizar com a especificação e as ferramentas (tooling).
Em um nível alto, as Configuration Profile APIs podem ser agrupadas em duas categorias:
-
Configuration APIs: Permitem criar rascunhos de configuração (configuration drafts), atualizar configurações (settings), validar novas configurações e remediar o drift em todo o cluster. As APIs podem ser encontradas em:
vSphere Automation API > esx > settings > clusters > {cluster} > configuration -
Enablement APIs: Podem ser usadas para habilitar o vSphere Configuration Profile (VCP) em um vSphere Cluster. As APIs podem ser encontradas em:
vSphere Automation API > esx > settings > clusters > {cluster} > enablement > configuration
Habilitar VCP
Existem duas maneiras de habilitar o VCP em um cluster vSphere:
- Importar um configuration profile de um host de referência.
- Importar um configuration profile de um arquivo.
Para a habilitação inicial, recomendo fortemente importar uma configuração de um host de referência. Semelhante aos Host Profiles, você primeiro configura um host com as configurações desejadas. Este host deve fazer parte do cluster que você pretende gerenciar usando o VCP.
Abaixo está a sequência de API recomendada para habilitar o VCP:
1. Autenticar com a API do vCenter Server
POST https://{api_host}/api/session
Descrição: Cria uma sessão com a API. Este é o equivalente ao login. Esta operação troca as credenciais do usuário fornecidas no contexto de segurança por um session token que será usado para autenticar chamadas subsequentes. Para autenticar chamadas subsequentes, espera-se que os clientes incluam o session token. Para chamadas de API REST, o campo de cabeçalho HTTP vmware-api-session-id deve ser usado para isso.
2. Validar a Habilitação do VCP
GET https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration
Descrição: Retorna se o cluster fornecido está sendo gerenciado usando uma plataforma de configuração desejada.
3. Verificar a Elegibilidade do Cluster para Transição VCP
POST https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=checkEligibility&vmw-task=true
Descrição: A API realiza verificações de elegibilidade no cluster para ver se ele pode ser transicionado para a plataforma de gerenciamento de configuração desejada.
4. Importar Profile de Configuração de um Host de Referência
POST https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=importFromHost&vmw-task=true
Descrição: A API importa a configuração desejada de um host de referência no cluster. A API também adiciona host-specific e host-overrides dos outros hosts no cluster. A API de importação não valida a configuração em relação ao schema. O resultado especificará se a configuração foi importada com sucesso. O resultado fornecerá uma mensagem de erro localizada se a operação de importação falhar.
5. Validar a Configuração Importada
POST https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=validateConfig&vmw-task=true
Descrição: A API valida a configuração desejada importada em relação ao schema e nos hosts com validation plugins. Se o documento for válido, a API verificará todos os hosts quanto à conformidade com a configuração desejada. A API retorna erros de validação se a configuração não for válida em qualquer um dos hosts. Se a configuração for válida, a API retorna informações de conformidade (compliance).
6. Habilitar VCP
POST https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration/transition?action=enable&vmw-task=true
Descrição: A API habilita o ConfigManager no cluster. Antes de definir o estado de configuração desejado, a API verifica a elegibilidade do cluster para transicionar para a plataforma de configuração desejada. Em seguida, a API valida e define o rascunho de configuração (configuration draft) como a configuração desejada do cluster, habilitando assim o ConfigManager. Por fim, a API inicia a remediação invocando o Apply. O Apply não é invocado se o cluster estiver vazio.
Gerenciar a Configuração do Cluster
Use as Configuration APIs para gerenciar a configuração de estado desejado. O aspecto de gerenciamento envolve monitorar a configuração, analisar o drift e atualizar as configurações em um cluster vSphere. As APIs para gerenciar as configurações estão em:
vSphere Automation API > esx > settings > clusters > {cluster} > configuration
Vamos explorar as APIs que você pode usar para algumas dessas operações. Neste cenário, temos um cluster com VCP habilitado e vamos atualizar as configurações de estado desejado com novas settings. Execute as APIs abaixo na ordem especificada:
1. Autenticar com a API do vCenter Server
POST https://{api_host}/api/session
Descrição: Cria uma sessão com a API.
2. Criar um Novo Rascunho de Configuração
POST https://{api_host}/api/esx/settings/clusters/{cluster}/enablement/configuration
Descrição: Cria um novo rascunho de configuração. Você pode especificar uma config spec que deseja aplicar. Se não for especificado, a configuração atual será referenciada como está.
3. Atualizar o Rascunho de Configuração
POST https://{api_host}/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=update
Descrição: Atualiza as configurações atuais. No body, você pode passar a especificação de configuração atualizada.
4. Listar Alterações de Configuração
GET https://{api_host}/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=showChanges
Descrição: Lista as alterações de configuração assim que o rascunho de configuração é atualizado.
5. Executar Pré-verificação (Pre-check)
POST https://{api_host}/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=precheck&vmw-task=true
Descrição: Executa a pré-verificação contra o rascunho de configuração.
6. Aplicar Rascunho de Configuração
POST https://{api_host}/api/esx/settings/clusters/{cluster}/configuration/drafts/{draft}?action=apply
Descrição: Aplica o rascunho de configuração como configuração de estado desejado. Isso executará a verificação de conformidade (compliance check) e iniciará o processo de remediação do cluster. Após a conclusão bem-sucedida desta operação, o rascunho será excluído.
Conclusão
Nesta primeira parte da série, estabelecemos as bases para automatizar o Desired State Configuration usando as APIs do vSphere Configuration Profile. Exploramos:
- A importância do DSC em ambientes VMware Cloud Foundation.
- As duas categorias primárias de API: Enablement APIs e Configuration APIs.
- O fluxo de trabalho completo da API para habilitar o VCP em um cluster.
- O ciclo de vida do gerenciamento de estado desejado usando rascunhos de configuração (configuration drafts).
Uma compreensão sólida dessas APIs é fundamental para ir além das operações orientadas por UI e construir automações escaláveis e repetíveis. No próximo blog post, mostrarei como invocar essas APIs programaticamente usando sua linguagem de programação preferida, como PowerCLI, Python ou Java. Isso o ajudará a consumir o vSphere Configuration Profile com seu conjunto existente de ferramentas e integrações de automação. Até lá, fique ligado!
Descubra mais em VMware Cloud Foundation (VCF) Blog. Assine para receber as últimas publicações em seu e-mail.
Precisa de ajuda com suas soluções de TI?
A VirtuAllIT Solutions oferece consultoria especializada em virtualização, cloud computing e infraestrutura tecnológica.

