本文由秀依林楓提供友情贊助,首發于爛泥行天下。
KVM與kickstart集成在這里我要說明下,因為在前面有關CentOS無人值守安裝的文章中,我提到過如果要使用網卡PXE功能的話,內網中必須有DHCP服務器。
也就是說內部網絡中必須有一臺DHCP服務器,用來獲取TFTP服務器的地址,否則無法進行無人值守安裝,CentOS也就無法通過網絡安裝。
如果我們是物理機通過網絡進行安裝CentOS的話,那么上述條件必須符合,也就是說。內網中必須存在DHCP服務器,否則客戶端的網卡不能獲取到相關的ip地址。
但是如果我們是通過KVM進行安裝虛擬機的話,我們的網絡就不一定需要DHCP服務器。我們只需要在KVM安裝的腳本中配置相關IP地址,以及在kickstart的配置文件ks.cfg中配置相關IP地址即可。
為什么會是這樣的呢?
其實在《爛泥:kickstart無人值守安裝CentOS6.5》文章中,我們已經介紹過了PXE的原理。PXE的網絡安裝CentOS過程其實有是兩個階段需要IP地址的支持,第一個階段是通過TFTP下載系統安裝內核、第二個階段是在系統安裝時獲取安裝源的地址。如果是內網有DHCP服務器的話,這兩個階段獲取的IP地址直接是從DHCP服務器上得到的。如果我們給網卡配置固定IP地址的話,那么就不需要DHCP服務器了。即第一階段的所使用的IP地址由KVM安裝虛擬機的腳本中配置,第二階段使用的IP地址由ks.cfg文件中配置。
在這再補充一點有關網絡的知識,同一個網絡中即使沒有路由器,只要兩臺機器配置的IP地址為同一個網段即可正常通信。
在下面的文章中,我會分兩部分來介紹KVM與kickstart的集成:網絡中存在DHCP服務器和網絡不存在DHCP服務器。
一、網絡中存在DHCP服務器
因為是與KVM集成相關,所以有關KVM的搭建與配置可以參照我之前的文章《爛泥:虛擬化KVM安裝與配置》,在這里我們也使用到了有關LVM和裸設備相關的知識,也可以參考這兩篇文章《爛泥:LVM學習之LVM基礎》、《爛泥:KVM使用裸設備配置虛擬機》。
既然這一部分是和DHCP服務器相關的,那么我們來開啟DHCP服務器,有關DHCP服務器的配置,可以參考這篇文章《爛泥:CentOS安裝及配置DHCP服務器》。
開啟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"
這條命令的意思是:創建一個名叫kickstart的虛擬機,該虛擬機分配的內存為2G,使用一顆CPU,虛擬機為linux OS,該虛擬機的硬盤是/dev/vg1/kickstart,該虛擬機網卡橋接的物理網卡br0,同時為該網卡指定MAC地址為52:54:00:12:D7:5D。安裝該虛擬機使用的鏡像源為nfs:192.168.1.11:/iso,KVM在給該虛擬機安裝過程中不使用圖形界面。同時安裝該虛擬機時,使用ks配置文件位于nfs:192.168.1.11:/ks/ks.cfg,并且在該虛擬機安裝完畢后,可以通過串口進行來連接該虛擬機。
在這里介紹下,有關這條命令的主要參數:
1、安裝源與KS源的位置
在這我們使用的是NFS方式,當然我們也可以使用FTP、HTTP方式。有關NFS在KVM的使用,可以通過查看virt-install的幫助文檔來了解。如下:
virt-install --help
也可以通過man virt-install來了解,如下:
2、虛擬機硬盤
虛擬硬盤我們在此使用裸設備/dev/vg1/kickstart,有關虛擬機硬盤的我們也可以通過查看幫助文檔來了解。
virt-install --help
man virt-install
3、MAC地址
我們為該虛擬機指定了MAC地址,MAC地址一定要為大寫。否則KVM會報錯。而且有關指定MAC地址,我們只能通過man virt-install來查看。如下:
man virt-install
4、ks源配置
該虛擬機的ks源,我們是通過nfs方式來連接的。這個我們也可以通過查看man virt-install,如下:
以上就是該條命令創建虛擬機的相關參數,為什么要這么清楚的介紹這些參數?是因為這些參數都是在安裝虛擬機時,是必須的而且我們通過這種方式也能更好的理解KVM的參數以及如何查看KVM的幫助文檔。
以上是介紹KVM創建虛擬機,記住此時我們還沒有正式創建虛擬機?,F在還需要我們來配置ks的配置文件ks.cfg。如下:
more ks.cfg
在此我們主要配置ks.cfg中的網絡部分。設置虛擬機安裝時,使用DHCP方式獲取IP地址。
好了這個配置完畢后,我們就來正式安裝KVM虛擬機,如下:
系統安裝完畢后,我們來查看該虛擬機的IP地址以及MAC地址。如下:
ifconfig
可以看到虛擬機確實獲取到了IP地址,并且MAC地址也確實是我們指定的。
以上講解的是在網絡有DHCP服務器的情況,下面我們來講解沒有DHCP服務器的情況。
二、網絡中不存在DHCP服務器
首先關閉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"
注意:KVM中定義的IP地址和ks.cfg文件定義的IP可以相同也可以不相同,但是兩個IP地址必須為同一個網段。并且最后虛擬機的IP地址以ks.cfg文件中配置的為準。
通過上述兩張截圖,我們可以看出在沒有DHCP服務器時,我們通過為KVM安裝虛擬機時配置IP地址和ks.cfg配置IP地址,也可以通網絡安裝CentOS系統。
系統安裝完畢后,我們重啟進入虛擬機,查看我們定義的相關網絡配置及主機名。如下:
ifconfig
more /etc/resolv.conf
通過上圖,我們完全看出虛擬機的網絡配置和主機名就是我們通過ks.cfg文件配置的。
到此我們的實驗就已經結束了,在此我重申下。
在KVM中網絡CentOS系統不一定需要DHCP服務器,但是如果是物理機網絡安裝CentOS系統,必須要有DHCP的支持。而無論是KVM還是物理機安裝CentOS系統,都是需要TFTP服務器的支持。
新聞熱點
疑難解答