Proxmox-GitOps: Everything-as-Code – Falemos de automação no substituto de vmware.

Olá a todos,

Como já sabem, ando sempre à procura de soluções que revolucionem a forma como gerimos infraestruturas e automatizamos ambientes. Hoje venho partilhar convosco uma descoberta que considero muito interessante: o Proxmox-GitOps, um repositório que implementa o conceito de Everything-as-Code de forma absolutamente brilhante.
Para quem está a dar os primeiros passos na automação de datacenter ou quer elevar as suas competências DevOps ao próximo nível, este projeto representa uma oportunidade única de aprender conceitos fundamentais através de um exemplo prático e funcional, and hey…. é ouro para quem tem homelab ou usa sistemas on-prem :]

O Que É o Proxmox-GitOps?

O Proxmox-GitOps é um ambiente GitOps auto-configurável desenhado especificamente para automação de containers no Proxmox VE. O que torna este projeto verdadeiramente especial é a sua abordagem Infrastructure-as-Code (IaC) que gere todo o ciclo de vida dos containers – desde o bootstrapping inicial até à implementação, configuração e verificação – tudo através de automação versionada.
O que mais me interessou foi que este sistema segue uma arquitectura de pipeline multi-estágio capaz de se implementar e configurar recursivamente. O bootstrap inicial é feito num ambiente Docker local, mas depois as implementações subsequentes são direcionadas para o Proxmox VE. Esta abordagem garante gestão de infraestrutura consistente, reproduzível e totalmente automatizada.

Por Que É Isto Top como diria a GenZ?

Automação Recursiva – O Pipeline Dentro do Pipeline

A característica mais interessante deste projeto para mim é a sua capacidade de auto-replicação. Durante a configuração, o código base é enviado para uma instância Gitea que corre dentro do próprio container. Isto desencadeia o mesmo pipeline a partir do novo ambiente, possibilitando configuração recursiva – literalmente um “pipeline dentro de um pipeline”.
Esta abordagem significa que, após a configuração inicial, o sistema torna-se completamente auto-suficiente. As execuções subsequentes são idempotentes: o Ansible e o Chef validam e aplicam o estado desejado utilizando configuração estática, garantindo que o ambiente se mantém sempre no estado correto.

Everything-as-Code em Ação

O Proxmox-GitOps implementa verdadeiramente o conceito de Everything-as-Code:

  • Infraestrutura como Código: Gestão de containers através da API do Proxmox
  • Configuração como Código: Cookbooks Chef para setup ao nível da aplicação
  • Pipelines como Código: Orquestração CI/CD através de workflows Gitea
  • Ambiente como Código: Variáveis de ambiente propagadas recursivamente no sistema GitOps

Esta abordagem holística significa que tudo – desde a infraestrutura base até às configurações mais granulares – é versionado, auditável e reproduzível.

Arquitectura e Componentes

Componentes Principais

O sistema baseia-se em quatro pilares fundamentais:

  1. Container Provisioning: Gerido pelo Ansible usando a API do Proxmox para gestão do ciclo de vida dos containers
  2. Container Configuration: Gerido por cookbooks Chef para configuração ao nível da aplicação
  3. CI/CD Orchestration: Execução através de um Runner automaticamente instalado dentro do container
  4. Environment Management: Variáveis de ambiente carregadas inicialmente do config.json e propagadas recursivamente

Pipeline Multi-Estágio

O sistema opera através de estágios bem definidos:

  • Estágio Base: Desencadeado por pushes na branch release, utiliza uma ação composta para checkout do repositório de provisioning e execução do Ansible para setup do container
  • Estágio Config: Copia ficheiros do projeto para o container e executa Chef/Cinc em modo local para configurar o sistema
  • Estágio Share: Gere partilhas de rede para integração entre componentes

Modularidade e Extensibilidade

Outro dos aspectos inteligentes deste tipo de arquitectura é a sua modularidade. Os componentes distintos e workflows modulares reutilizáveis são geridos dentro do Gitea, facilitando enormemente a extensão e customização do sistema para necessidades específicas. E sim… Gitea self hosted ;]

