PXE+DHCP+TFTP+KickStart大量安裝CentOS詳解

來源:互聯網
上載者:User

標籤:自動部署

一、情境介紹

當我們要部署大批量的伺服器時,傳統的光碟片或隨身碟安裝系統就不再適合,為了應對這種情境,PXE配合kickstart無人值守安裝就是一種很好的方法。

1.什麼是PXE

PXE是一種引導程式,分為client端和server端,首先,要進行自動化安裝的伺服器必須有一塊支援PXE的網卡,即網卡的ROM中必須有PXE client。當電腦引導時,BIOS把PXE client與TFTP client調入記憶體(TFTP client也內建於網卡ROM中),並將遠端的檔案通過網路下載到本地運行,所以PEX引導的執行還需要能夠給該伺服器提供地址的DHCP服務和存放檔案的TFTPserver。

2.什麼事kickstart

kickstart是一種無人值守安裝方式。他是將安裝過程中需要人為互動輸入的各種參數儲存在一個ks.cfg的檔案中,安裝過程中遇到需要填寫參數的時候會自動去找該檔案擷取參數,如果找不到,就會停在當前介面等待人工輸入。

3.安裝流程

計劃部署2台伺服器完成無人值守安裝,拓撲圖為:

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s2.51cto.com/wyfs02/M00/85/53/wKiom1egGZbShv5KAAB-dC0pbMs142.png-wh_500x0-wm_3-wmp_4-s_1881203305.png" title="1.png" style="float:none;" alt="wKiom1egGZbShv5KAAB-dC0pbMs142.png-wh_50" />

無人值守的安裝流程為:

(l)ient端啟動後,會在內網發廣播請求地址

(2)DHCP伺服器收到請求後會給Client端分配一個IP地址,並同時告訴Client端TFTP伺服器的地址

(3)用戶端從TFTP伺服器擷取開機檔案,開機檔案中包含自動應答檔案ks.cfg的地址指向

(4)用戶端根據自動應答檔案中的參數設定和安裝樹位置指向進行安裝

二、安裝前期準備

1.按規劃修改每台伺服器的IP地址

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/85/52/wKioL1egGZaj0Np2AAAu4VkkJ5s177.png-wh_500x0-wm_3-wmp_4-s_2874137504.png" title="2.png" style="float:none;" alt="wKioL1egGZaj0Np2AAAu4VkkJ5s177.png-wh_50" />

2.關閉伺服器上的selinux,修改後並不會立即生效,建議重啟作業系統

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M00/85/52/wKioL1egGZaT_0ZaAABkSWOBylQ341.png-wh_500x0-wm_3-wmp_4-s_1416499349.png" title="3.png" style="float:none;" alt="wKioL1egGZaT_0ZaAABkSWOBylQ341.png-wh_50" />

3.關閉防火牆,service iptables stop 否則Client端會報錯,關閉!關閉!關閉!

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/85/53/wKiom1egGZfgrLGjAAAduq7RCDo315.png-wh_500x0-wm_3-wmp_4-s_11267372.png" title="4.png" style="float:none;" alt="wKiom1egGZfgrLGjAAAduq7RCDo315.png-wh_50" />

4.插入光碟片並掛在至/media目錄下

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/85/53/wKiom1egGZfxEwI4AAATgObvEyg743.png-wh_500x0-wm_3-wmp_4-s_3375092424.png" title="5.png" style="float:none;" alt="wKiom1egGZfxEwI4AAATgObvEyg743.png-wh_50" />

5.使用rm -f $(ls . | grep -v ‘Me‘)將/etc/yum.repo.d/目錄下其他yum源刪除,只保留CentOS-Media源,並修改url的位置。為什麼要刪除其他的yum源,因為指定cost為100後,它還是會找其他的yum源而不是Media這個,為了減少幹擾就刪除了,或者將其他yum源的enable改為0也行

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M01/85/52/wKioL1egGZfDbLexAAAeHTya01Y139.png-wh_500x0-wm_3-wmp_4-s_3648087280.png" title="6.png" style="float:none;" alt="wKioL1egGZfDbLexAAAeHTya01Y139.png-wh_50" />

三、安裝步驟

1.安裝DHCP伺服器

(1)使用yum -y install dhcp安裝dhcp服務

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s4.51cto.com/wyfs02/M02/85/53/wKiom1egGZeBsHTqAAAcYUSAwRU865.png-wh_500x0-wm_3-wmp_4-s_288868703.png" title="7.png" style="float:none;" alt="wKiom1egGZeBsHTqAAAcYUSAwRU865.png-wh_50" />

(2)編輯/etc/dhcp/dhcpd.conf檔案,或者可以拷貝一個模板後,在模板基礎上修改,命令為:

cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf。此處需要說明的是:next-server就是TFTP伺服器的地址;filename是告訴Client端引導檔案是TFTP伺服器根目錄下一個叫pxelinux.0的檔案,這2個參數都是Client端在想DHCP擷取IP地址時,由DHCP一併發送給Client端的,pxelinux.0檔案是獲得IP地址後Client端第一個執行的檔案,類似於MBR。

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/52/wKioL1egGZiA0dz2AABOX80nQbA286.png-wh_500x0-wm_3-wmp_4-s_1354313512.png" title="8.png" style="float:none;" alt="wKioL1egGZiA0dz2AABOX80nQbA286.png-wh_50" />

