kvm与kickstart集成在这里我要说明下,因为在前面有关centos无人值守安装的文章中,我提到过如果要使用网卡pxe功能的话,内网中必须有dhcp服务器。
也就是说内部网络中必须有一台dhcp服务器,用来获取tftp服务器的地址,否则无法进行无人值守安装,centos也就无法通过网络安装。
如果我们是物理机通过网络进行安装centos的话,那么上述条件必须符合,也就是说。内网中必须存在dhcp服务器,否则客户端的网卡不能获取到相关的ip地址。
但是如果我们是通过kvm进行安装虚拟机的话,我们的网络就不一定需要dhcp服务器。我们只需要在kvm安装的脚本中配置相关ip地址,以及在kickstart的配置文件ks.cfg中配置相关ip地址即可。
为什么会是这样的呢?
<b>在这再补充一点有关网络的知识,同一个网络中即使没有路由器,只要两台机器配置的ip地址为同一个网段即可正常通信。</b>
在下面的文章中,我会分两部分来介绍kvm与kickstart的集成:网络中存在dhcp服务器和网络不存在dhcp服务器。
<b>一、网络中存在</b><b>dhcp</b><b>服务器</b><b></b>
开启dhcp服务器,如下:
/etc/init.d/dhcpd start
dhcp服务开启完毕后,我们开始创建一个lv逻辑卷作为虚拟机的硬盘。如下:
lvcreate -l 20g -n kickstart vg1
lvs
虚拟机硬盘创建后,我们现在开始创建虚拟机,使用如下命令:
virt-install -n kickstart -r 2048 –vcpus=1 –os-type=linux -l nfs:192.168.1.11:/iso -f /dev/vg1/kickstart –bridge=br0 -m 52:54:00:12:d7:5d –nographics -x “console=ttys0 ks=nfs:192.168.1.11:/ks/ks.cfg”
<b>这条命令的意思是:创建一个名叫kickstart的虚拟机,该虚拟机分配的内存为2g,使用一颗cpu,虚拟机为linux os,该虚拟机的硬盘是/dev/vg1/kickstart,该虚拟机网卡桥接的物理网卡br0,同时为该网卡指定mac地址为</b><b>52:54:00:12:d7:5d</b><b>。安装该虚拟机使用的镜像源为nfs:192.168.1.11:/iso,kvm在给该虚拟机安装过程中不使用图形界面。同时安装该虚拟机时,使用ks配置文件位于nfs:192.168.1.11:/ks/ks.cfg,并且在该虚拟机安装完毕后,可以通过串口进行来连接该虚拟机。</b>
在这里介绍下,有关这条命令的主要参数:
<b>1</b><b>、安装源与ks源的位置</b>
在这我们使用的是nfs方式,当然我们也可以使用ftp、http方式。有关nfs在kvm的使用,可以通过查看virt-install的帮助文档来了解。如下:
virt-install –help
也可以通过man virt-install来了解,如下:
<b>2</b><b>、虚拟机硬盘</b>
虚拟硬盘我们在此使用裸设备/dev/vg1/kickstart,有关虚拟机硬盘的我们也可以通过查看帮助文档来了解。
man virt-install
<b>3</b><b>、mac地址</b>
我们为该虚拟机指定了mac地址,<b>mac地址一定要为大写</b>。否则kvm会报错。而且有关指定mac地址,我们只能通过man virt-install来查看。如下:
<b>4</b><b>、ks源配置</b>
该虚拟机的ks源,我们是通过nfs方式来连接的。这个我们也可以通过查看man virt-install,如下:
以上就是该条命令创建虚拟机的相关参数,为什么要这么清楚的介绍这些参数?是因为这些参数都是在安装虚拟机时,是必须的而且我们通过这种方式也能更好的理解kvm的参数以及如何查看kvm的帮助文档。
以上是介绍kvm创建虚拟机,<b>记住此时我们还没有正式创建虚拟机</b>。现在还需要我们来配置ks的配置文件ks.cfg。如下:
more ks.cfg
在此我们主要配置ks.cfg中的网络部分。设置虚拟机安装时,使用dhcp方式获取ip地址。
好了这个配置完毕后,我们就来正式安装kvm虚拟机,如下:
系统安装完毕后,我们来查看该虚拟机的ip地址以及mac地址。如下:
ifconfig
可以看到虚拟机确实获取到了ip地址,并且mac地址也确实是我们指定的。
以上讲解的是在网络有dhcp服务器的情况,下面我们来讲解没有dhcp服务器的情况。
<b>二、网络中不存在</b><b>dhcp</b><b>服务器</b><b></b>
首先关闭dhcp服务器,如下:
/etc/init.d/dhcpd stop
修改kickstart配置ks.cfg有关网络的配置如下:
在ks.cfg文件中,我们定义虚拟机的ip地址、子网掩码、默认网关、dns服务器以及主机名。如下:
ip:192.168.1.220 dns:192.168.1.1 hostname:ilanni
修改完毕后,我们来通过kvm创建虚拟机,使用如下命令:
virt-install -n kickstart -r 2048 –vcpus=1 –os-type=linux -l nfs:192.168.1.11:/iso -f /dev/vg1/kickstart –bridge=br0 -m 52:54:00:12:d7:5d –nographics -x “console=ttys0 –device=eth0 ip=192.168.1.220 netmask=255.255.255.0 gateway=192.168.1.1 ks=nfs:192.168.1.11:/ks/ks.cfg ksdevice=eth0”
<b>注意:kvm中定义的ip地址和ks.cfg文件定义的ip可以相同也可以不相同,但是两个ip地址必须为同一个网段。并且最后虚拟机的ip地址以ks.cfg文件中配置的为准。</b>
通过上述两张截图,我们可以看出在没有dhcp服务器时,我们通过为kvm安装虚拟机时配置ip地址和ks.cfg配置ip地址,也可以通网络安装centos系统。
系统安装完毕后,我们重启进入虚拟机,查看我们定义的相关网络配置及主机名。如下:
more /etc/resolv.conf
通过上图,我们完全看出虚拟机的网络配置和主机名就是我们通过ks.cfg文件配置的。
到此我们的实验就已经结束了,在此我重申下。
<b>在kvm中网络centos系统不一定需要dhcp服务器,但是如果是物理机网络安装centos系统,必须要有dhcp的支持。而无论是kvm还是物理机安装centos系统,都是需要tftp服务器的支持。</b>