Por Que É Fundamental para Aprender Datacenter Automation?

A infraestrutura moderna está a migrar rapidamente para ambientes híbridos e cloud-first. Os datacenters tradicionais com gestão manual estão a tornar-se obsoletos. Profissionais que não acompanham esta evolução ficam rapidamente desatualizados no mercado.
Mesmo os datacenters on-prem estão cada vez mais a adoptar metodologia de IaC. Aprender isto é algo que só fará bem a nossa carreira.

1. Conceitos DevOps na Prática – Além da Teoria

Este projeto é um verdadeiro masterclass em DevOps metodologias aplicadas. Ao contrário de tutoriais académicos (ou vindos do youtube) que mostram exemplos simplificados, o Proxmox-GitOps demonstra como estes conceitos funcionam em cenários reais e complexos.

Continuous Integration/Continuous Deployment: Não é apenas sobre fazer deploy de aplicações – aqui vemos como a própria infraestrutura é continuamente integrada e implementada. O pipeline não apenas testa código, mas provisiona e configura ambientes completos. Isto é crucial porque na vida real, a infraestrutura muda constantemente e precisa de ser gerida com a mesma disciplina que o código da aplicação.
Infrastructure as Code na sua Forma Mais Pura: Muitos profissionais pensam que IaC é apenas sobre Terraform ou CloudFormation. O Proxmox-GitOps mostra que verdadeiro IaC vai muito além – inclui a configuração dos containers, as políticas de rede, os workflows de deployment, e até as próprias ferramentas de automação. Todo o datacenter torna-se código versionado e auditável. E não necessitamos de plataformas cloud. Este software pode e muito bem nos ajudar a gerir o nosso próprio datacenter on-premise.
GitOps Beyond the Hype: GitOps não é apenas uma buzzword – é uma metodologia fundamental que este projeto implementa na perfeição. O Git não é apenas um repositório de código, é o cérebro que controla todo o estado do sistema. Cada commit desencadeia ações concretas na infraestrutura, criando uma ligação direta entre desenvolvimento e operações.
Containerização Enterprise: Trabalhar com containers LXC no Proxmox expõe-vos a conceitos de containerização que vão além do Docker. Aprendem sobre isolamento de recursos, gestão de redes virtuais, e orquestração ao nível do hypervisor – conhecimentos cruciais para ambientes enterprise onde a segurança e performance são críticas.

2. Tecnologias Enterprise-Grade – O Stack Real

O stack tecnológico deste projeto não foi escolhido ao acaso – representa exatamente o que encontrarão em ambientes empresariais modernos, e cada tecnologia tem um propósito específico:

Proxmox VE – O Coração do Datacenter: Proxmox não é apenas uma alternativa gratuita ao VMware. É uma plataforma de virtualização enterprise-grade que combina KVM e LXC numa solução coesa. Aprender Proxmox significa entender conceitos fundamentais de virtualização: gestão de recursos, high availability, clustering, storage distribuído, e backup/restore policies. Estes conceitos aplicam-se a qualquer plataforma de virtualização.
Ansible – Automation Engine: Ansible não é apenas uma ferramenta de configuração – é uma linguagem para expressar operações de sistema. O projeto mostra como usar Ansible não apenas para configurar serviços, mas para orquestrar todo o ciclo de vida de infraestrutura, desde o provisioning até à verificação de estado.
Chef/Cinc – Configuration Management Done Right: Enquanto muitos saltam diretamente para Kubernetes e ignoram gestão de configurações tradicional, este projeto mostra porque Chef continua relevante. Chef oferece um modelo de configuração convergente que garante que os sistemas permanecem no estado desejado ao longo do tempo, não apenas durante o deployment inicial.
Docker – Beyond Development: Docker aqui não é usado apenas para desenvolvimento local – é a ferramenta de bootstrap que permite que o sistema se auto-configure. Esta é uma aplicação avançada de Docker que mostra como containers podem ser usados para criar ambientes de automação portáveis e consistentes.
Gitea – Self-Hosted DevOps: Em vez de depender de serviços cloud como GitHub Actions, o projeto usa Gitea auto-hospedado. Isto é crucial para ambientes enterprise onde controlo total e conformidade são requisitos. Aprendem a gerir a vossa própria plataforma DevOps.
APIs RESTful – Integration Backbone: A integração via APIs é fundamental no mundo moderno. O projeto mostra como diferentes sistemas podem comunicar e coordenar através de APIs bem desenhadas, um skill essencial para qualquer arquiteto de sistemas.

