Criando um Laboratório OpenStack com Kolla-Ansible
Guia Completo: Criando um Laboratório OpenStack com Kolla-Ansible
O que você vai aprender neste guia:
Ao final da leitura e execução deste laboratório, você será capaz de:
- Entender os Conceitos Fundamentais: Compreender o que é o OpenStack, por que ele é relevante e como o Kolla-Ansible simplifica sua implantação.
- Provisionar uma VM Completa: Utilizar o Vagrant para automatizar a criação de uma máquina virtual robusta, pronta para o OpenStack.
- Configurar a Rede e o Armazenamento: Preparar as interfaces de rede e o armazenamento LVM para os serviços do OpenStack.
- Implantar o OpenStack com Kolla-Ansible: Executar o passo a passo da implantação de uma nuvem OpenStack All-in-One (AIO) usando contêineres Podman.
- Criar a Imagem do Balanceador de Carga: Construir a imagem Amphora para o serviço de Load Balancer (Octavia).
- Validar a Nuvem: Verificar a saúde dos serviços e garantir que a implantação foi bem-sucedida.
- Criar sua Primeira Máquina Virtual: Lançar uma instância (VM) tanto pela linha de comando (CLI) quanto pela interface gráfica (Horizon).
- Acessar sua VM: Conectar-se à sua nova VM usando um IP flutuante.
Sobre a CodeSolve
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ ██████╗ ██████╗ ██████╗ ███████╗███████╗ ██████╗ ██╗ ██╗ ██╗███████╗│
│ ██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔════╝██╔═══██╗██║ ██║ ██║██╔════╝│
│ ██║ ██║ ██║██║ ██║█████╗ ███████╗██║ ██║██║ ██║ ██║█████╗ │
│ ██║ ██║ ██║██║ ██║██╔══╝ ╚════██║██║ ██║██║ ╚██╗ ██╔╝██╔══╝ │
│ ╚██████╗╚██████╔╝██████╔╝███████╗███████║╚██████╔╝███████╗╚████╔╝ ███████╗│
│ ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚══════╝ ╚═════╝ ╚══════╝ ╚═══╝ ╚══════╝│
│ │
│ A Arte de Resolver Problemas │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Minha profissão é resolver problemas. Há 22 anos uso tecnologia como ferramenta para isso.
Sou Alexandre Carvalho, fundador da CodeSolve. Ao longo dessas duas décadas, passei por infraestrutura, desenvolvimento, arquitetura e, mais recentemente, mergulhei fundo no universo DevOps e Cloud Native. A CodeSolve nasceu dessa jornada — da vontade de compartilhar conhecimento e ajudar empresas a modernizarem suas operações de forma prática e segura.
O que fazemos:
- Consultoria em DevOps, CI/CD e Kubernetes
- Implementação de pipelines com Tekton, GitLab CI, ArgoCD
- Migração e operação em Cloud (AWS, GCP, Azure, OCI)
- Observabilidade, Segurança e Infraestrutura como Código
Contato:
- Web: www.codesolve.com.br
- Email: alexandre@codesolve.com.br
- Instagram: @falarcomalexandreti
O que o OpenStack resolve?
Ele ataca exatamente essa lentidão. O OpenStack é uma plataforma de orquestração. Pense nele como um maestro que rege os três pilares da infraestrutura: Compute, Rede e Storage. Ele automatiza o processo, permitindo que você (ou seu dev) peça uma VM através de um portal (o Horizon) ou de uma API e a receba em minutos.
O Modelo IaaS (OpenStack) (O Portal Mágico):
Com o OpenStack, você não pede mais uma VM, você a cria. Você tem o poder de um “self-service” de IaaS, criando redes, volumes, e gerenciando todo o ciclo de vida dos seus recursos.
O que diabos é OpenStack e por que eu deveria me importar?
Imagine que você precisa de uma máquina virtual. Como é o processo hoje na sua empresa?
O Modelo Tradicional (O Labirinto):
Você abre um ticket. A equipe de Infraestrutura recebe. Alguém da equipe de Virtualização cria a VM. Outra pessoa, da equipe de Redes, configura o IP e as regras de firewall. A equipe de Storage aloca o disco. Dias (ou semanas) depois, a VM chega para você. Frustrante, né?

