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-build3 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.applEste 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 -vem 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.applPor 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/
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:qcow2em 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 libvirtIsso 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]#Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.