3. Padrões de Arquitetura Avançados – Lessons from the Field

Os padrões arquitecturais implementados neste projeto são o resultado de anos de evolução em ambientes de produção reais:

Auto-bootstrapping – Self-Sufficient Systems: A capacidade de um sistema se configurar autonomamente é crucial para disaster recovery e scaling. Imaginem um cenário onde precisam de recriar todo o vosso ambiente de produção num novo datacenter – com este padrão, é questão de executar um script e esperar. O mesmo se aplica a disaster recovery. Não é muito melhor uma plataforma que se auto reconstrói se o pior acontecer?
Idempotência – Safe Operations: Idempotência não é apenas um conceito teórico – é a diferença entre sistemas que funcionam consistentemente e sistemas que quebram depois de várias execuções. Este projeto mostra como desenhar operações que são seguras de executar múltiplas vezes, um requisito fundamental para automação confiável.
Separação de Responsabilidades – Maintainable Architecture: Cada componente tem uma função específica e bem definida. Isto não é apenas boa prática – é essencial para sistemas que precisam de ser mantidos por equipas diferentes ao longo do tempo. Quando um sistema é modular, pode ser evoluído, debugged, e escalado de forma independente.
Versionamento e Auditoria – Compliance Ready: Em ambientes regulated (financeiro, saúde, governo), a capacidade de auditar todas as mudanças é um requisito legal, não uma conveniência. Este projeto mostra como construir auditability desde o início.

4. Real-World Problem Solving – Beyond Hello World

Aqui está um problema que eu encontro com muita gente, desde acabados de sair da faculdade a elementos já com alguns anos de profissão. As vezes custa-lhes ainda fazer a ligação dos pontos. Porque é isto tudo necessário? Onde encaixa?

Scale Challenges: Este projeto expõe-vos a desafios de escala reais. Como gerir dezenas de containers? Como coordenar updates em múltiplos sistemas? Como garantir que mudanças são aplicadas de forma ordenada e segura? Estas são questões que todo admin de sistemas enfrenta, e com que alguns ainda desesperam.
Security Considerations: Segurança não é um add-on – está integrada na arquitetura. O projeto mostra como implementar princípios de security-by-design: isolamento de containers, gestão de secrets, controlo de acessos, e auditoria de operações.
Disaster Recovery Planning: Com tudo definido como código, a recuperação de desastres deixa de ser um exercício manual propenso a erros. O sistema pode ser recriado identicamente em qualquer ambiente que tenha os pré-requisitos básicos.
Change Management: O projeto demonstra como implementar change management através de código. Pull requests tornam-se change requests, code reviews tornam-se security reviews, e merges tornam-se change implementations.

5. Career Development – Skills That Pay

Ao fim e conta, tudo resume-se a isto. Onde ter o melhor pagamento? Como aprender valências que me permitam um melhor trabalho? Muitas delas – e para muita gente onde me incluo (no meu caso para infraestruturas) – isto começou ou começa num homelab. Para muitos outros, no primeiro trabalho onde geriram os servidores que estavam algures na cave.
Portanto, como é que isto me pode ajudar?

Market Demand: Profissionais com experiência real em GitOps, IaC, e container orchestration estão em alta demanda. Empresas procuram pessoas que entendam não apenas as ferramentas, mas os princípios fundamentais.
Thinking in Systems: Este projeto ensina a pensar em sistemas, não em componentes isolados. Esta perspective sistémica é o que distingue senior engineers de junior engineers.
Automation Mindset: Desenvolvem um mindset onde a primeira pergunta para qualquer tarefa repetitiva é “como posso automatizar isto?”. Esta mentalidade é transformadora para produtividade e qualidade.
Cross-Functional Skills: O projeto cruza múltiplas disciplinas – desenvolvimento, operações, segurança, rede. Esta versatilidade é extremamente valiosa em equipas modernas onde as fronteiras entre roles são cada vez mais fluidas.

