Virtualizzazione · 5 min read · Jan 19, 2026

Creazione di Appliance Virtuali RedHat/CentOS/Scientific Linux/Fedora per KVM con BoxGrinder (Fedora 17)

Creazione di Appliance Virtuali RedHat/CentOS/Scientific Linux/Fedora per KVM con BoxGrinder (Fedora 17)

Versione 1.0
Autore: Falko Timme
Seguimi su Twitter

BoxGrinder è uno strumento che consente di costruire macchine virtuali (con RedHat, CentOS, Scientific Linux o Fedora come sistema operativo) per diverse tecniche di virtualizzazione. Attualmente supporta KVM, VMware, Amazon EC2, VirtualBox e VirtualPC. Questo tutorial mostra come utilizzare BoxGrinder per creare un guest KVM CentOS 6 su Fedora 17 e anche come distribuirlo su un host KVM remoto.

Non fornisco alcuna garanzia che questo funzionerà per te!

1 Nota Preliminare

Attualmente BoxGrinder è disponibile come pacchetto per Fedora 17, ma non per RedHat/CentOS/Scientific Linux 6. Pertanto, sto utilizzando un sistema Fedora 17 per creare un guest KVM CentOS che puoi eseguire localmente (se utilizzi Fedora 17 come piattaforma KVM) o trasferire a un host KVM remoto (puoi farlo manualmente trasferendo il file immagine e il file di definizione XML del guest all’host remoto, ma BoxGrinder ha anche una funzione integrata che ti consente di farlo automaticamente).

2 Installazione di BoxGrinder

Accedi al tuo sistema Fedora come utente root ed esegui:

yum install rubygem-boxgrinder-build

3 Utilizzo di BoxGrinder

Puoi scoprire i plugin di BoxGrinder e i sistemi operativi guest supportati eseguendo:

boxgrinder-build --version
[root@localhost ~]# boxgrinder-build --version  
BoxGrinder Build 0.10.4  
  
Plugin os disponibili:  
 - plugin rhel per Red Hat Enterprise Linux  
 - plugin centos per CentOS  
 - plugin fedora per Fedora  
 - plugin sl per Scientific Linux  
  
Plugin piattaforma disponibili:  
 - plugin vmware per VMware  
 - plugin ec2 per Amazon Elastic Compute Cloud (Amazon EC2)  
 - plugin virtualbox per VirtualBox  
 - plugin virtualpc per VirtualPC  
  
Plugin di consegna disponibili:  
 - plugin s3 per Amazon Simple Storage Service (Amazon S3)  
 - plugin cloudfront per Amazon Simple Storage Service (Amazon S3)  
 - plugin ami per Amazon Simple Storage Service (Amazon S3)  
 - plugin sftp per SSH File Transfer Protocol  
 - plugin ebs per Elastic Block Storage  
 - plugin local per file system locale  
 - plugin elastichosts per ElasticHosts  
 - plugin openstack per OpenStack  
 - plugin libvirt per libvirt Virtualisation API  
[root@localhost ~]#

KVM è supportato per impostazione predefinita, ecco perché non è elencato come plugin.

Per imparare a utilizzare BoxGrinder, puoi digitare:

boxgrinder-build -h
[root@localhost ~]# boxgrinder-build -h  
Uso: boxgrinder-build [file di definizione appliance] [opzioni]  
  
Uno strumento per costruire immagini VM da semplici file di definizione.  
  
Homepage:  
    http://boxgrinder.org/  
  
Documentazione:  
    http://boxgrinder.org/tutorials/  
  
Esempi:  
    $ boxgrinder-build jeos.appl  
    $ boxgrinder-build jeos.appl -f  
    $ boxgrinder-build jeos.appl --os-config format:qcow2  
    $ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true  
    $ boxgrinder-build jeos.appl -p ec2 -d ami  
    $ boxgrinder-build jeos.appl -p vmware -d local  
  
Opzioni:  
    -p, --platform [TIPO]            Il nome della piattaforma a cui vuoi convertire.  
    -d, --delivery [METODO]          Il metodo di consegna per l'appliance selezionata.  
    -f, --force                      Forza la creazione dell'immagine - rimuove tutte le build precedenti per l'appliance selezionata. Default: false.  
  
Opzioni di configurazione del plugin:  
    -l, --plugins [PLUGIN]           Lista di plugin aggiuntivi separati da virgola. Default: vuoto.  
        --os-config [CONFIG]         Configurazione del plugin del sistema operativo nel formato: chiave1:valore1,chiave2:valore2.  
        --platform-config [CONFIG]   Configurazione del plugin della piattaforma nel formato: chiave1:valore1,chiave2:valore2.  
        --delivery-config [CONFIG]    Configurazione del plugin di consegna nel formato: chiave1:valore1,chiave2:valore2.  
  
Opzioni di registrazione:  
        --debug                      Stampa informazioni di debug durante la costruzione. Default: false.  
        --trace                      Stampa informazioni di tracciamento durante la costruzione. Default: false.  
    -b, --backtrace                  Stampa il backtrace completo se si verificano errori durante la costruzione. Default: true se il log della console è impostato su debug o trace, altrimenti false.  
  
Opzioni comuni:  
        --change-to-user            Cambia da root a utente locale dopo che il plugin OS è completato.  
        --help                       Mostra questo messaggio.  
        --version                    Stampa la versione.  
[root@localhost ~]#

Fondamentalmente funziona così: crei un file di definizione dell’appliance (ad es. centos.appl) in una directory (ad es. /usr/local/appliances):

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

Questo file di definizione dell’appliance descrive la nostra appliance KVM (come nome, sistema operativo (attualmente sono supportati RedHat, CentOS, Scientific Linux e Fedora), password di root, numero di CPU, RAM, partizioni (i numeri significano dimensione in GB) e pacchetti che BoxGrinder installerà automaticamente quando crea la macchina virtuale):

| 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 # default is true |

I pacchetti che iniziano con un @ non sono pacchetti singoli, ma gruppi di pacchetti. Puoi scoprire i gruppi di pacchetti disponibili eseguendo

yum grouplist -v

su un sistema che esegue lo stesso sistema operativo che desideri utilizzare nella tua appliance.

I nomi dei gruppi di pacchetti sono tra parentesi.

I pacchetti che non iniziano con un simbolo @ non sono gruppi di pacchetti, ma esattamente quel singolo pacchetto.

BoxGrinder installerà sempre l’ultima versione disponibile di un sistema operativo, cioè, se specifichi CentOS 6, significa che installerà 6.3 (6.3 essendo l’ultima versione di CentOS al momento della scrittura).

Puoi ora chiamare BoxGrinder in questo modo (assicurati di essere nella stessa directory in cui si trova centos.appl):

boxgrinder-build centos.appl

Per impostazione predefinita, BoxGrinder crea immagini raw. Dopo la costruzione, puoi trovare l’immagine e la definizione XML nella directory build/appliances/////1.0/-plugin/ - nel mio caso, questo si traduce in 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]#

Per creare un’appliance in formato qcow2, utilizzeresti

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

invece:

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]#

Ora potresti prendere l’immagine e copiarla in /var/lib/libvirt/images sul tuo host KVM e il file XML e copiarlo in /etc/libvirt/qemu/ sull’host KVM, aprire virsh e definire una nuova macchina virtuale dal file XML, ma invece di farlo manualmente, puoi far fare a BoxGrinder questo per te (con l’opzione -d):

Ad esempio, se vuoi aggiungere l’appliance alla tua installazione KVM locale, esegui:

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

Questo copierebbe l’immagine direttamente nella directory /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 il file XML nella directory /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

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.