6.1 使用http方式安装虚拟机

6.1.1 配置apache

1.确认或配置apache如下参数:

#vi /etc/httpd/conf/httpd.conf

Listen 80

DocumentRoot "/var/www/html"

2.重启apache

#service httpd restart

6.1.2 准备系统盘

1.新建存放系统盘的目录

#mkdir –p /os

2.新建存放虚拟机的目录

#mkdir –p /data

3.将系统盘CentOS-6.6-x86_64-bin-DVD1.iso上传至/os目录

4.挂载系统盘到apache主目录

#mkdir –p /var/www/html/centos6

#mount –o loop /os/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/centos6

6.1.3 创建虚拟机

1.虚拟机名称:g1,内存大小:512M,cpu个数:1,磁盘大小:6G

2.执行如下命令,即可进行安装界面

virt-install --connect=qemu:///system \

--name g1 \

--ram 512 \

--vcpus=1 \

--os-type=linux \

--os-variant=rhel6 \

--accelerate \

--hvm \

--disk path=/data/g1.img,size=6,bus=virtio \

--location http://192.168.100.90/centos6 \

--network bridge=br0,model=virtio \

-x "console=ttyS0"

--nographics

注:

1.如果安装过程中不能获取安装点位置,需要关闭或更改宿主机iptables规则.

2.安装过程中,虚拟机需要通过DHCP的方式获取IP地址.

6.2 使用本地ISO系统盘图形化安装虚拟机

6.2.1 准备系统盘

新建存放系统盘的目录

#mkdir –p /os

将系统盘CentOS-6.6-x86_64-bin-DVD1.iso上传至/os目录

新建存放虚拟机的目录

#mkdir –p /data

6.2.2 准备安装工具

安装工具采用putty和xming,Xming用于图形展现.

putty配置

1.打开putty

2.设置服务器登录地址和端口

KVM精简教程(六):virt-install创建虚拟机

定位到Connection->SSH->X11,按照如下设置设置

KVM精简教程(六):virt-install创建虚拟机

Xming配置

1.安装Xming工具

2.启动Xming

6.2.3 创建虚拟机

虚拟机名称:g1,内存大小:512M,cpu个数:1,磁盘大小:6G

执行如下命令,即可进入图形化安装界面

virt-install --connect=qemu:///system \

--name g1 \

--ram 512 \

--vcpus=1 \

--os-type=linux \

--os-variant=rhel6 \

--accelerate \

--hvm \

--disk path=/data/g1.img,size=6,bus=virtio \

--cdrom /os/CentOS-6.6-x86_64-bin-DVD1.iso \

--network bridge=br0,model=virtio \

-x "console=ttyS0"

Xming即可弹出安装界面.

KVM精简教程(六):virt-install创建虚拟机

6.3 使用kickstart安装虚拟机

6.3.1 配置apache

1. 确认或配置apache如下参数:

#vi /etc/httpd/conf/httpd.conf

Listen 80

DocumentRoot "/var/www/html"

2. 重启apache

#service httpd restart

6.3.2 准备系统盘

1. 新建存放系统盘的目录

#mkdir –p /os

2. 新建存放虚拟机的目录

#mkdir –p /data

3. 将系统盘CentOS-6.6-x86_64-bin-DVD1.iso上传至/os目录

4. 挂载系统盘到apache主目录

#mkdir –p /var/www/html/centos6

#mount –o loop /os/CentOS-6.6-x86_64-bin-DVD1.iso /var/www/html/centos6

6.3.3 准备ks.cfg

1. 创建存放ks.cfg的文件夹

mkdir –p /var/www/html/ks

2. 将ks.cfg文件放到/var/www/html/ks目录下

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="http://192.168.100.90/centos6"

# Root password

rootpw --iscrypted $1$fxaLCwXF$ZgkNxuea5PfLN9a1te.0i0

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

firstboot --disable

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --disabled

# Installation logging level

logging --level=info


# System timezone

timezone  Africa/Abidjan

# Network information

network  --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Partition clearing information


clearpart --all --initlabel

#clearpart --all --drives=sda

part /boot --fstype ext4 --size 200

part swap --size 16000

part / --fstype ext4 --size 1 --grow


%packages

@basic-desktop

@chinese-support

@fonts

@x11

%end

6.3.4 创建虚拟机

1. 虚拟机名称:g1,内存大小:512M,cpu个数:1,磁盘大小:6G

2. 创建qcow2格式的磁盘

#qemu-img create -f qcow2 /data/g1.qcow2 6G

3. 此格式的磁盘,创建虚拟机时需要加上format=qcow2,否则安装操作系统时硬盘会显示为0MB。

4. 执行如下命令,即可进行安装界面

virt-install --connect=qemu:///system \

--name g1 \

--ram 512 \