6. Learning by Doing – Practical Experience

Meter a mão na massa é fundamental. Se repararem muitos postos de trabalho exigem experiencia. Experiencia vem de meter a mão na massa e não de videos de youtube.
Este repositório tem as seguintes vantagens, práticas, ao invés de apenas teóricas:

Hands-On Complexity: Este não é um tutorial – é um sistema real com complexidade real. Vão encontrar edge cases, debugging challenges, e integration issues que tutoriais nunca cobrem. Esta experiência é inestimável, e as vezes o salto que vos falta para entrarem em outros universos.
End-to-End Understanding: Muitos profissionais conhecem partes do stack mas não entendem como tudo se integra. Este projeto força-vos a entender todo o flow, desde o commit no Git até ao container em execução.
Production Readiness: O sistema não é apenas um exemplo – pode ser usado em produção. Isto significa que aprendem não apenas conceitos, mas também considerações práticas como monitoring, logging, error handling, e performance optimization.

Como Começar com o Proxmox-GitOps

Quais os Pré-requisitos?

Para implementar este sistema, vão precisar de:

  • Docker Desktop: Para o ambiente de bootstrap inicial
  • Proxmox VE: O ambiente de produção onde os containers serão implementados
  • Proxmox API Token: Para automação via API
  • Conhecimentos básicos: Git, Docker, e conceitos de virtualização

Configuração Inicial

O processo é surpreendentemente simples para algo tão poderoso:

  1. Configurar credenciais: Definir token da API do Proxmox no ficheiro local/.config.json
  2. Executar bootstrap: Correr local/run.sh para inicializar o ambiente Docker
  3. Aceitar Pull Request: Aprovar o deployment para Proxmox VE através do workflow automatizado

Esta simplicidade de setup é enganadora – por trás desta interface simples está um sistema extraordinariamente sofisticado.

O Processo de Bootstrap Explicado

O que acontece durante o bootstrap é fascinante:

  1. O ambiente Docker inicial configura todo o toolkit necessário
  2. O código é automaticamente enviado para a instância Gitea
  3. O Gitea desencadeia workflows que provisionam containers no Proxmox
  4. Os containers são configurados automaticamente através de Chef
  5. O sistema torna-se auto-suficiente e pronto para utilizações futuras

Casos de Uso Práticos

Ambientes de Desenvolvimento e Testing
O sistema é perfeito para criar ambientes de desenvolvimento consistentes. Cada developer pode ter o seu próprio ambiente isolado mas identicamente configurado, eliminando os famosos “mas funciona na minha máquina” problemas :].

Implementação de Microserviços
Para equipas que trabalham com microserviços, o sistema permite implementar e gerir dezenas ou centenas de containers de forma completamente automatizada, cada um com as suas configurações específicas.

Disaster Recovery e Business Continuity
Tendo toda a infraestrutura definida como código, a recuperação de desastres torna-se trivial. O ambiente completo pode ser recriado num novo hardware em minutos, não horas ou dias.

Ambientes Multi-tenant
Para prestadores de serviços ou empresas com múltiplos clientes, o sistema permite criar ambientes isolados e configurados automaticamente para cada tenant.

Lições Valiosas para DevOps Engineers

Todo este percurso e experiencia trás ao nosso conhecimento muita informação e conhecimentos que nos são fundamentais para gerir com sucesso a nossa carreira.

1. Importância da Padronização

Este projeto demonstra como a padronização de processos através de código elimina variabilidade e reduz erros. Cada implementação é idêntica à anterior, garantindo consistência.

2. Automação End-to-End

Não basta automatizar partes do processo – o verdadeiro valor vem da automação completa, desde o provisioning da infraestrutura até à configuração final da aplicação.

