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>