PXE、kickstart實現Linux安裝自動化

    下面我要介紹的是一個基於網絡的PXE和kickstart自動安裝系統的實驗,這也是我從學習linux不久,一直想要實現的功能,這裏,我將實驗過程和本身的理解貼出來。html


實驗拓撲圖以下所示:linux

wKiom1PYtcjR3sfnAAJuzvwUoB0597.jpg


實驗環境準備:web

wKiom1PYtnjTYbJyAABfWPQWpLg691.jpg

注意:以上的三臺服務器和一臺普通PC都要位於同一個網段,並且PC先不配置地址vim


實現過程原理講解:(若有不懂之處,先理解,作完實驗就會理解,建議看看)centos

  一、普通PC啓動後,將其啓動項調爲基於網卡啓動,以下圖bash

  wKioL1PYuPih9N_KAADOfiCuAkA745.jpg

  

  二、 因爲網卡自己尚未地址,而後,它就會向它所在的局域網內發起DHCP DISCOVER的廣播包服務器


  三、 而後DHCP服務器就會響應它,通過相互肯定後,會給這臺PC的網卡分配一個IP地址,於此同時,DHCP服務器會告訴網卡有下一個服務器,而後指定網卡到下一個服務器上去下載某個文件。網絡


  四、網卡得到地址後,就會去下一個服務器,即TFTP服務器上去下載一個爲pexlinux.0的文件,而後,下載至本地(網卡內部嵌有TFTP客戶端程序),pexlinux.0的功能就至關於grub引導程序了app


  五、網卡下載到pxelinux.0文件後,在普通PC的內存中展開,而後就須要kernel和ramdisk,到TFTP服務器上去下載這兩個文件,啓動虛擬的系統。dom


  六、接下來,下載.cfg的文件,實現自動安裝,該文件中指定了安裝的源服務器,即上面的Web服務器,咱們把Web服務器當成了yum源,以後普通的PC就會到Web上去下載安裝時須要的包。


實驗過程:

   1、服務器環境搭建

      一、 配置DHCP服務器,子網爲:192.168.100.0,地址池爲:192.168.100.10-           192.168.100.30,咱們還要將TFTP服務器和Web服務器的地址進行綁定。

         I、在DHCP服務上運行setup命令,配置DHCP地址。      

 wKioL1PYvBeSqqVDAAGFFQcLIUg977.jpg       

        II、而後把系統的安裝盤掛載到dhcp這臺主機上,安裝DHCP服務。

#mkdir/media/cdrom             #建立文件夾,以供掛載
#mount/dev/cdrom /media/cdrom  #將光盤進行掛載
#cd /media/cdrom/Packages      
#ls | grep dhcp                #查看DHCP服務的包有哪些
#rpm –ivh dhcp-4.1.1-38.P1.e16.centos.x86_64.rpm     #這裏咱們只須要安裝這個包


        III、接下來,修改DHCP的配置文件,並啓動服務

        注意:DHCP服務的配置文件在/etc/dhcp/下,爲dhcpd.conf,默認狀況下,該配置文件爲空,可是,

        安裝服務時,給咱們提供了一個模板://usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample

#cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
#對原來的文件進行覆蓋

        編輯/etc/dhcp/dhcpd.conf,配置以下,修改時,不要忘記分號";"

optiondomain-name "mageedu.com";
optiondomain-name-servers 192.168.100.10, 192.168.0.254;
 
default-lease-time86400;
max-lease-time 100000;
 
   subnet192.168.100.0 netmask 255.255.255.0 {          #指定子網、掩碼
       range 192.168.100.10 192.168.100.30;               #指定地址池信息
       option routers 192.168.100.10;                     #網關地址
 
        #將Web服務器和TFTP服務器進行地址綁定
       host Tftp {
         hardware ethernet 00:0C:29:9F:6A:25;     #在TFTP服務器下經過ifconfig查看
         fixed-address 192.168.100.11;
        }
       host Web {
          hardware ethernet 00:0C:29:CD:B8:B9;     #在TFTP服務器下經過ifconfig查看   
          fixed-address 192.168.100.12;
        }
    }

        保存退出,以後再檢查DHCP的配置文件是否錯誤

#service dhcpd configtest
Syntax: OK #語法正確,能夠啓動服務了
#service dhcpd start
        
#把dhcp服務加入開機自動啓動       
#chkconfig dhcpd on
#chkconfig --list | grep dhcp
dhcpd          	0:off	1:off	2:on	3:on	4:on	5:on	6:off


        IV:開啓Web服務器和Tftp服務器,查看其IP地址

           TFTP服務器自動獲取到的IP地址       

        wKiom1PYwKKAy2rNAAE6B9_xMxA163.jpg

            Web自動獲取到的IP地址

         wKiom1PYwSXgc1mQAAEdYxACOxY357.jpg


   二、Web服務器上掛載光盤,安裝httpd服務,創建yum

#mkdir /media/cdrom                                 #建立目錄,做爲掛載點
#mount /dev/cdrom  /media/cdrom                     #進行掛載
#cd  /media/cdrom/Packages                          #切換到軟件包的目錄
#rpm -ivh httpd-2.2.15-29.el6.centos.x86_64.rpm     #安裝web程序,httpd
#mkdir  /var/www/html/centos6                       #在web目錄下建立目錄

    綁定/media/cdrom/var/www/html/centos6,這樣,咱們的Web上就有yum源了,其實就是安裝光盤

#mount --bind /media/cdrom  /var/www/html/centos6

        接下來啓動httpd服務,並把它設爲開機自動啓動:

