1. 程式人生 > >部署PXE遠程安裝服務器並通過Kickstart無人值守裝機

部署PXE遠程安裝服務器並通過Kickstart無人值守裝機

PXE服務 Kickstart 自動裝機 無人值守

在大規模的Linux應用環境中,如Web群集、分布式計算等,服務器往往並不配置光驅設備,在這種情況我們就要使用PXE批量裝機,而傳統的USB光驅、移動硬盤等安裝方法顯然已經力所不逮。


PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並加載安裝文件或者整個操作系統。而要搭建PXE網絡體系,必須滿足幾個前提條件:1.客戶機的網卡支持PXE協議(集成BOOTROM芯片),且主板支持網絡引導;2.網絡中有一臺DHCP服務器以便為客戶機自動分配IP地址、指定引導文件位置;3.服務器通過TFTP(Trivial Transfer Protocol,簡單文件傳輸協議)提供引導鏡像文件的下載。


下面讓我們一起完成CentOS7.4上PXE網絡體系的架構,並嘗試配置Kickstart無人值守裝機


  • PXE網絡體系架構


一、 安裝所需的服務器(tftp-server/dhcp/ftp)


安裝tftp-server服務,存放網絡啟動所需文件:

[root@CentOS7-1 yum.repos.d]# yum install tftp-server -y
[root@CentOS7-1 yum.repos.d]# vim /etc/xinetd.d/tftp 
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot -c     ##指定存儲路徑 -c:允許上傳
        disable                 = no                          ##修改為no開啟服務
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}


安裝dhcp服務,來自動分配IP地址:

[root@CentOS7-1 yum.repos.d]# yum install dhcp -y
[root@CentOS7-1 yum.repos.d]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf    ##復制配置模板到主配置文件
cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y
[root@CentOS7-1 dhcp]# vim /etc/dhcp/dhcpd.conf 
##省略部分信息##
option domain-name "PXE.com";    ##指定一個域名
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
# Use this to enble / disable dynamic dns updates globally.
# Use this to enble / disable dynamic dns updates globally.
ddns-update-style none;        ##支持DNS動態更新,一般選擇關閉
# No service will be given on this subnet, but declaring it helps the 
# DHCP server to understand the network topology.

next-server 192.168.100.201;       ##指定TFTP服務器地址
filename "/pxelinux.0";             ##引導文件TFTP上的位置

subnet 192.168.100.0 netmask 255.255.255.0 {   ##配置子網及子網掩碼
  range 192.168.100.100 192.168.100.200;       ##分配出去的地址網段
  option routers 192.168.100.201;           ##選擇路由
}


安裝vsftp服務:

[root@CentOS7-1 dhcp]# yum install vsftpd -y
[root@CentOS7-1 dhcp]# mount /dev/cdrom /var/ftp/pub   ##掛載光盤鏡像到ftp服務器的根目錄
mount: /dev/sr0 寫保護,將以只讀方式掛載



二、 復制網絡啟動所需要的文件到TFTP服務器的根目錄中

[root@CentOS7-1 dhcp]# yum install syslinux -y      ##安裝引導加載程序
[root@CentOS7-1 dhcp]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root@CentOS7-1 dhcp]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@CentOS7-1 dhcp]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default  ##安裝菜單
[root@CentOS7-1 pxelinux.cfg]# cp /mnt/images/pxeboot/initrd.img /var/lib/tftpboot/  ##linux引導加載模塊
[root@CentOS7-1 pxelinux.cfg]# cp /mnt/images/pxeboot/vmlinuz /var/lib/tftpboot/    ##壓縮內核
[root@CentOS7-1 pxelinux.cfg]# cp /mnt/isolinux/vesamenu.c32 /var/lib/tftpboot/    ##圖形化安裝菜單


三、 啟動所有服務器並關閉防火墻

[root@CentOS7-1 tftpboot]# systemctl restart dhcpd.service
[root@CentOS7-1 tftpboot]# systemctl restart vsftpd.service
[root@CentOS7-1 tftpboot]# systemctl restart tftp.service
[root@CentOS7-1 tftpboot]# systemctl stop firewalld.service
[root@CentOS7-1 tftpboot]# setenforce 0


四、 配置Kickstart完成無人值守安裝


安裝kickstart軟件包:

[root@CentOS7-1 tftpboot]# yum -y install system-config-kickstart

為了方便我們可以在圖形化界面配置完成配置再將ks.cfg放到ftp站點中:

技術分享圖片

技術分享圖片

技術分享圖片

此時我們可以創建一個ftp目錄下的站點,並把配置文件保存過去:

技術分享圖片


重新編輯配置:

[root@CentOS7-1 ~]# vim /var/lib/tftpboot/pxelinux.cfg/default 

##省略部分信息##

label linux
  menu label ^Install CentOS 7
  menu default  ##添加這行
  kernel vmlinuz
  append ks=ftp://192.168.100.201/centos7/ks.cfg ##添加kickstart配置文件 initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet


此時我們可以測試一下,創建一臺新的虛擬機:

技術分享圖片


可以看到,我們的kickstart正在完成自動裝機,且不需要自己操作!


部署PXE遠程安裝服務器並通過Kickstart無人值守裝機