A Bagunça Antes do Kolla: O “FrankenStack”
Instalar o OpenStack no passado era uma aventura. Cada serviço (Nova, Neutron, Cinder…) era um projeto separado, com suas próprias dependências e scripts de instalação. O resultado era um “FrankenStack”: uma colcha de retalhos de pacotes, configurações manuais e scripts frágeis. Manter isso atualizado era um pesadelo.
A Ordem com Kolla-Ansible: A Fábrica de Legos
É aqui que a mágica acontece. O Kolla é uma “fábrica de peças de Lego”. Ele cria contêineres perfeitos e prontos para produção para cada serviço do OpenStack. O Kolla-Ansible é o “manual de instruções”: ele pega essas peças e constrói sua nuvem de forma organizada, repetível e robusta.
Com o Kolla-Ansible, saímos do caos artesanal para uma linha de montagem automatizada. É por isso que vamos usá-lo nesta jornada.

Então, se você também quer desmistificar o OpenStack e aprender a construir sua própria nuvem privada, vem comigo. Este é o chamado para a nossa jornada. Bora?
Nosso Laboratório: A Estrutura do Host e da VM
Antes de mergulhar nos comandos, é crucial entender nosso campo de batalha. Aqui está um diagrama detalhado da nossa infraestrutura:

O Host (Máquina Física)
- Sistema Operacional: Pop!_OS 24.04 LTS (ou qualquer Linux moderno com KVM)
- Redes Libvirt:
default(virbr0) evagrant-libvirt(virbr1) - Bridge Externa:
br0(conectada à sua LAN) - Storage Pools (Libvirt):
defaultekolla_pool(apontando para o diretório onde os discos da VM serão armazenados)
A VM (Nosso Nó OpenStack All-in-One)
- Provisionamento: KVM/libvirt via Vagrant
- Recursos: 8 vCPUs, 16 GiB de RAM
- Discos:
vda(80 GB para o SO) evdb(60 GB para o Cinder) - Redes: Duas interfaces (
mgmt0eext0) conectadas àbr0do host. - Usuário:
infrastackcom sudo sem senha.
Por que esse desenho de ambiente importa?
Este não é um laboratório de brinquedo. Ao conectar a VM diretamente à sua LAN (via bridge), garantimos que:
- O OpenStack não fique isolado em NAT.
- Floating IPs funcionem corretamente, permitindo acesso externo real às suas instâncias.
- Rede, compute e storage sigam o modelo IaaS real.
- O laboratório se comporte como um ambiente de produção, só que em escala reduzida.
Pré-requisitos do Kolla-Ansible
Com base na documentação oficial do Kolla-Ansible, estes são os requisitos para nosso nó. Validamos todos eles:
- Memória: Mínimo de 8 GB RAM. Nosso ambiente com 16 GB tem folga.
- Disco: Mínimo de 40 GB. Nosso ambiente tem 80 GB + 60 GB.
- Interfaces de Rede: Mínimo de 2. Nosso ambiente tem 2.
- Sistema Operacional: Suportados: Ubuntu, CentOS, Rocky Linux. Usaremos Ubuntu.
- Dependências de Sistema e Python:
python3-dev,libffi-dev,gcc, etc. Todas essas dependências são instaladas automaticamente pelo script de provisionamento da VM.
Por que validar isso antes?
Porque a maioria dos problemas em instalações OpenStack começa aqui:
- memória insuficiente
- disco mal dimensionado
- rede incorreta
- SO incompatível
- dependências ausentes
Validando esses pontos antes, eliminamos erros difíceis de diagnosticar durante o deploy.
Parte 1 — Provisionando a VM com Vagrant (libvirt)
1.1 Vagrantfile (COMPLETO)
Crie um arquivo chamado Vagrantfile com exatamente este conteúdo. Ele contém todo o script de provisionamento da nossa VM.
Ajuste as MACs se quiser; usei MACs fixas para o netplan casar as NICs por macaddress (evita depender de nomes como
enp1s0/enp7s0). O root disk será 80 GB; o disco extra de 60 GB será criado no seu poolkolla_pool. O arquivoglobals.ymlprecisa estar ao lado doVagrantfile.

| |
1.2 globals.yml (mínimo obrigatório do lab)
Crie um arquivo globals.yml ao lado do Vagrantfile com os overrides essenciais. É isso que você precisa garantir.

