一、概念與原理
什麼是PXE
嚴格來說,PXE 并不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支援的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment,直譯為啟動前的執行環境)協定使計算機可以通過網絡啟動。協定分為 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入記憶體執行,由 PXE client 将放置在遠端的檔案通過網絡下載下傳到本地運作。運作 PXE 協定需要設定 DHCP 伺服器和 TFTP 伺服器。DHCP 伺服器用來給 PXE client(将要安裝系統的主機)配置設定一個 IP 位址,由于是給 PXE client 配置設定 IP 位址,是以在配置 DHCP 伺服器時需要增加相應的 PXE 設定。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協定到 TFTP Server 上下載下傳所需的檔案。
什麼是KickStart
KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工幹預填寫的各種參數,并生成一個名為ks.cfg的檔案;在其後的安裝過程中(不隻局限于生成KickStart安裝檔案的機器)當出現要求填寫參數的情況時,安裝程式會首先去查找KickStart生成的檔案,當找到合适的參數時,就采用找到的參數,當沒有找到合适的參數時,才需要安裝者手工幹預。這樣,如果KickStart檔案涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以隻告訴安裝程式從何處取ks.cfg檔案,然後去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中設定的重新開機選項來重新開機系統,并結束安裝。
二、環境說明
執行pxe+kickstart來批量安裝系統,需要的環境為
1.DHCP伺服器
2.TFTP伺服器
3.httpd伺服器或者ftp伺服器或nfs伺服器等能提供檔案通路的伺服器
4.ks.cfg檔案
5.syslinux服務提供的pxelinux.0檔案
6.一台帶有支援pxe協定的網卡的主機
7.為確定實驗可用性,請将防火牆和selinux關閉
三、安裝步驟
1)、系統版本
1
2
<code>[root@station125 ~]# uname -r</code>
<code>2.6</code><code>.</code><code>32</code><code>-</code><code>431</code><code>.el6.x86_64</code>
3
<code>[root@station125 ~]# cat /etc/issue</code>
<code>CentOS release </code><code>6.5</code> <code>(Final)</code>
<code>Kernel \r on an \m</code>
2)、配置網絡環境以及yum源
本文使用的yum源為本地CD光牒,設定ip位址192.168.1.20,子網路遮罩為255.255.255.0,網關為192.168.1.253
4
5
6
7
<code>yum源的配置檔案</code>
<code>[root@station125 yum.repos.d]# cat media.repo</code>
<code>[base]</code>
<code>name=local media base</code>
<code>baseurl=file:</code><code>///mnt/cdrom</code>
<code>enabled=</code><code>1</code>
<code>gpgcheck=</code><code>0</code>
8
9
<code>[root@station125 ~]# ifconfig eth0</code>
<code>eth0 Link encap:Ethernet HWaddr </code><code>00</code><code>:0C:</code><code>29</code><code>:E4:A8:B0</code>
<code> </code><code>inet addr:</code><code>192.168</code><code>.</code><code>1.20</code> <code>Bcast:</code><code>192.168</code><code>.</code><code>1.255</code> <code>Mask:</code><code>255.255</code><code>.</code><code>255.0</code>
<code> </code><code>inet6 addr: fe80::20c:29ff:fee4:a8b0/</code><code>64</code> <code>Scope:Link</code>
<code> </code><code>UP BROADCAST RUNNING MULTICAST MTU:</code><code>1500</code> <code>Metric:</code><code>1</code>
<code> </code><code>RX packets:</code><code>2519</code> <code>errors:</code><code>0</code> <code>dropped:</code><code>0</code> <code>overruns:</code><code>0</code> <code>frame:</code><code>0</code>
<code> </code><code>TX packets:</code><code>398</code> <code>errors:</code><code>0</code> <code>dropped:</code><code>0</code> <code>overruns:</code><code>0</code> <code>carrier:</code><code>0</code>
<code> </code><code>collisions:</code><code>0</code> <code>txqueuelen:</code><code>1000</code>
<code> </code><code>RX bytes:</code><code>227897</code> <code>(</code><code>222.5</code> <code>KiB) TX bytes:</code><code>49799</code> <code>(</code><code>48.6</code> <code>KiB)</code>
3)、安裝DHCP服務
<code>[root@station125 ~]# yum install -y dhcp</code>
配置dhcp伺服器,使其能夠提供192.168.1.200-192.168.1.230的ip位址,子網路遮罩為255.255.255.0。
在/etc/dhcpd/dhcpd.conf中添加如下内容,請注意,每行後面一定要加分号,要不不會成功
<a href="http://s3.51cto.com/wyfs02/M02/1D/7C/wKioL1MYhEug8AzPAACEocfsxE4570.jpg" target="_blank"></a>
4)、安裝httpd服務(本文通過http的方式提供服務)
<code>[root@station125 ~]# yum install httpd -y</code>
此處隻是讓http能夠提供服務,不做任何配置,關于httpd的相關配置,将在後續推出,敬請大家關注。
将httpd設定為開機自動啟動
<code>[root@station125 ~]# chkconfig httpd on</code>
5)、安裝tftp-server服務端
<code>root@station125 ~]# yum install tftp-server xinetd -y</code>
其中xinetd是為tftp提供守護程序的,将xieted和tftp都設定為開機自啟動,并将服務啟動
<code>[root@station125 ~]# chkconfig tftp on</code>
<code>[root@station125 ~]# chkconfig xinetd on</code>
6)、準備所需要的rpm包
将CD光牒下重新挂載指至/var/www/html/wangfeng7399目錄下
<code>[root@station125 ~]# mkdir /</code><code>var</code><code>/www/html/wangfeng7399</code>
<code>[root@station125 ~]# mount --bind /mnt/cdrom/ /</code><code>var</code><code>/www/html/wangfeng7399/</code>
啟動httpd服務
<code>[root@station125 ~]# service httpd start</code>
<code>Starting httpd: httpd: apr_sockaddr_info_get() failed </code><code>for</code> <code>station125.magelinux.com</code>
<code>httpd: Could not reliably determine the server's fully qualified domain name, using </code><code>127.0</code><code>.</code><code>0.1</code> <code>for</code> <code>ServerName</code>
<code> </code><code>[ OK ]</code>
7)、準備tftpboot下的檔案
安裝syslinux,此服務為pxe提供pxelinux.0檔案
<code>[root@station125 ~]# yum install syslinux -y</code>
複制pxe啟動所需要的檔案到tftp目錄下
<code>[root@station125 ~]# cp /</code><code>var</code><code>/www/html/wangfeng7399/images/pxeboot/{vmlinuz,initrd.img} /</code><code>var</code><code>/lib/tftpboot/</code>
<code>[root@station125 ~]# cp /</code><code>var</code><code>/www/html/wangfeng7399/isolinux/boot.msg /</code><code>var</code><code>/lib/tftpboot/</code>
<code>[root@station125 ~]# cp /</code><code>var</code><code>/www/html/wangfeng7399/isolinux/vesamenu.c32 /</code><code>var</code><code>/lib/tftpboot/</code>
<code>[root@station125 ~]# cp /</code><code>var</code><code>/www/html/wangfeng7399/isolinux/splash.jpg /</code><code>var</code><code>/lib/tftpboot/</code>
<code>[root@station125 ~]# cp /usr/share/syslinux/pxelinux.</code><code>0</code> <code>/</code><code>var</code><code>/lib/tftpboot/</code>
<code>[root@station125 ~]# mkdir /</code><code>var</code><code>/lib/tftpboot/pxelinux.cfg</code>
<code>[root@station125 ~]# cp /</code><code>var</code><code>/www/html/wangfeng7399/isolinux/isolinux.cfg /</code><code>var</code><code>/lib/tftpboot/pxelinux.cfg/</code><code>default</code>
修改/var/lib/tftpboot/pxelinux.cfg/default
<a href="http://s3.51cto.com/wyfs02/M00/1D/7D/wKioL1MYhYmgvNewAAEQXEd1oUk683.jpg" target="_blank"></a>
8)、第一次測試,測試是否可以通過pxe安裝系統
<a href="http://s3.51cto.com/wyfs02/M00/1D/7C/wKiom1MYhiTAm6W_AAJFo6mJryY718.jpg" target="_blank"></a>
9)、提供kictstart檔案
kickstart檔案生成方式有了兩種
1.複制模闆/root/anaconda-ks.cfg。而後使用vim編輯配置
2.使用system-config-kiskstart來生成,建議使用/root/anaconda-ks.cfg 模闆生成
本文以第一種方式生成,修改自己所需要的參數,關于ks.cfg的相關介紹請移步至本人的相關博文!連結位址為http://wangfeng7399.blog.51cto.com/3518031/1369553
将生成的ks.cfg檔案複制到/var/www/html下
10)、配置引導程式能夠自動加載kictstart檔案
修改/var/lib/tftpboot/pxelinux.cfg的default檔案
<a href="http://s3.51cto.com/wyfs02/M02/1D/80/wKioL1MYisnzFLQuAAIH4qtw8c0994.jpg" target="_blank"></a>
為/var/www/html下的ks.cfg檔案加可讀權限
11)、測試安裝
<a href="http://s3.51cto.com/wyfs02/M02/1D/84/wKiom1MYkLKweFflAADJnNX7wXA423.jpg" target="_blank"></a>
測試成功!!!!
由于本人水準有限,請多多關照,歡迎大家批評指正
本文轉自wangfeng7399 51CTO部落格,原文連結:http://blog.51cto.com/wangfeng7399/1369537,如需轉載請自行聯系原作者