Virtualização · 6 min read · Jan 19, 2026

Criando Appliances Virtuais RedHat/CentOS/Scientific Linux/Fedora Para KVM Com BoxGrinder (Fedora 17)

Criando Appliances Virtuais RedHat/CentOS/Scientific Linux/Fedora Para KVM Com BoxGrinder (Fedora 17)

Versão 1.0
Autor: Falko Timme
Siga-me no Twitter

BoxGrinder é uma ferramenta que permite construir máquinas virtuais (com RedHat, CentOS, Scientific Linux ou Fedora como o SO) para múltiplas técnicas de virtualização. Atualmente, suporta KVM, VMware, Amazon EC2, VirtualBox e VirtualPC. Este tutorial mostra como usar o BoxGrinder para criar um convidado KVM CentOS 6 no Fedora 17 e também como implantá-lo em um host KVM remoto.

Não dou nenhuma garantia de que isso funcionará para você!

1 Nota Preliminar

Atualmente, o BoxGrinder está disponível como um pacote para Fedora 17, mas não para RedHat/CentOS/Scientific Linux 6. Portanto, estou usando um sistema Fedora 17 para criar um convidado KVM CentOS que você pode executar localmente (se você usar o Fedora 17 como sua plataforma KVM) ou transferir para um host KVM remoto (você poderia fazer isso manualmente transferindo o arquivo de imagem e o arquivo de definição XML do convidado para o host remoto, mas o BoxGrinder também possui um recurso embutido que permite fazer isso automaticamente).

2 Instalando o BoxGrinder

Faça login no seu sistema Fedora como usuário root e execute:

yum install rubygem-boxgrinder-build

3 Usando o BoxGrinder

Você pode descobrir sobre os plugins do BoxGrinder e os sistemas operacionais convidados suportados executando:

boxgrinder-build --version
[root@localhost ~]# boxgrinder-build --version  
BoxGrinder Build 0.10.4  
  
Plugins de SO disponíveis:  
 - plugin rhel para Red Hat Enterprise Linux  
 - plugin centos para CentOS  
 - plugin fedora para Fedora  
 - plugin sl para Scientific Linux  
  
Plugins de plataforma disponíveis:  
 - plugin vmware para VMware  
 - plugin ec2 para Amazon Elastic Compute Cloud (Amazon EC2)  
 - plugin virtualbox para VirtualBox  
 - plugin virtualpc para VirtualPC  
  
Plugins de entrega disponíveis:  
 - plugin s3 para Amazon Simple Storage Service (Amazon S3)  
 - plugin cloudfront para Amazon Simple Storage Service (Amazon S3)  
 - plugin ami para Amazon Simple Storage Service (Amazon S3)  
 - plugin sftp para SSH File Transfer Protocol  
 - plugin ebs para Elastic Block Storage  
 - plugin local para sistema de arquivos local  
 - plugin elastichosts para ElasticHosts  
 - plugin openstack para OpenStack  
 - plugin libvirt para libvirt Virtualisation API  
[root@localhost ~]#

KVM é suportado por padrão, por isso não está listado como um plugin.

Para aprender como usar o BoxGrinder, você pode digitar:

boxgrinder-build -h
[root@localhost ~]# boxgrinder-build -h  
Uso: boxgrinder-build [arquivo de definição do appliance] [opções]  
  
Uma ferramenta para construir imagens de VM a partir de arquivos de definição simples.  
  
Página inicial:  
    http://boxgrinder.org/  
  
Documentação:  
    http://boxgrinder.org/tutorials/  
  
Exemplos:  
    $ boxgrinder-build jeos.appl                                 # Construir imagem KVM para jeos.appl  
    $ boxgrinder-build jeos.appl -f                             # Construir imagem KVM para jeos.appl removendo a construção anterior para esta imagem  
    $ boxgrinder-build jeos.appl --os-config format:qcow2       # Construir imagem KVM para jeos.appl com um disco qcow2  
    $ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true  # Construir imagem VMware para VMware Server, Player, Fusion usando disco fino (crescendo)  
    $ boxgrinder-build jeos.appl -p ec2 -d ami                  # Construir e registrar AMI para jeos.appl  
    $ boxgrinder-build jeos.appl -p vmware -d local             # Construir imagem VMware para jeos.appl e entregá-la ao diretório local  
  
Opções:  
    -p, --platform [TIPO]            O nome da plataforma que você deseja converter.  
    -d, --delivery [MÉTODO]           O método de entrega para o appliance selecionado.  
    -f, --force                       Forçar a criação da imagem - remove todas as construções anteriores para o appliance selecionado. Padrão: false.  
  
Opções de configuração de plugin:  
    -l, --plugins [PLUGINS]           Lista separada por vírgulas de plugins adicionais. Padrão: vazio.  
        --os-config [CONFIG]           Configuração do plugin do sistema operacional no formato: key1:value1,key2:value2.  
        --platform-config [CONFIG]     Configuração do plugin de plataforma no formato: key1:value1,key2:value2.  
        --delivery-config [CONFIG]      Configuração do plugin de entrega no formato: key1:value1,key2:value2.  
  