| |
1.3 Subindo a VM
No diretório do projeto, execute:
| |
Para acessar a VM:
| |
Ou direto:
| |
Parte 2 — Instalando OpenStack (Kolla-Ansible AIO) dentro da VM
Daqui pra frente, tudo é dentro da VM, logado como
infrastack.
2.1 Venv + Kolla-Ansible + SDK Podman
| |
2.2 Inventário + passwords.yml + geração de segredos
| |
(Nosso
/etc/kolla/globals.ymljá foi copiado pelo Vagrantfile.) OpenStack Docs
2.3 Cinder LVM: preparar /dev/vdb (60 GB)
| |
2.4 Ajuste de hostname no /etc/hosts (evita dor de cabeça)
| |
2.5 Bootstrap + certs do Octavia + prechecks
| |
(O precheck do Octavia falha se Valkey não estiver habilitado; nós habilitamos. Certs são gerados pelo comando acima.) OpenStack Docs
2.6 Deploy + Post-deploy
| |
Depois do post-deploy, o Kolla-Ansible gera dois arquivos de credenciais para você usar a CLI do OpenStack sem dor de cabeça:
/etc/kolla/admin-openrc.sh— script que exporta variáveis OS_* para a conta admin./etc/kolla/clouds.yaml— arquivo de configuração para o cliente moderno (multi-cloud, mais limpo).
2.7 Instalar OpenStackClient + autocomplete
Dentro do mesmo venv:
| |
Autocomplete:
| |
2.8 Octavia: criar imagem Amphora
Opção oficial (recomendada) — construir e enviar com a tag amphora:
| |
2.9 init-runonce: deixar a nuvem pronta para teste (rede, CirrOS, router, FIPs, keypair)
O init-runonce é um script opcional de demonstração que “deixa tudo pronto” para você testar a nuvem logo após o deploy. Ele:
- Baixa e registra uma imagem CirrOS no Glance.
- Cria rede externa (pública) com CIDR/pool de Floating IPs e gateway.
- Cria rede interna (ex: demo-net) e roteador conectando interna ↔ externa.
- Ajusta regras de Security Group (ICMP/SSH) e gera um keypair.
- Cria flavors básicos (m1.tiny/small/…).
Atenção (dos próprios docs): é para demo/lab; dependendo das suas customizações, pode conflitar com o que você quer. Edite as variáveis de rede (CIDR/range/gateway) se precisar. OpenStack Docs
| |
Depois, execute o init-runonce com os parâmetros da tua rede:
Ajuste
EXT_NET_*para a tua realidade (CIDR, pool e gateway). O conceito é: rede externa = “public”, pool de Floating IPs.
Exemplo (modelo):
| |
Parte 3 — Validar serviços e criar a primeira VM (CLI + Horizon)
3.1 Validar saúde geral
| |
3.2 Criar VM via CLI (CirrOS)
Se o init-runonce for aplicado, você já deve ter: cirros, flavor m1.tiny, rede demo-net, keypair mykey (é exatamente o objetivo dele).
Criar instância:
| |
Criar um Floating IP na rede externa:
| |
Associar o Floating IP:
| |
Verificar:
| |
3.3 Acessar Horizon (Dashboard)
Acesse:
- URL:
http://192.168.2.250/(seu VIP) - Usuário:
admin - Senha: procurar em
/etc/kolla/passwords.ymla chavekeystone_admin_password
No Horizon, o caminho clássico pra criar VM:
- Project → Compute → Instances
- Launch Instance
- Selecionar:
- Imagem:
cirros - Flavor:
m1.tiny - Network:
demo-net
- Imagem:
- Launch
Depois, associe um Floating IP na própria interface.
Conclusão
Se você chegou até aqui, seu lab está pronto de verdade:
- Provisionamento automatizado (Vagrant/libvirt)
- OpenStack conteinerizado (Kolla + Ansible + Podman)
- Rede separada mgmt/external (mgmt0/ext0)
- VIP para Horizon/API
- Cinder LVM em disco dedicado
- Octavia preparado (com Amphora)
- Fluxo de uso real: CLI + dashboard
Este guia forneceu um caminho completo e validado para criar um ambiente OpenStack robusto e funcional. Agora você tem uma base sólida para explorar, aprender e se aprofundar no vasto ecossistema OpenStack. Parabéns pela conquista!









Precisa de ajuda com Criando um Laboratório OpenStack com Kolla-Ansible?
A CodeSolve pode ajudar sua equipe a implementar essa e outras solucoes.
Falar com a equipe