Categories: DevOps

Criando templates de máquinas virtuais utilizando Vagrant + Veewee

A idéia principal deste post é demonstrar, de forma prática, como é simples criarmos base boxes (aka templates de máquinas virtuais) utilizando as ferramentas Vagrant e Veewee.

Mas por que diabos criar templates?
Templates podem ser extremamente úteis para agilizarmos a criação de máquinas com configurações ou papéis específicos, como por exemplo, templates de máquinas web server, database server, proxy, mail server etc.

Agora que conhecemos um pouco da importância de máquinas template, mas ainda antes de irmos para a parte prática, vamos falar um pouco sobre as ferramentas Vagrant e Veewee.

O que é Vagrant (http://vagrantup.com/)?

De uma forma geral, o vagrant é uma abstração, criada sobre os comandos de linha do VirtualBox (http://www.virtualbox.org/), criada para facilitar a admnistração de templates e instâncias de máquinas virtuais.

O Vagrant é distribuído na forma binária e também através de uma gema Ruby.

Obs.: É importante deixar claro que o Vagrant depende do VirtualBox instalado na máquina para funcionar!

Como instalar o Vagrant?

Por questão de facilidade, vamos utilizar a gema Ruby do Vagrant.

Uma vez que você tenha o Ruby (1.8.7 ou 1.9) e o Rubygems instalados em sua máquina, basta instalar a gem do Vagrant utilizando o seguinte comando:

O que é Veewee (https://github.com/jedi4ever/veewee)?

O Veewee é uma gema Ruby que estende o Vagrant adicionando suporte para criação de máquinas base (base boxes).

Como instalar o Veewee?

De forma similar a instalação do Vagrant, instalaremos o Veewee com o comando:

Mãos a massa!

Uma vez que temos as gemas do Vagrant e do Veewee instaladas, vamos listar todos os templates de sistema operacional disponibilizados pelo Veewee:

Como podemos observar, existem uma série de combinações de templates por sistema operacional, arquitetura etc.

No nosso exemplo, usaremos o CentOS 6.2 64 bits para criarmos nosso template. Desta forma, o comando para criarmos o nosso primeiro base box fica assim:

Por fim, precisamos efetivar a criação da máquina através do comando:

Como será a primeira vez que criamos uma máquina à partir do template ‘CentOS-6.2-x86_64-minimal’, será questionado se o template deve ser baixado da internet, a mensagem é algo assim:

Basta digitarmos Yes para que o vagrant faça o download do template, inicialize e configure a máquina com suas dependências.

Ao final do processo, deveremos ver as seguintes mensagens:

Para validarmos se a box foi corretamente criada, digite:

Alguns testes sobre serão executados sobre a box e, ao final, são apresentados os resultados, algo como:

Agora que a máquina foi configurada pelo Vagrant, vamos exportar o modelo da máquina para um arquivo “.box”:

Para podermos utilizar o template criado, basta adicionarmos o box exportado na lista de máquinas do Vagrant. Este passo é feito utilizando o comando abaixo:

Neste momento, já temos a box pronta para uso. Vamos agora configurar o arquivo Vagrantfile para que possamos inicializar uma instância da nossa basebox ‘template-1’, para isso, execute o comando:

Por fim, vamos inicializar uma instância da máquina template-1, utilizando o comando:

Ao final da execução do comando acima, a máquina estará no ar e apta a ser acessada via ssh. O próprio Vagrant já disponibiliza um comando facilitador para este acesso, basta utilizar o seguinte comando:

Bom, é isso, em breve tentarei falar sobre o uso de múltiplas VMs com Vagrant!

Article info