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通过命令创建虚拟机 kvm创建虚拟机步骤_kvm通过命令创建虚拟机

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


kvm通过命令创建虚拟机 kvm创建虚拟机步骤_ci_02

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通过命令创建虚拟机 kvm创建虚拟机步骤_ci_03

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通过命令创建虚拟机 kvm创建虚拟机步骤_运维_04

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