OpenStack multinodo com Kolla-Ansible + Tacker (NFV)
Controller: [Link] • Compute: [Link]
Gerado em 2025-08-08 23:21:18
1) Pré■requisitos (ambos os nós)
Ubuntu 22.04/24.04 LTS, KVM ativado, 2 NICs. Hostnames: controller/compute1; SSH por chave; NTP ativo.
sudo apt update && sudo apt -y upgrade
sudo apt -y install python3-pip python3-venv git jq vim net-tools qemu-kvm libvirt-daemon-system libv
sudo usermod -aG libvirt,kvm $USER
sudo systemctl enable --now libvirtd
sudo timedatectl set-ntp true
echo 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/[Link]
sudo sysctl --system
2) Nó de implantação (controller)
sudo apt -y install ansible python3-dev build-essential
python3 -m venv ~/kolla-venv
source ~/kolla-venv/bin/activate
pip install --upgrade pip
pip install 'kolla-ansible' 'ansible-core' 'docker' 'python-openstackclient' 'python-tackerclient'
sudo mkdir -p /etc/kolla
sudo chown $USER:$USER /etc/kolla
cp -r /usr/local/share/kolla-ansible/etc_examples/kolla/* /etc/kolla/
cp /usr/local/share/kolla-ansible/ansible/inventory/multinode ./[Link]
3) Inventário e [Link] (exemplos completos)
# Inventory para Kolla-Ansible (multinode)
# Substitua 'controller' e 'compute1' pelos hostnames reais (resolvidos em /etc/hosts)
# Acesso via SSH sem senha (chave) para o usuário com privilégios sudo
[all:vars]
ansible_user=ubuntu
ansible_become=true
[control]
controller ansible_host=[Link]
[network]
controller ansible_host=[Link]
[compute]
compute1 ansible_host=[Link]
[monitoring]
controller ansible_host=[Link]
[storage]
controller ansible_host=[Link]
[deployment]
# Host onde roda o kolla-ansible (pode ser o controller)
controller ansible_host=[Link]
# /etc/kolla/[Link] — amostra
# ATENÇÃO: Troque <API_IFACE> e <EXT_IFACE> pelas suas interfaces reais (ex.: ens192, eno1, bond0, etc.
kolla_base_distro: "ubuntu"
kolla_install_type: "source"
openstack_release: "2025.1"
kolla_internal_vip_address: "[Link]"
network_interface: "<API_IFACE>"
api_interface: "<API_IFACE>"
# Interface conectada à rede externa (FIPs/provider); NÃO deve ter IP configurado no host
neutron_external_interface: "<EXT_IFACE>"
# Hypervisor
nova_compute_virt_type: "kvm"
# Neutron backend (OVN é moderno; para SFC clássico pode optar por OVS)
neutron_plugin_agent: "ovn"
# Para OVS use: neutron_plugin_agent: "openvswitch"
# Serviços essenciais
enable_keystone: "yes"
enable_glance: "yes"
enable_neutron: "yes"
enable_nova: "yes"
enable_placement: "yes"
enable_horizon: "yes"
enable_cinder: "yes"
# NFV / Orquestração e telemetria úteis para VNFs
enable_tacker: "yes"
enable_heat: "yes"
enable_barbican: "yes"
enable_ceilometer: "yes"
enable_aodh: "yes"
enable_gnocchi: "yes"
# Extensões Neutron para SFC (opcional; exige suporte do backend)
enable_neutron_sfc: "yes"
# Opções OVN comuns (remova ou ajuste conforme sua topologia)
#enable_ovn: "{{ enable_neutron | bool and neutron_plugin_agent == 'ovn' }}"
#neutron_ovn_distributed_fip: "yes"
#neutron_ovn_dhcp_agent: "no"
# Senhas ficam em /etc/kolla/[Link] (geradas por kolla-genpwd)
4) Senhas, bootstrap e prechecks
kolla-genpwd
kolla-ansible -i ./[Link] bootstrap-servers
kolla-ansible -i ./[Link] prechecks
5) Deploy e pós■deploy
kolla-ansible -i ./[Link] deploy
kolla-ansible post-deploy
source /etc/kolla/[Link]
openstack compute service list
openstack network list
openstack hypervisor list
6) Registrar VIM no Tacker
# Config do VIM para registrar no Tacker (aponta para seu próprio cloud)
auth_url: '[Link]
username: 'admin'
password: 'admin' # troque após kolla-genpwd/post-deploy
project_name: 'admin'
domain_name: 'Default'
project_domain_name: 'Default'
user_domain_name: 'Default'
cert_verify: 'False'
openstack vim register --is-default --config-file ~/vim_config.yaml my-default-vim
openstack vim list
7) Implantar VNF (API v2 — ETSI)
openstack vnf package create
# pegue o <PKG_ID> retornado
openstack vnf package upload --path /opt/stack/tacker/doc/source/user/v2/getting_started/conf/sample_vn
openstack vnflcm create --vnfd-id <VNFD_ID> --name demo-vnf --os-tacker-api-version 2
cat > [Link] <<'JSON'
{ "flavourId": "simple" }
JSON
openstack vnflcm instantiate <VNF_INSTANCE_ID> [Link] --os-tacker-api-version 2
openstack vnflcm list --os-tacker-api-version 2
8) Notas sobre SFC e backends
Para SFC, habilite 'enable_neutron_sfc: "yes"'. Em OVS a cobertura costuma ser mais ampla; em OVN, verifique
limitações da sua release.
9) Troubleshooting rápido
docker ps --format 'table {{.Names}}■{{.Status}}'
docker logs -f keystone
docker logs -f neutron_server
kolla-ansible -i ./[Link] reconfigure --tags neutron
kolla-ansible -i ./[Link] destroy --yes-i-really-really-mean-it