(3)在/etc/sysconfig/dhcpd中指定提供DHCP服務的網口,此處是eth0

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/85/53/wKiom1egGZigecejAAAZJWLWxNg263.png-wh_500x0-wm_3-wmp_4-s_1892112191.png" title="9.png" style="float:none;" alt="wKiom1egGZigecejAAAZJWLWxNg263.png-wh_50" />

(4)啟動dhcp服務,並設定開啟自動啟動

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/85/52/wKioL1egGZijIPzDAAAY3lDm_yM930.png-wh_500x0-wm_3-wmp_4-s_416970837.png" title="10.png" style="float:none;" alt="wKioL1egGZijIPzDAAAY3lDm_yM930.png-wh_50" />

(5)DHCP預設使用的是UDP協議,檢查連接埠偵聽是否正常

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M01/85/53/wKiom1egGZnD1s1vAAA_gVUnq38407.png-wh_500x0-wm_3-wmp_4-s_1845161075.png" title="11.png" style="float:none;" alt="wKiom1egGZnD1s1vAAA_gVUnq38407.png-wh_50" />

2.安裝TFTP伺服器

(1)使用yum -y install tftp-server安裝tftp伺服器

(2)使用chkconfig tftp on ;chkconfig xinetd on 開啟tftp和xinetd服務,從chkconfig --list中能看到tftp和xinetd服務已經開啟。此處需要說明的是:xinetd服務是什麼?我們知道,服務是常駐於記憶體中的進程,會消耗一定的系統資源,有一些服務可能偶爾會用到,所以一直開著對記憶體資源就是一種浪費,這種服務就統一由xinetd服務來代管,當需要用到此服務時,xinetd會喚醒相應服務,這樣只需要啟動一個xinetd服務,節省了記憶體資源

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/85/52/wKioL1egGZnQzOd2AABLsxpisyc170.png-wh_500x0-wm_3-wmp_4-s_2723032657.png" title="12.png" style="float:none;" alt="wKioL1egGZnQzOd2AABLsxpisyc170.png-wh_50" />

另外需要說明的一點是:從tftp的設定檔中發現tftp的根目錄為/var/lib/tftpboot,所以安裝DHCP伺服器步驟(2)中filename "/pxelinux.0"檔案就應放在/var/lib/tftpboot目錄中

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M01/85/52/wKioL1egGZnS85BCAABgqQqvfCA251.png-wh_500x0-wm_3-wmp_4-s_3822003317.png" title="13.png" style="float:none;" alt="wKioL1egGZnS85BCAABgqQqvfCA251.png-wh_50" />

(4)查看TFTP所使用的69號連接埠是否正常監聽

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/53/wKiom1egGZqzCK9-AAA-GOqRByw356.png-wh_500x0-wm_3-wmp_4-s_1478695782.png" title="14.png" style="float:none;" alt="wKiom1egGZqzCK9-AAA-GOqRByw356.png-wh_50" />

3.安裝http服務

(1)使用yum -y inistall httpd安裝httpd服務

(2)使用service httpd start && chkconfig httpd on啟動httpd服務並設定開機啟動

(3)建立一個centos6目錄,將光碟片的內從再掛載到該目錄,不管怎麼弄,只要把安裝光碟片內容能讓用戶端通過web訪問即可,它的作用是在ks.cfg檔案中提供安裝樹的url指向,可以是http或NFS等

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/53/wKiom1egGZrzlOsUAAA1C9R8Mb8679.png-wh_500x0-wm_3-wmp_4-s_1761997127.png" title="15.png" style="float:none;" alt="wKiom1egGZrzlOsUAAA1C9R8Mb8679.png-wh_50" />

(4)查看htppd伺服器的80連接埠是否正常監聽,服務是否正常

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/53/wKioL1egGZvhN_F-AABGCsM0PxQ510.png-wh_500x0-wm_3-wmp_4-s_1055918800.png" title="16.png" style="float:none;" alt="wKioL1egGZvhN_F-AABGCsM0PxQ510.png-wh_50" />

4.PXE配置引導

(1)前面所提到的pxelinux.0檔案是在syslinux引導程式中,所以要先安裝syslinux程式,yum -y install syslinux

(2)拷貝/var/www/html/centos6/images/pxeboot/目錄下vmlinuz和initrd.img檔案;/var/www/html/centos6/isolinux/目錄下的boot.msg、vesamenu.c32、splash.jpg檔案拷貝到tftp伺服器根部錄下/var/lib/tftpboot/,因為pxelinux.0檔案代替了isolinux.bin,所以不用拷貝

(3)將pxelinux.0檔案拷貝到ftfp伺服器的根部錄下 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ 

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/53/wKioL1egGZvzzJocAAA24xUxsVc067.png-wh_500x0-wm_3-wmp_4-s_3105534398.png" title="17.png" style="float:none;" alt="wKioL1egGZvzzJocAAA24xUxsVc067.png-wh_50" />

