一、關於PXE
Preboot Execution Environment翻譯過來就是預啓動執行環境;簡稱PXE;傳統安裝操做系統的方法是CDROM或U盤引導,而PXE技術解決的是從網絡引導安裝系統,固然PXE技術不是什麼新技術了,是Intel和Microsoft在1998年定義的更大PC98規範的一部分。有關PXE規範的詳細文檔html
二、pxe引導相關角色說明
PXE做用: 引導裝機
Kickstart做用: 將安裝系統的過程當中經過ks.cfg文件中的配置信息,實現自動安裝配置達到無人值守自動安裝;
TFTP: 支持PXE 引導的網卡中從tftp服務器端下載pxelinux.0文件、vmlinuz、initrd.img等內核引導文件;
DHCP: PXE引導過程當中獲首先獲取IP地址,並提供pxelinux.0文件位置;
HTTP: 用於下載ks.cfg以及系統鏡像文件
通用的無人值守作法以下:
經過一臺沒有系統的裸機網卡支持pxe協議,開機後從dhcp服務器獲取ip和pxelinux.0文件並從tftp服務器上加載相關內核引導文件;同時下載 kickstart的cfg配置文件,指定系統鏡像文件位置加載安裝,從而實現無人值守安裝!
如圖(圖片來自於網絡):
三、環境準備說明
本次測試環境說明:
PXE服務器:CentOS7.4 基於virtualboxt的虛擬機
ip:172.16.3.152 (可上網) 內部測試ip(僅主機模式) 192.168.56.254
配置服務及安裝軟件包以下:
DHCP
tftp
http
syslinux 包,提供引導文件
以上所須要的軟件包均經過yum安裝linux
[root@pxe ~]# yum install dhcp tftp tftp-server syslinux httpd -y
防火牆,selinux關閉;生產線請開放UDP 67 68 69 tcp/80端口;redis
測試機可直接新建安裝CentOS7系統 注意的就是網絡選擇僅主機便可;後面說明
接下來就配置並測試!vim
一、掛載光盤製做安裝源windows
##掛載CentOS7光盤 [root@pxe ~]# mkdir /media/cdrom [root@pxe ~]# mount /dev/cdrom /media/cdrom [root@pxe ~]# mkdir -pv /var/www/html/centos/7/x86_64 #綁定掛載到http默認目錄下 [root@pxe ~]#mount --bind /media/cdrom /var/www/html/centos/7/x86_64
二、kickstart ks.cfg配置文件準備
以家目錄下的anaconda-ks.cfg爲模板製做ks文件centos
[root@pxe ~]# cd /var/www/html;mkdir ks [root@pxe ~]# cat ks.cfg #version=DEVEL # System authorization information auth --enableshadow --passalgo=sha512 # Use CDROM installation media #cdrom # Install OS instead of upgrade install # Use network installation url --url=http://192.168.56.254/centos/7/x86_64 # Use graphical install graphical # Run the Setup Agent on first boot firstboot --enable #ignoredisk --only-use=sda # Keyboard layouts keyboard --vckeymap=cn --xlayouts='cn' # System language lang zh_CN.UTF-8 # Network information network --bootproto=dhcp --device=enp0s3 --onboot=off --ipv6=auto network --hostname=localhost.pkey.cn # Root password rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1 # System timezone timezone Asia/Shanghai --isUtc # System bootloader configuration bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda autopart --type=lvm # Partition clearing information clearpart --none --initlabel %packages @^minimal @core kexec-tools vim wget httpd %end %addon com_redhat_kdump --enable --reserve-mb='auto' %end selinux --disabled #禁用selinux reboot #安裝完重啓系統
以上是個人蔘考配置,您也能夠做爲模板只須要簡單修改如下幾行:
安裝的網絡鏡像地址:
url --url=http://192.168.56.254/centos/7/x86_64
安裝後的系統密碼:
rootpw --iscrypted $1$lSeSXuy.$7HmGY9vVxEGEGB98qTUuv1
密碼能夠經過openssl passwd -1 "PASSWORD"
生成格式是sha512的密碼替換上去便可;
另外安裝後能夠在%packages 與其%end之間配置預安裝的包等,此處讓程序在安裝好系統後預安裝wegt vim軟件包;更多好玩的配置請
請參看redhat官方文檔服務器
三、配置啓動網絡
[root@pxe ~]# systemctl start httpd [root@pxe ~]# systemct enable httpd
一、配置dhcp服務
dhcp配置文件在/etc/dhcp/目錄下,默認的配置文件沒有,但咱們能夠在幫助文件中找到模板示例文件加以修改app
[root@pxe ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf [root@pxe ~]# egrep -v '(^$|^#)' /etc/dhcp/dhcpd.conf option domain-name "pkey.cn"; option domain-name-servers 192.168.56.1; default-lease-time 600; max-lease-time 7200; log-facility local7; subnet 192.168.56.0 netmask 255.255.255.0 { range dynamic-bootp 192.168.56.110 192.168.56.120; option routers 192.168.56.1; next-server 192.168.56.254; #tftp server也是本機,能夠分開 filename "pxelinux.0"; #引導文件 }
二、啓動與查看運維
[root@pxe ~]# systemctl start dhcpd [root@pxe ~]# systemctl enable dhcpd 查看服務狀態,已經監聽在UDP 67上 [root@pxe ~]# ss -tunl Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 *:55770 *:* udp UNCONN 0 0 *:47150 *:* udp UNCONN 0 0 *:67 *:*
安裝好tftp-server軟件包後 默認的數據根目錄是/var/lib/tftpboot/ 無須修改,只須要複製一些軟件引導文件進來便可
一、相關文件準備
##引導文件 [root@pxe ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ #內核文件 [root@pxe ~]# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot #引導菜單 [root@pxe ~]# cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot #製件引導默認文件 [root@pxe ~]# mkdir -pv /var/lib/tftpboot/pxelinux.cfg [root@pxe pxelinux.cfg]# cat default default menu.c32 prompt 5 timeout 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.56.254/centos/7/x86_64 ks=http://192.168.56.254/ks/ks.cfg
二、啓動配置開機自啓
[root@pxe tmp]# systemctl enable tftp [root@pxe tmp]# systemctl start tftp
三、tftp測試
/var/lib/tftpboot/目錄文件結構
結構查看 [root@pxe tftpboot]# tree -L 2 . ├── chain.c32 ├── initrd.img ├── mboot.c32 ├── memdisk ├── menu.c32 ├── pxelinux.0 ├── pxelinux.cfg │ └── default └── vmlinuz 測試tftp [root@pxe tmp]# pwd;ls /tmp [root@pxe tmp]# tftp 192.168.56.254 tftp> get vmlinuz tftp> quit [root@pxe tmp]# pwd;ls /tmp vmlinuz
一、修改virtualbox網絡
管理-->全局設定-->網絡-->"僅主機(Host-Only)網絡" -->雙擊vboxnet0 -->把virtualbox自帶的僅主機網絡的DHCP服務關掉,如圖:
二、新建虛擬機
和用cdrom安裝虛擬的惟一區別是不用掛載鏡像,只須要修改新的虛擬機的網絡類型爲"僅主機(Host-Only)網絡"如圖:
開機-->按F12選擇LAN啓動,如圖:
再接下來就是很熟悉的圖形化自動安裝的過程了!整個安裝系統的過程 基本上也就五六分鐘的樣子,具體視安裝包多少與系統網絡性能而定;想了解具體過程,自行動手試試吧!
以上就是基於PXE協議和syslinux引導文件,kickstart配置文件,DHCP,tftp-server,httpd服務製做本地安裝源協做完成的無人值守安裝系統,也能夠在這套環境 中加入CentOS6的安裝,只須要添加修改配置文件便可,這種操做通常就要用到cobbler服務去更好的解決啦!本次在windows上用vmware也是相似操做!