使用BoxGrinder创建虚拟RedHat / CentOS / Scientific Linux / Fedora设备(Fedora 17)
BoxGrinder是一种允许您构建虚拟机(使用RedHat,CentOS,Scientific Linux或Fedora作为操作系统)的工具,用于多种虚拟化技术。 目前它支持KVM,VMware,Amazon EC2,VirtualBox和VirtualPC。 本教程将介绍如何使用BoxGrinder在Fedora 17上创建CentOS 6 KVM guest虚拟机,以及如何将其部署到远程KVM主机。
我不会保证这将为您工作!
1初步说明
目前,BoxGrinder作为Fedora 17的一个软件包提供,但不适用于RedHat / CentOS / Scientific Linux 6.因此,我使用Fedora 17系统来创建一个CentOS KVM guest虚拟机,您可以在本地运行(如果您使用Fedora 17作为KVM平台)或转移到远程KVM主机(您可以通过将guest虚拟机的映像文件和XML定义文件传输到远程主机来手动执行,但BoxGrinder还具有内置功能,可以自动执行此操作)。
2安装BoxGrinder
以root用户身份登录到Fedora系统并运行:
yum install rubygem-boxgrinder-build
3使用BoxGrinder
您可以通过运行以下方式了解BoxGrinder的插件和受支持的客户机操作系统:
boxgrinder-build --version
[root@localhost ~]# boxgrinder-build --version
BoxGrinder Build 0.10.4
Available os plugins:
- rhel plugin for Red Hat Enterprise Linux
- centos plugin for CentOS
- fedora plugin for Fedora
- sl plugin for Scientific Linux
Available platform plugins:
- vmware plugin for VMware
- ec2 plugin for Amazon Elastic Compute Cloud (Amazon EC2)
- virtualbox plugin for VirtualBox
- virtualpc plugin for VirtualPC
Available delivery plugins:
- s3 plugin for Amazon Simple Storage Service (Amazon S3)
- cloudfront plugin for Amazon Simple Storage Service (Amazon S3)
- ami plugin for Amazon Simple Storage Service (Amazon S3)
- sftp plugin for SSH File Transfer Protocol
- ebs plugin for Elastic Block Storage
- local plugin for Local file system
- elastichosts plugin for ElasticHosts
- openstack plugin for OpenStack
- libvirt plugin for libvirt Virtualisation API
[root@localhost ~]#
默认情况下支持KVM,这就是为什么它不被列为插件的原因。
要学习如何使用BoxGrinder,可以输入:
boxgrinder-build -h
[root@localhost ~]# boxgrinder-build -h
Usage: boxgrinder-build [appliance definition file] [options]
A tool for building VM images from simple definition files.
Homepage:
http://boxgrinder.org/
Documentation:
http://boxgrinder.org/tutorials/
Examples:
$ boxgrinder-build jeos.appl # Build KVM image for jeos.appl
$ boxgrinder-build jeos.appl -f # Build KVM image for jeos.appl with removing previous build for this image
$ boxgrinder-build jeos.appl --os-config format:qcow2 # Build KVM image for jeos.appl with a qcow2 disk
$ boxgrinder-build jeos.appl -p vmware --platform-config type:personal,thin_disk:true # Build VMware image for VMware Server, Player, Fusion using thin (growing) disk
$ boxgrinder-build jeos.appl -p ec2 -d ami # Build and register AMI for jeos.appl
$ boxgrinder-build jeos.appl -p vmware -d local # Build VMware image for jeos.appl and deliver it to local directory
Options:
-p, --platform [TYPE] The name of platform you want to convert to.
-d, --delivery [METHOD] The delivery method for selected appliance.
-f, --force Force image creation - removes all previous builds for selected appliance. Default: false.
Plugin configuration options:
-l, --plugins [PLUGINS] Comma separated list of additional plugins. Default: empty.
--os-config [CONFIG] Operating system plugin configuration in format: key1:value1,key2:value2.
--platform-config [CONFIG] Platform plugin configuration in format: key1:value1,key2:value2.
--delivery-config [CONFIG] Delivery plugin configuration in format: key1:value1,key2:value2.
Logging options:
--debug Prints debug information while building. Default: false.
--trace Prints trace information while building. Default: false.
-b, --backtrace Prints full backtrace if errors occur whilst building. Default: true if console log is set to debug or trace, otherwise false.
Common options:
--change-to-user Change from root to local user after the OS plugin completes.
--help Show this message.
--version Print the version.
[root@localhost ~]#
基本上它的工作原理如下:您可以在目录(例如/ usr / local / appliance
)中创建一个设备定义文件(例如centos.appl
):
mkdir /usr/local/appliances
cd /usr/local/appliances/
vi centos.appl
本设备定义文件描述了我们的KVM设备(如名称,操作系统(目前支持RedHat,CentOS,Scientific Linux和Fedora),root密码,CPU数量,RAM,分区数(以GB为单位) BoxGrinder将在创建虚拟机时自动安装):
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 |
以@
开头的包不是单个包,而是包组。 您可以通过运行了解可用的包组
yum grouplist -v
在运行与要在设备中使用的相同操作系统的系统上。
包组的名称在括号中。
不以@
符号开头的包不是包组,而是单个包。
BoxGrinder将始终安装操作系统的最新版本,即,如果指定CentOS 6,则表示将安装6.3(6.3写入本文时为最新的CentOS版本)。
您现在可以这样调用BoxGrinder(请确保您位于centos.appl
所在的目录
中):
boxgrinder-build centos.appl
默认情况下,BoxGrinder创建原始
图像。 在构建之后,您可以在目录build / appliance / <arch> / <osplugin> / <osversion> / <name> /1.0/ <osplugin> -plugin /
中找到映像和XML定义 - 在我的情况下,这个转换为build / appliance / 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]#
要使用qcow2
格式创建设备,请使用
boxgrinder-build centos.appl --os-config format:qcow2
代替:
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]#
您现在可以将该映像复制到KVM主机上的/ var / lib / libvirt / images
和XML文件,并将其复制到KVM主机上的/ etc / libvirt / qemu /
,打开virsh
并定义新的虚拟机而不是手动执行此操作,您可以使BoxGrinder为您(使用-d
开关)执行此操作:
例如,如果要将设备添加到本地KVM安装,请运行:
boxgrinder-build centos.appl --os-config format:qcow2 -d libvirt
这将直接将图像复制到/ 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]#
...和XML文件到/ 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]#