Ansible Playbook: fazendo deploy de vms Canonical

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

  1. 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
  2. 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

Translate »