#service httpd  start
#ss -tnl                  #查看80端口是否在監聽
#chkconfig  httpd  on

        

       重要的還要一步,掛載是不會自動執行的,咱們能夠寫入/etc/rc.d/rc.local文件中

mount /dev/cdrom  /media/cdrom
mount --bind  /media/cdrom  /var/www/html/centos6

        這樣,只要系統啓動完成後,這兩步就會執行,是系統啓動的最後兩步


   三、TFTP服務器上修改yum的配置文件,原來的備份,而後安裝tftp-server服務

#cd /etc/yum.repos.d/
#mkdir  backup
#mv * backup               #備份原有的yum配置文件
    
#vim pxe.repo
 [base]
 name=the pexautoinstall yum
 baseurl=http://192.168.100.12/centos6/        #指定Web爲其yum源 
 enabled=1
 gpgcheck=0

     安裝TFTP服務

#yum  install  tftp-server  #這是服務端程序

         擴展:這裏的tftp服務是由xinetd超級進程管理的

 如何啓動TFTP服務呢,編輯以下:

#vim /etc/xinetd.d/tftp
disable                 = no   #默認爲yes,咱們修改成no

    保存上面文件,而且啓動xinetd服務

#service xinetd start
#chkconfig xinetd on
#ss  -unl               #查看服務是否啓動,tftp監聽的是UDP的69號端口


   2、上面的三步主要是搭建了這三個服務器,下面,咱們就開始進入正題,搭建PXE環境。

    如下步驟,未特殊說明,都在TFTP服務器上進行

    一、將系統的安裝光盤掛載到TFTP服務器上

#mkdir /media/cdrom
#mount /dev/cdrom  /media/cdrom            #掛載

    二、提供PXE工做環境

       普通PC要先到TFTP服務器上下載pexlinux.0的文件,拿回來,放到內存中展開以後就須要kernelramdisk文件,再須要安裝文件。

      I、pexlinux.0這個文件要syslinux程序生成

#rpm –qa |grep syslinux      
#yuminstall syslinux
#rpm–ql syslinux
        #pexlinux.0文件在/usr/share/syslinux/下

       網卡可以下載pxelinux.0,TFTP的目錄在/var/lib/tftpboot/,全部拷貝過去

# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

     三、提供引導內核等文件

#cd/var/lib/tftpboot       #將下列文件都拷貝到該目錄
#cp /media/cdrom/p_w_picpaths/pxeboot/vmlinuz .        #內核
#cp/media/cdrom/p_w_picpaths/pxeboot/initrd.img .      #ramdisk
#cp /media/cdrom/isolinux/splash.jpg .            #安裝系統的圖片
#cp /media/cdrom/isolinux/vesamenu.c32 .          #安裝時顯示的菜單
#cp /media/cdrom/isolinux/boot.msg .             #

  

    4、最後咱們要提供kf文件(在Web服務下進行)

      ks文件是由kickstart生成的文件,在linux上能夠用工具system-config-kickstart生成

 xwindow下啓動system-config-kickstart工具

        咱們能夠導入當前系統安裝時所生成的文件,在/root目錄下,名爲anaconda.cfg

       而後更改部份內容,下面這項,關於url的必定要改一下,原來的不必定適應你的環境wKioL1PYy-Ozv_rdAAEug76XP50597.jpg

保存稱爲.cfg結尾的文件,例如:ks.cfg,保存至/var/www/html/目錄下,即web服務根下


注意:若是在安裝過程當中,若是你們出現了問題,通常是ks.cfg文件配置有問題,多是分區的被註釋掉了,把前面的"#"刪除掉,因爲每一個人的狀況可能不同,全部遇到問題就在網上多查查吧

    

    五、更改boot時的選項,TFTP服務器上操做

# mkdir /var/lib/tftpboot/pxelinux.cfg/
# cp/media/cdrom/isolinux/isolinux.cfg ./pxelinux.cfg/default
    label linux
      menu label ^Install orupgrade an existing system
      menu default
     kernel vmlinuz
      append textinitrd=initrd.img text ks=http://192.168.100.12/ks.cfg    #添加內容

    六、最後一點,在DHCP的配置文件下指定下一個服務器,和獲取的文件

    subnet 192.168.100.0 netmask 255.255.255.0 {
      range 192.168.100.10 192.168.100.30;
      option routers 192.168.100.10;
        
      #指定TFTP服務器的地址,指定下載的文件爲pexlinux.0
      next-server 192.168.100.11;
      filename "pxelinux.0";

    再次加載DHCP的配置文件:

#service  dhcpd  force-reload


3、測試階段:

    開啓普通PC,它會自動以PXE的方式運行,下面,我將以圖片的形式展現

   

 wKiom1PY2SfRSt0IAACxjGMXu60908.jpg

    


wKioL1PY2l6xlTfPAACCoZlPM4U767.jpg


  安裝各類安裝包

wKioL1PY2oKT2DLOAACvpBC6kmw693.jpg


安裝結束後,系統會自動重啓,下面就是平時Linux的開機環境了,是否是很熟悉。

wKioL1PY2rnBkDsaAABHH-Dn0cU994.jpg


wKiom1PY2bDhKWMqAABAuscpyoo571.jpg



   總結:這個PXE的實驗要求思路要清除,因此,你們在作實驗以前,必定要理清思路,而後再開始,遇到問題了,必定要多多本身解決,解決問題才能成長。

相關文章
相關標籤/搜索