(4)類似於isolinux.cfg給isolinux.bin提供設定檔一樣,我們也需要給pxelinux.0提供一個設定檔,且設定檔需要放在/var/lib/tftpboot/pxelinux.cfg這個專門的目錄中

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/85/53/wKiom1egGZugqm5SAAASPQBVEMM836.png-wh_500x0-wm_3-wmp_4-s_1004143515.png" title="18.png" style="float:none;" alt="wKiom1egGZugqm5SAAASPQBVEMM836.png-wh_50" />

(5)isolinux.cfg檔案當模板,複製到/var/lib/tftpboot/pxelinux.cfg/default需要重新命名為default。至此,啟動環境已經完成 

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M00/85/53/wKiom1egGZzj_1RpAAAUMqqyEGM460.png-wh_500x0-wm_3-wmp_4-s_3256565682.png" title="19.png" style="float:none;" alt="wKiom1egGZzj_1RpAAAUMqqyEGM460.png-wh_50" />

5.第一次測試,建立一台伺服器選擇網卡啟動,看到Client在擷取到IP後能夠進入安裝介面,說明可以正常擷取到TFTP上的開機檔案,需要說明的此時他還會再自動擷取一次IP地址,原因是此時不再是TFTP的階段而是anaconda階段,所以需要再次擷取一次地址,在他的設定檔anaconda.cfg中能看到這點

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/85/53/wKioL1egGZyBC4QVAAA5rk9-v8Y873.png-wh_500x0-wm_3-wmp_4-s_2800774920.png" title="20.png" style="float:none;" alt="wKioL1egGZyBC4QVAAA5rk9-v8Y873.png-wh_50" />

6.配置ks.cfg檔案

(1)ks檔案可以由system-config-kiskstart產生,推薦使用現有ks檔案當模板,在管理員的家目錄下有個anaconda-ks.cfg檔案,可以用它來當模板

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s5.51cto.com/wyfs02/M00/85/53/wKioL1egGZzz89n9AAAihZVTtJM217.png-wh_500x0-wm_3-wmp_4-s_3485365249.png" title="21.png" style="float:none;" alt="wKioL1egGZzz89n9AAAihZVTtJM217.png-wh_50" />

(2)拷貝anaconda.cfg檔案至/var/www/html目錄下重新命名為ks.cfg,注意此處該檔案的讀取許可權只有管理員有,而自動安裝時擷取這個檔案是由apache發起,所以匹配的是apache使用者權限,從而無法訪問

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/85/53/wKiom1egGZ2TqGu1AAAvdM7rg0Q178.png-wh_500x0-wm_3-wmp_4-s_1168240542.png" title="22.png" style="float:none;" alt="wKiom1egGZ2TqGu1AAAvdM7rg0Q178.png-wh_50" />

(3)修改ks.cfg檔案許可權,讓其他使用者有讀取許可權

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/85/53/wKioL1egGZ3AhZk6AAAlDddHk18925.png-wh_500x0-wm_3-wmp_4-s_2149788599.png" title="23.png" style="float:none;" alt="wKioL1egGZ3AhZk6AAAlDddHk18925.png-wh_50" />

(4)修改ks.cfg檔案,將安裝方式改為url並指定安裝樹位置和repo位置,並設定磁碟分割,管理員密碼可使用grub-crypt方式加密後將字串粘貼至此

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/85/53/wKiom1egGZ3jHPFSAACjgSfecrQ487.png-wh_500x0-wm_3-wmp_4-s_1567354816.png" title="24.png" style="float:none;" alt="wKiom1egGZ3jHPFSAACjgSfecrQ487.png-wh_50" />

(5)回到TFTP伺服器在pxe的設定檔/var/lib/tftpboot/pxelinux.cfg/default內指明ks檔案的路徑,如果有多網卡還需要指明使用ks安裝的網卡,不指定的話會在安裝時讓你手動指定,就達不到自動化安裝的目的

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s2.51cto.com/wyfs02/M01/85/53/wKioL1egGZ6Dd-aeAAAhly7REPQ927.png-wh_500x0-wm_3-wmp_4-s_2533340473.png" title="25.png" style="float:none;" alt="wKioL1egGZ6Dd-aeAAAhly7REPQ927.png-wh_50" />

(6)再次測試,可以成功自動安裝,至此,全部操作完成

650) this.width=650;" src="/e/u261/themes/default/images/spacer.gif" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" alt="spacer.gif" />650) this.width=650;" src="http://s3.51cto.com/wyfs02/M02/85/53/wKiom1egGZ6CqXpuAAAqCDRUDvQ535.png-wh_500x0-wm_3-wmp_4-s_3777492530.png" title="26.png" style="float:none;" alt="wKiom1egGZ6CqXpuAAAqCDRUDvQ535.png-wh_50" />



本文出自 “兔樣兔森破” 部落格,請務必保留此出處http://arkling.blog.51cto.com/2844506/1833444

PXE+DHCP+TFTP+KickStart大量安裝CentOS詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.