--vcpus=1 \

--os-type=linux \

--os-variant=rhel6 \

--accelerate \

--hvm \

--disk path=/data/g1.qcow2,size=6,format=qcow2,bus=virtio \

--location=http://192.168.100.90/centos6 \

--network bridge=br0,model=virtio \

-x "ks=http://192.168.100.90/ks/ks.cfg console=tty0 console=ttyS0,115200n8"

6.4 使用已存在的虚拟机配置文档创建新虚拟机

配置文档只是保存虚拟机的配置信息,并不存在操作系统,需要采用cdrom、PXE等方式安装操作系统。本例以cdrom为例。

6.4.1 创建磁盘

#qemu-img create -f qcow2 /data/g1.qcow2 6G

6.4.2 创建xml文件

1.查看现有的虚拟机

# virsh list

KVM精简教程(六):virt-install创建虚拟机

2.导出虚拟机centos6的硬件配置信息为xml文件

#virsh dumpxml centos6 > centos6.xml

3.编辑xml文件

必须修改的部分:

<domain type='kvm' id='20'>

  <name>g1</name>

  <uuid>0edb899f-4129-9420-b817-e7559df65d75</uuid>

……

<source file='/data/g1.qcow2'/>

……

<mac address='52:54:00:9b:5b:af'/>

改好后的g1.xml文件

其中:

<source file='/os/CentOS-6.6-x86_64-bin-DVD1.iso'/>

为系统镜像的地址。

<domain type='kvm' id='20'>

  <name>g1</name>

  <uuid>0edb899f-4129-9420-b817-e7559df65d75</uuid>

  <memory unit='KiB'>524288</memory>

  <currentMemory unit='KiB'>524288</currentMemory>

  <vcpu placement='static'>1</vcpu>

  <os>

    <type arch='x86_64' machine='rhel6.6.0'>hvm</type>

    <boot dev='hd'/>

  </os>

  <features>

    <acpi/>

    <apic/>

    <pae/>

  </features>

  <clock offset='utc'/>

  <on_poweroff>destroy</on_poweroff>

  <on_reboot>restart</on_reboot>

  <on_crash>restart</on_crash>

  <devices>

    <emulator>/usr/libexec/qemu-kvm</emulator>

    <disk type='file' device='disk'>

      <driver name='qemu' type='qcow2' cache='none'/>

      <source file='/data/g1.qcow2'/>

      <target dev='vda' bus='virtio'/>

      <alias name='virtio-disk0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>

    </disk>

    <disk type='file' device='cdrom'>

      <source file='/os/CentOS-6.6-x86_64-bin-DVD1.iso'/>

      <target dev='hdb' bus='ide'/>

    </disk>

    <controller type='usb' index='0' model='ich9-ehci1'>

      <alias name='usb0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x7'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci1'>

      <alias name='usb0'/>

      <master startport='0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0' multifunction='on'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci2'>

      <alias name='usb0'/>

      <master startport='2'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x1'/>

    </controller>

    <controller type='usb' index='0' model='ich9-uhci3'>

      <alias name='usb0'/>

      <master startport='4'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x2'/>

    </controller>

    <controller type='ide' index='0'>

      <alias name='ide0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>

    </controller>

    <interface type='bridge'>

      <mac address='52:54:00:9b:6b:af'/>

      <source bridge='br0'/>

      <target dev='vnet2'/>

      <model type='virtio'/>

      <alias name='net2'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>

    </interface>

    <serial type='pty'>

      <source path='/dev/pts/0'/>

      <target port='0'/>

      <alias name='serial0'/>

    </serial>

    <console type='pty' tty='/dev/pts/0'>

      <source path='/dev/pts/0'/>

      <target type='serial' port='0'/>

      <alias name='serial0'/>

    </console>

    <input type='tablet' bus='usb'>

      <alias name='input0'/>

    </input>

    <input type='mouse' bus='ps2'/>

    <graphics type='vnc' port='5900' autoport='yes' listen='0.0.0.0'>

      <listen type='address' address='0.0.0.0'/>

    </graphics>

    <video>

      <model type='cirrus' vram='9216' heads='1'/>

      <alias name='video0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>

    </video>

    <memballoon model='virtio'>

      <alias name='balloon0'/>

      <address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>

    </memballoon>

  </devices>

  <seclabel type='dynamic' model='selinux' relabel='yes'>

    <label>unconfined_u:system_r:svirt_t:s0:c619,c653</label>

    <p_w_picpathlabel>unconfined_u:object_r:svirt_p_w_picpath_t:s0:c619,c653</p_w_picpathlabel>

  </seclabel>

</domain>

使用xml文件创建虚拟机

# virsh define g1.xml 

Domain g1 defined from g1.xml

启动虚拟机

# virsh start g1