PXE遠程自動安裝操作系統過程

  • 什麼是PXE


PXE中文叫“預啓動執行環境”。計算機在啓動時需要加載操作系統,而加載的方式常見有:光驅啓動(CDROM)、硬盤啓動、網絡啓動。光驅啓動一般用在光驅插入有系統盤的時候使用;當我們裝完操作系統以後一般選擇硬盤啓動;網絡啓動就是通過網卡中的PXE芯片到遠程服務器端下載啓動文件。三種啓動方式的先後順序可在BIOS中進行設置。


  • 爲什麼通過PXE來安裝操作系統


小弟單位雖然不大但也有上千臺服務器,分佈在三個機房,三機房離辦公室最近的也有10KM以上。每次新上服務器都需要重裝系統,可以想象如果按傳統方式拿着系統盤到機房現場裝系統,那畫面真是太美……這種情況,利用PXE網絡啓動,坐辦公室暖氣吹吹就可以把遠端機房的服務器系統裝好;安裝整個過程全自動,節省下的時間完全可以去做更有技術含量的事情。


  • 拓撲示意圖


wKiom1ZRzoKzQkzlAABCgSpH1x8979.png

  • VMWARE虛擬機模擬環境


wKiom1ZR0_LAYfpaAAAc2ycXgAU114.png

  • 材料準備


一臺linux服務器,作爲網絡服務器(一般爲虛擬機,方便使用)。系統的IOS文件(網上下載需要安裝的linux發行版IOS)。


  • 配置詳細過程


一、TFTP服務器設置      

 yum install -y tftp-server

[root@pxe ~]# vim /etc/xinetd.d/tftp 
  1 # default: off
  2 # description: The tftp server serves files using the trivial file transfer \
  3 #       protocol.  The tftp protocol is often used to boot diskless \
  4 #       workstations, download configuration files to network-aware printers, \
  5 #       and to start the installation process for some operating systems.
  6 service tftp
  7 {
  8         socket_type             = dgram
  9         protocol                = udp
 10         wait                    = yes
 11         user                    = root
 12         server                  = /usr/sbin/in.tftpd
 13         server_args             = -s    #修改主目錄
 14         disable                 =              #啓動服務器
 15         per_source              = 11
 16         cps                     = 100 2
 17         flags                   = IPv4
 18 }
 
[root@pxe tftpfiles]# chkconfig xinetd on      #設置開機啓動
[root@pxe tftpfiles]# service xinetd restart    #重啓TFTP服務
Stopping xinetd:                                           [  OK  ]
Starting xinetd:                                           [  OK  ]

    

二、系統安裝文件準備

    

1、安裝syslinux,完成後,拷貝pxelinux.0到tftp主目錄(自創建):

yum install -y syslinux.x86_64

cp /usr/share/syslinux/pxelinux.0 /tftpfiles/

   

 2、掛在IOS系統鏡像,並拷貝initrd.img、vmlinuz、boot.msg文件到主目錄

mount -t iso9660 /dev/cdrom /mnt/centos/    #掛載光驅

cp /mnt/centos/images/pxeboot/{vmlinuz,initrd.img} /tftpfiles/   #拷貝initrd.img、vmlinuz文件

cp /mnt/centos/isolinux/boot.msg  /tftpfiles/    #拷貝boot.msg文件

    

3、創建pxelinux.cfg文件夾,將IOS中isolinux.cfg文件拷到該文件夾更名爲default

mkdir /tftpfiles/pxelinux.cfg

cp /mnt/centos/isolinux/isolinux.cfg /tftpfiles/pxelinux.cfg/default

vim default    #修改default
  1 default       #默認選擇label爲ks選項,可自行修改
  2 prompt 0
  3 timeout 600
  4 
  5 #display boot.msg
  6 
  7 menu background splash.jpg
  8 menu title Welcome to CentOS 6.5!
  9 menu color border 0 #ffffffff #00000000
 10 menu color sel 7 #ffffffff #ff000000
 11 menu color title 0 #ffffffff #00000000
 12 menu color tabmsg 0 #ffffffff #00000000
 13 menu color unsel 0 #ffffffff #00000000
 14 menu color hotsel 0 #ff000000 #ffffffff
 15 menu color hotkey 7 #ffffffff #ff000000
 16 menu color scrollbar 0 #ffffffff #00000000
 17 
 18 label               #設置你的系統標籤爲ks
 19   kernel vmlinuz        #內核
 20   append initrd=initrd.img ks=nfs:10.10.10.1:/tftpfiles/ks.cfg #指導客戶機通過nfs到服務器獲取ks.cfg,也可以選擇http\ftp方式

   

 4、在/tftpfiles下創建ks.cfg文件,ks.cfg文件也可以通過進入X-windows界面安裝運行system-config-kickstart獲取。ks.cfg用來配置安裝系統時的各種參數,比如用戶名密碼、如何分區、配置網卡等,可按自己需求進行配置。下面是我的ks.cfg供參考:

