Este site utiliza cookies

Utilizamos cookies para melhorar sua experiência de navegação, personalizar conteúdo e analisar nosso tráfego. Ao clicar em 'Aceitar', você concorda com o uso de cookies conforme nossa Política de Privacidade.

Virtualização

Aplicando Princípios GitOps para Manter a Configuração de Estado Desejado usando VMware vSphere Configuration Profile – Parte 3

VMware
02 de abril de 2026
8 min de leitura
Compartilhar:
Aplicando Princípios GitOps para Manter a Configuração de Estado Desejado usando VMware vSphere Configuration Profile – Parte 3

Bem-vindos de volta ao terceiro post da série sobre a automação de fluxos de trabalho do vSphere Configuration Profile (VCP). No primeiro post, exploramos as APIs do VCP e o conjunto de APIs necessárias para trabalhar com os perfis de configuração do vSphere. O segundo post focou no consumo dessas APIs usando PowerCLI e o Unified SDK para Python, demonstrando como elas podem ser integradas aos seus scripts Python e PowerCLI. Recomendo fortemente a leitura de ambos os posts para construir uma compreensão fundamental do VCP e seus casos de uso no mundo real.

O que é Infrastructure as Code (IaC)?

Manter a configuração da infraestrutura é uma prioridade máxima para arquitetos e administradores de cloud. Embora o vSphere Client ofereça uma excelente visão de alto nível do seu ambiente, torna-se difícil manter a consistência ao gerenciar configurações em escala, especialmente em múltiplos locais e clusters. Infrastructure as Code (IaC) resolve esse problema, permitindo que você defina e documente a infraestrutura usando código, em vez de operações manuais na interface do usuário.

Com o IaC, você pode:

  • Versionar suas configurações
  • Aplicar configurações consistentes em todo o SDDC
  • Rastrear desvios de configuração

Em resumo, sua infraestrutura se torna repetível, auditável e automatizada.

O Cenário

Como administrador de cloud, você provavelmente gerencia múltiplas instâncias do VMware Cloud Foundation (VCF), cada uma com vários domínios de workload e clusters. Seu objetivo é simples, mas crítico:

  • Manter uma configuração desejada consistente em todos os clusters
  • Documentar a configuração para referência futura
  • Garantir que as mudanças sejam controladas e rastreáveis

A Solução: GitOps com o Poder das APIs VCP

As APIs VCP são baseadas em REST e funcionam com documentos de configuração JSON. Elas fornecem recursos como:

  • Validação de esquema
  • Versionamento de documentos de configuração
  • Importação e exportação de fluxos de trabalho
  • Operações de ciclo de vida para gerenciar configurações

Ao combinar essas APIs com o Git, você desbloqueia um fluxo de trabalho impulsionado por GitOps. Para conseguir isso, você precisa de um controle de versão confiável, apoiado por um repositório Git.

  • Repositório GitHub → Armazena documentos de configuração (controle de versão)
  • GitHub Actions → Automatiza fluxos de trabalho quando ocorrem mudanças
  • Scripts PowerShell → Interagem com as APIs VCP e orquestram operações

Sempre que uma configuração é atualizada no Git, a automação é acionada e a aplica de forma controlada. Para implementar um verdadeiro modelo GitOps, o repositório deve separar claramente:

  • Intenção Global → Quais servidores vCenter e clusters devem ser gerenciados
  • Estado Específico → O JSON real do perfil de configuração do vSphere para cada cluster

Estrutura do Repositório GitHub

/configprofile
│ README.md
│ vcp_managed_clusters.yaml #Adicione o Cluster que você deseja gerenciar usando VCP

├───.github
│ └───workflows #Fluxos de Trabalho do Github Action
│ Initialize_Configprofile.yml #Fluxo de Trabalho de Habilitação do VCP
│ Update_ConfigProfile.yml #Fluxo de Trabalho de Atualização de Configuração

├───scripts #Scripts PowerShell usados pelo fluxo de trabalho
│ enable_vcp.ps1 #Script para habilitar o VCP
│ update_config.ps1 #Script para atualizar o perfil de configuração do VCP

├───template #Pasta de Modelo
│ clusterAdd.yaml #Exemplo de Esquema Yaml para adicionar clusters

├───vc-mgmt-a.site-a.vcf.lab #Pasta VC gerada automaticamente
│ cluster-mgmt-01a.json #Configuração do Cluster para cluster-mgmt-01
│ cluster-mgmt-02a.json #Configuração do Cluster para cluster-mgmt-02
│ cluster-mgmt-03a.json #Configuração do Cluster para cluster-mgmt-03
│ cluster-mgmt-04a.json #Configuração do Cluster para cluster-mgmt-04

└───vc-wld01-a.site-a.vcf.lab
     cluster-wld01-01a.json #Configuração do Cluster para cluster-wld01-a-01
     cluster-wld01-02a.json #Configuração do Cluster para cluster-wld01-a-02

Entendendo o Repositório GitHub

Arquivo de Intenção Global (vcp_managed_clusters.yaml)

Este arquivo define a intenção de alto nível de quais clusters você deseja gerenciar usando VCP e GitOps.

yaml
vcName:
  clusters:
    - name: "clusterName"
      managedByVCP: true
      refHost: "reference ESX Hostname"

Atualize vcp_managed_clusters.yaml usando o esquema definido em /template/clusterAdd.yaml conforme acima.

Pastas Gerenciadas (vc-*/)

Essas pastas são geradas automaticamente e nomeadas de acordo com os FQDNs do vCenter para facilitar a análise.

JSON de Configuração (*.json)

