一、簡介
在學習的過程中大部分人都是使用手動安裝操作系統,而在實際生產環境中,手動安裝系統的方式顯然不現實,因爲服務器衆多,所以可使用pxe(preboot excute environment)技術來批量安裝操作系統,從而減少“人工智能”。
二、實現原理
實驗拓撲圖:
原理:pxe裝機重要依賴tftp服務器、dhcp服務器、repo倉庫及其kickstart配置文件即可完成,安裝系統時,客服端主機向dhcp服務器發起dhcp請求,獲取一個IP地址後將去tftp服務器讀取vmlinuz,initrd.img加載虛擬根,讓tftp提供啓動文件,此時,如需自動化進行系統安裝還需kickstart文件幫忙完成自動化部署安裝。
三、實現步驟
1、配置DHCP服務器,使其能夠爲被安裝系統主機提供IP地址
vi /etc/dhcp/dhcpd.conf option doamin-name "alren.com"; option routes 192.168.184.130; #可選路由 option domain-naem-servers 10.1.0.1; default-lease-time 60000; #最小租期 max-lease-time 72000; #最大租期 log-facility local7; subnet 192.168.184.0 netmask 255.255.255.0 { range 192.168.184.149 192.168.184.159 #IP地址分配範圍 filename "pxelinux.0"; #pxelinux.0引導文件文件 next-server 192.168.184.130; #引導文件所在的服務器IP地址 }
2、啓動dhcp服務在客服端使用dhclient -d 檢測是否能正確的dhcp獲取到IP地址,及其監聽的端口是否正常
systemctl start dhcpd systemctl enable dhcpd dhclient -d #查看是否能自動獲取到IP地址 ss -tnl |grep 67|68 #是否監聽了67、68號udp端口
3、搭建yum源,提供鏡像及其kickstart文件
mkdir -pv /var/www/html/centos/7/x86_64 mount /dev/cdrom /var/www/html/centos/7/x86_64 mkdir /var/ww/html/centos/kickstarts/ #此配置文件在圖形化界面下使用system-config-kickstart生成
4、安裝配置tftp-server服務器 及其引導配置文件,可查看其是否啓動69號udp端口
yum -y install tftp tftp-server syslinux cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp /var/www/html/centos/7/x86_64/images/pxeboot/{vnlinz,initrd.img} /var/lib/tftpboot/ cp /usr/share/syslinux/{chian.c32,menu.c32,medisk,mboot.c32} /var/lib/tftpboot/ mkdir /var/lib/tftpboot/pxelinux.cfg vi /var/lib/tftpboot/pxelinux.cfg/default default menu.c32 prompt 5 #5秒後默認啓動第一個引導程序 timeout 30 #30秒後超時 MENU TITLE CentOS 7 PXE Menu #菜單標題 LABEL linux MENU LABEL Install CentOS 7 x86_64 #菜單標籤 KERNEL vmlinuz #內核文件 APPEND initrd=initrd.img inst.repo=http://192.168.184.130/centos/7/x86_64 #加載鏡像路徑 LABEL linux MENU LABEL Install CentOS 7 x86_64 auto #菜單標籤 KERNEL vmlinuz APPEND initrd=initrd.img inst.repo=http://192.168.184.130/centos/7/x86_64 ks=http://192.168.184.130/kickstarts/centos7.cfg
5、啓動服務,新建虛擬機,測試。
systemctl start httpd systemctl start tftpd systemctl restart dhcpd