使用BoxGrinder(Fedora 17)创建虚拟RedHat / CentOS /科学Linux / Fedora设备

使用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]#
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