Recentemente criei um módulo que me apoie em implementação de vms com sistema operacional Ubuntu.
Ainda sigo incrementando o meu projeto ansible_libvirt colocando diretórios para cada cenário.
https://github.com/fabioabreureis/ansible_libvirt/
1) Requisitos
Instalação do libvirt e pacotes do ansible e git nos hosts que serão utilizados.
2) Deploy das vms
A principio o playbook foi criado para atender uma demanda de laboratório.
Existem alguns passos manuais para que faça a automação acontecer e dentro do diretório ubuntu/utils do projeto tem alguns exemplos de script
- Existe uma rede virtual do libvirt de modelo para utilizar, ubuntu/utils/netlab1.xml. Execute: virsh net-define netlab1.xml e virsh net-start netlab1 para subir a rede
- Instalar a vm de template: Após fazer download da imagem ubuntu, tem o script ubuntu/utils/virt_install.sh . Esse passo é mais interativo para definir o básico do template. IP, nome e etc.
3) Configurando o projeto
Dentro do diretório inventory/host_vars/localhost.yml você precisa configurar os passos :
img_template: O nome do template sem a exetensão do arquivo
template_address: O ip que foi setado no template.
Para a sessão de vm você precisa informar ram,vcpu.
net_type é para informar o tipo de rede se é rede do libvirt(network) ou bridge.
net_connector é o nome da rede virtual ou o nome da interface bridge.
Exemplo de configuração :
img_template: "ubuntu20.04"
template_address: "192.168.200.10"
osvariant: ubuntu20.04
vm:
- name: ubuntu-example1
cpu: 1
mem: 2048
net_type: "network"
net_connector: "netlab1"
net:
ip: 192.168.200.150
mask: 255.255.255.0
gateway: 192.168.200.1
dns: 192.168.200.1
4) Deploy das vms
Faça o clone do projeto
git clone https://github.com/fabioabreureis/ansible_libvirt
Acesse o diretório ubuntu e execute o playbook
cd ubuntu
ansible-playbook -i inventory/hosts ubuntu_vms.yml
Para destruir o ambiente execute o playbook e confirme a ação via terminal
ansible-playbook -i inventory/hosts destroy.yml
5) Exemplo de execução :
Deploy de vms

Remoção de vms