São exportações brutas das APIs VCP, uma vez que o perfil de configuração é habilitado.

Perfil de Configuração

Eles representam a configuração exata aplicada a cada cluster.

Nos Bastidores: Como a Automação Funciona

Vamos detalhar o que acontece nos bastidores.

Detecção Inteligente de Mudanças

O fluxo de trabalho é inteligentemente ajustado para atualizar apenas as configurações de cluster que foram modificadas. Fazemos isso entendendo a diferença no repositório git e buscando os arquivos *.json que foram modificados.

powershell
$changedFiles = git diff --name-only HEAD^ HEAD | Where-Object { $_ -like "vc-*/*.json" }

Isso permite que o GitHub Actions acione o Update_ConfigProfile.yaml nos clusters necessários.

Gerenciamento Assíncrono do Ciclo de Vida

As operações VCP são assíncronas. O script enable_vcp.ps1 segue um ciclo de vida:

  1. Verificação de Elegibilidade Invoke-CheckEligibilityClusterConfigurationTransitionAsync
  2. Importar Configuração Invoke-ImportFromHostClusterConfigurationTransitionAsync
  3. Exportar Configuração Extrai o JSON bruto e o armazena no Git usando: [System.IO.File]::WriteAllText Isso evita problemas de formatação ou escape.

Segurança em Primeiro Lugar: Executar Validação de Rascunho

O mecanismo de segurança já está integrado aos fluxos de trabalho da API VCP. Você não pode aplicar uma configuração de rascunho sem uma pré-verificação e validação da configuração de rascunho. O fluxo de trabalho de atualização é executado da seguinte forma:

  1. Cria um rascunho de configuração temporário no vCenter
  2. Valida-o usando: Invoke-ValidateClusterConfigurationDraftAsync
  3. Se a validação falhar:
    • O GitHub Action falha
    • A produção permanece intocada
  4. Se a validação for bem-sucedida
    • Aplica a configuração de rascunho

Exemplo de Execução: Fluxo de Trabalho de Ponta a Ponta

Onboarding de um Cluster

Adicione uma entrada de cluster em vcp_managed_clusters.yaml e envie as alterações para a branch main.

O que acontece em seguida:

  • O fluxo de trabalho Initialize_ConfigProfile.yaml é acionado
  • O VCP é habilitado no cluster
  • Uma nova pasta para o vCenter Server e o arquivo JSON de configuração do Cluster são gerados automaticamente
  • O bot do GitHub os commita de volta ao repositório
  • O cluster está agora sob gerenciamento GitOps.

Operações do Dia 2 – Atualizar/Modificar a Configuração do Cluster

Vamos supor que você queira atualizar ou modificar a configuração atual do cluster.

  1. Abra cluster-04.json no VS Code
  2. Modifique a configuração
  3. Envie as alterações
  4. Crie um Pull Request (PR) e mescle o código na main

Resultado:

  • O fluxo de trabalho Update_ConfigProfile.yaml é acionado
  • Um rascunho de configuração é criado no vCenter
  • A validação é executada
  • A configuração de rascunho é aplicada

Nota de Implementação

Para implementar o GitOps, este repositório utiliza o GitHub Action Self-Hosted Runner. Com um runner auto-hospedado, você tem acesso seguro ao seu ambiente VCF, sem exposição à internet pública, e também pode aplicar políticas de segurança corporativas aos seus runners. Você pode configurar Windows, Linux e macOS como um runner do GitHub Action.

Certifique-se de ter os seguintes componentes instalados em sua máquina runner:

  • PowerShell 7
  • PowerCLI 13+
  • Módulo powershell-yaml
  • Git CLI

Siga as instruções do GitHub para saber mais sobre como configurar os runners do GitHub.

Conclusão

Ao aplicar o GitOps aos vSphere Configuration Profiles, passamos de um gerenciamento de infraestrutura reativo para operações automatizadas e orientadas por intenção. Com o GitOps, sua infraestrutura se torna:

  • Versionada
  • Auditável
  • Consistente em todos os ambientes
  • Segura para atualizar
  • Totalmente automatizada

Em vez de gerenciar configurações manualmente, você agora gerencia a intenção no Git e deixa a automação cuidar do resto. O exemplo aqui demonstra o uso de PowerCLI e GitHub Action. Você pode implementar soluções semelhantes em Python, Java e Terraform, já que os bindings da API VCP estão disponíveis em todas essas linguagens e prontos para uso. O VCP é um exemplo de como o VCF está entregando uma stack de private cloud moderna com uma abordagem API-first. Você pode replicar a mesma abordagem para outros serviços VCF, prontos para uso, integrando as APIs VCF com as ferramentas que você já usa em seu ambiente.

Demonstração

Links Importantes

  • Config Profile – Repositório GitHub Action
  • Automating Desired State Configuration using vSphere Configuration Profile APIs – Part 1
  • Automating vSphere Configuration Profile APIs – Part 2 – PowerCLI and Python Sample Code
  • Descubra mais no Blog VMware Cloud Foundation (VCF)

Assine para receber os posts mais recentes por e-mail. Digite seu e-mail… Assinar


Como parceiro certificado e especialista em soluções VMware, a VirtuAllIT pode auxiliar sua empresa na implementação e otimização de estratégias de Infrastructure as Code (IaC) utilizando vSphere Configuration Profiles e GitOps, garantindo que sua infraestrutura seja consistente, segura e automatizada.

Precisa de ajuda com suas soluções de TI?

A VirtuAllIT Solutions oferece consultoria especializada em virtualização, cloud computing e infraestrutura tecnológica.