Opções de registro:  
        --debug                        Imprime informações de depuração enquanto constrói. Padrão: false.  
        --trace                        Imprime informações de rastreamento enquanto constrói. Padrão: false.  
    -b, --backtrace                   Imprime o backtrace completo se erros ocorrerem durante a construção. Padrão: true se o log do console estiver definido como depuração ou rastreamento, caso contrário, false.  
  
Opções comuns:  
        --change-to-user              Muda de root para usuário local após a conclusão do plugin do SO.  
        --help                        Mostra esta mensagem.  
        --version                     Imprime a versão.  
[root@localhost ~]#

Basicamente, funciona assim: você cria um arquivo de definição do appliance (por exemplo, centos.appl) em um diretório (por exemplo, /usr/local/appliances):

mkdir /usr/local/appliances  
cd /usr/local/appliances/  
vi centos.appl

Este arquivo de definição do appliance descreve nosso appliance KVM (como nome, sistema operacional (atualmente RedHat, CentOS, Scientific Linux e Fedora são suportados), senha root, número de CPUs, RAM, partições (números significam tamanho em GB) e pacotes que o BoxGrinder instalará automaticamente quando criar a máquina virtual):

| name: centos-6-lamp summary: CentOS 6 LAMP version: 1 release: 0 os: name: centos version: 6 password: secret hardware: cpus: 2 memory: 1024 partitions: "/": size: 4 "/var": size: 10 "swap": size: 0.5 packages: - @core - @web-server - @mysql - acpid default_repos: true # padrão é true |

Pacotes que começam com um @ não são pacotes únicos, mas grupos de pacotes. Você pode descobrir sobre os grupos de pacotes disponíveis executando

yum grouplist -v

em um sistema que executa o mesmo sistema operacional que você deseja usar em seu appliance.

Os nomes dos grupos de pacotes estão entre parênteses.

Pacotes que não começam com um sinal de @ não são grupos de pacotes, mas exatamente aquele pacote único.

O BoxGrinder sempre instalará a versão mais recente disponível de um sistema operacional, ou seja, se você especificar CentOS 6, isso significa que ele instalará 6.3 (6.3 sendo a versão mais recente do CentOS no momento da redação deste texto).

Agora você pode chamar o BoxGrinder assim (certifique-se de estar no mesmo diretório onde o centos.appl está localizado):

boxgrinder-build centos.appl

Por padrão, o BoxGrinder cria imagens brutas. Após a construção, você pode encontrar a imagem e a definição XML no diretório build/appliances/////1.0/-plugin/ - no meu caso, isso se traduz em build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 863308  
-rwxr-xr-x. 1 root root 15569256448 Oct  5 11:44 centos-6-lamp-sda.raw  
-rw-r--r--. 1 root root         475 Oct  5 11:42 centos-6-lamp.xml  
[root@localhost appliances]#

Para criar um appliance no formato qcow2, você usaria

boxgrinder-build centos.appl --os-config format:qcow2

em vez de:

ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/
[root@localhost appliances]# ls -l build/appliances/i686/centos/6/centos-6-lamp/1.0/centos-plugin/  
total 1628824  
-rw-r--r--. 1 root root   784007168 Oct  5 11:52 centos-6-lamp-sda.qcow2  
-rw-r--r--. 1 root root         481 Oct  5 11:51 centos-6-lamp.xml  
[root@localhost appliances]#

Agora você poderia pegar a imagem e copiá-la para /var/lib/libvirt/images no seu host KVM e o arquivo XML e copiá-lo para /etc/libvirt/qemu/ no host KVM, abrir o virsh e definir uma nova máquina virtual a partir do arquivo XML, mas em vez de fazer isso manualmente, você pode fazer o BoxGrinder fazer isso por você (com a opção -d):

Por exemplo, se você quiser adicionar o appliance à sua instalação local do KVM, execute:

boxgrinder-build centos.appl --os-config format:qcow2 -d libvirt

Isso copiaria a imagem diretamente para o diretório /var/lib/libvirt/images…

ls -l /var/lib/libvirt/images
[root@localhost appliances]# ls -l /var/lib/libvirt/images  
total 765636  
-rw-r--r--. 1 root root 784007168 Oct  5 11:55 centos-6-lamp-sda.qcow2  
[root@localhost appliances]#

… e o arquivo XML para o diretório /etc/libvirt/qemu/:

ls -l /etc/libvirt/qemu/
[root@localhost appliances]# ls -l /etc/libvirt/qemu/  
total 8  
-rw-------. 1 root root 2135 Oct  5 11:55 centos-6-lamp-1-0-centos-6-i686-raw.xml  
drwx------. 3 root root 4096 Jun 28 15:52 networks  
[root@localhost appliances]#
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.