vim  ks.cfg
  1 auth --useshadow --enablemd5    #密碼加密方式
  2 install              #系統安裝設置
  3 text                  #純文本安裝,不安裝X-window
  4 firewall --disable     
  5 keyboard us
  6 lang en_US
  7 selinux --disable
  8 timezone --isUtc Aisa/Shanghai
  9 nfs --server 10.10.10.1 --dir=/mnt/centos #設置系統安裝文件獲取服務器地址及路徑
 10 rootpw 123456    #--iscrypted 49ba59abbe56e057 設置root的密碼,--iscrypted爲md5後的值
 11 firstboot --disable
 12 logging --level=info
 13 reboot                #一定要加,不然安裝過程還需要手動重啓
 14 
 15 bootloader --append="rhgb quiet" --location=mbr --driveorder=sda
 16 zerombr
 17 network --bootproto=dhcp --device=eth0 --onboot=on  #也可以手動配置靜態IP
 18 clearpart --all --initlabel    #刪除所有分區後再重新分區
 19 part / --fstype="ext4" --size=10240
 20 part swap --fstype="swap" --size=2048
 21 part /boot --fstype="ext4" --size=200
 22 
 23 %packages   #選擇默認要安裝的包
 24 @base
 #ks很強大,還可以設置很多東東。比如安裝前或安裝後需要執行的命令,可深入學習。

  

綜上,安裝系統需要的文件已經準備齊全,default在pxelinux.cfg中,目前主目錄內容如下:

[root@pxe tftpfiles]# ll
total 36676
-r--r--r--. 1 root root       84 Nov 22 21:58 boot.msg
-r--r--r--. 1 root root 33383679 Nov 22 21:58 initrd.img
-rw-r--r--. 1 root root      539 Nov 23 01:50 ks.cfg
-rw-r--r--. 1 root root    26759 Nov 23 07:09 pxelinux.0
drwxr-xr-x. 2 root root     4096 Nov 24 18:25 pxelinux.cfg
-r-xr-xr-x. 1 root root  4128368 Nov 22 21:58 vmlinuz


三、配置DHCP服務器


    DHCP服務器用來給客戶機分配IP,讓客戶機與服務器能通信從服務器獲取安裝信息及文件。

     

yum install -y dhcp.x86_64              #安裝dhcp服務器

[root@pxe tftpfiles]# vim /etc/dhcp/dhcpd.conf    #設置服務器參數
  1 #
  2 
  3 default-lease-time 600;
  4 max-lease-time 7200;
  5 
  6 log-facility local7;
  7 
  8 # DHCP server to understand the network topology.
  9 
 10 subnet 10.10.10.0 netmask 255.255.255.0 {
 11   range 10.10.10.2 10.10.10.254;
 12   option routers 10.10.10.1;               #10.10.10.1爲本機與客戶機互聯網卡地址
 13   option subnet-mask 255.255.255.0;
 14   next-server 10.10.10.1;
 15   filename "pxelinux.0";
 16 }
 
 vim /etc/init.d/dhcpd  #第30、31行修改DHCPD使用權限爲自己,否則DHCPD服務器啓動失敗
 30 user=root
 31 group=root

[root@pxe tftpfiles]# chkconfig dhcpd on
[root@pxe tftpfiles]# service dhcpd restart
Shutting down dhcpd:                                       [  OK  ]
Starting dhcpd:                                            [  OK  ]


四、配置NFS服務器

    除了NFS,還可以選擇HTTP、FTP等方式傳輸文件

yum install -y nfs-utils.x86_64        #安裝nfs服務器

[root@pxe tftpfiles]# vim /etc/exports     #設置開放的路徑及用戶地址段,ro爲只讀
  1 /tftpfiles 10.10.10.0/24(ro)    
  2 /mnt/centos/ 10.10.10.0/24(ro)
  
[root@pxe tftpfiles]# chkconfig nfs on     
[root@pxe tftpfiles]# chkconfig rpcbind on
[root@pxe tftpfiles]# service nfs restart
Shutting down NFS daemon:                                  [  OK  ]
Shutting down NFS mountd:                                  [  OK  ]
Shutting down NFS services:                                [  OK  ]
Shutting down RPC idmapd:                                  [  OK  ]
Starting NFS services:                                     [  OK  ]
Starting NFS mountd:                                       [  OK  ]
Starting NFS daemon:                                       [  OK  ]
Starting RPC idmapd:                                       [  OK  ]
[root@pxe tftpfiles]# service rpcbind restart
Stopping rpcbind:                                          [  OK  ]
Starting rpcbind:                                          [  OK  ]


  • 客戶機開始安裝

    客戶機必須有一張網卡與服務器在同一廣播域,不然服務器將收不到客戶機的DHCP請求。安裝前關閉服務器iptables和selinux,以免tftp連接超時:service iptables stop;setenforce 0。如果是mini版的centos安裝過程中可能會出現未知缺包提示。


1、通過DHCP獲取IP、pxelinux.0文件,然後通過TFTP連接到服務器獲取default文件,接着加載vmlinuz、initrd.img文件

wKiom1ZT_B7h9feDAAA59c4lvXY370.png

2、開始掛在文件系統、檢測硬件

wKiom1ZT_B_BatovAAA8ateRpK8939.png

wKiom1ZT_CCD0DbMAAAtoXRb9z4903.png

3、安裝系統軟件

wKiom1ZT_CCAXiO7AAA1Bu-dkWY823.png

4、安裝完畢,開始關閉進程,重啓系統

wKiom1ZT_CGQUG-GAAAsNi7W13k257.png

5、重啓完成,安裝完畢!

wKiom1ZT_CGQaL1tAAAVU1krKxI729.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章