部署PXE遠程安裝服務器並通過Kickstart無人值守裝機
阿新 • • 發佈:2018-05-29
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無人值守裝機