3. Self-Healing Systems

Sistemas que se auto-gerem e auto-corrigem são o futuro. O Proxmox-GitOps mostra como criar sistemas que se mantêm no estado desejado automaticamente.

4. Documentation Through Code

Quando tudo está definido em código, a documentação torna-se obsoleta – o código é a documentação. Isto elimina documentação desatualizada e garante que a “documentação” está sempre sincronizada com a realidade.

Desafios e Considerações

Curva de Aprendizagem

Embora o sistema seja relativamente simples de implementar, compreender todos os conceitos subjacentes requer tempo e dedicação. É importante abordar a aprendizagem de forma sistemática.

Debugging Complexo

Quando algo corre mal num sistema tão automatizado, o debugging pode ser desafiante. É crucial entender cada componente e como interagem entre si.

Dependências Externas

O sistema depende de múltiplas tecnologias externas. Falhas em qualquer uma delas podem afetar todo o sistema. É importante ter estratégias de contingência.

O Valor Educacional Único

Hands-On Learning

Este projeto oferece aprendizagem prática com tecnologias reais. Não é um exemplo académico – é um sistema que pode ser usado em produção.

Conceitos Transferíveis

As técnicas e padrões aprendidos aqui aplicam-se a qualquer plataforma de cloud ou virtualização. Os conceitos são universais, mesmo que as ferramentas específicas variem.

Preparação para o Mercado

Profissionais com experiência nestes conceitos e tecnologias estão em alta demanda. Este projeto oferece um portfolio piece impressionante.

Integração com Ecossistemas Existentes

Cloud Providers

Embora focado no Proxmox, os conceitos e muitos dos scripts podem ser adaptados para AWS, Azure, ou GCP. A metodologia GitOps é universal.

Monitoring e Observabilidade

O sistema pode ser facilmente expandido para incluir monitoring com Prometheus, logging centralizado, e alerting, completando o quadro de observabilidade.

Security e Compliance

A natureza versionada e auditável do sistema facilita enormemente compliance e auditorias de segurança.

O Futuro da Automação de Datacenter

O Proxmox-GitOps representa o futuro da gestão de infraestrutura. Estamos a mover-nos para um mundo onde:

  • Infraestrutura é Software: Tratada com as mesmas práticas de desenvolvimento
  • Automação é Standard: Intervenção manual torna-se exceção, não regra
  • GitOps é Universal: Git como source of truth para tudo
  • Self-Service é Norma: Equipas podem provisionar recursos autonomamente

Próximos Passos para Quem Quer Aprender

Comecem por implementar o sistema num ambiente de teste. Não tenham  medo de experimentar e quebrar coisas – é assim que se aprende.
Depois de terem o sistema básico a funcionar, comecem a customizá-lo para as vossas necessidades específicas. Adicionem novos cookbooks, modifiquem workflows.
Usem este projeto como trampolim para aprender tecnologias relacionadas: Kubernetes, Terraform, cloud providers e pf considerem contribuir para o projeto original. É uma excelente forma de aprender e dar de volta à comunidade.

E chegamos ao fim de mais um post semanal. O Proxmox-GitOps não é apenas mais um projeto open source – é uma demonstração prática de como implementar Everything-as-Code de forma elegante e eficaz. Para qualquer profissional sério sobre automação de datacenter e metodologias DevOps, este projeto oferece uma oportunidade única de aprender conceitos fundamentais através de implementação prática.

A combinação de technologies proven em produção, arquitectura bem pensada, e abordagem pedagógica torna este projeto numa ferramenta de aprendizagem inestimável. Se querem estar preparados para o futuro da gestão de infraestrutura, não há melhor lugar para começar.
O futuro da automação de datacenter está aqui, e tem o nome Proxmox-GitOps. É altura de abraçar esta evolução e transformar a forma como pensamos sobre infraestrutura e automação.

Até ao próximo post, e como sempre, se notarem algo que possa ser melhorado ou queiram partilhar as vossas experiências, já sabem onde me encontrar.

Abraço, Nuno