原理和概念: linux
1、 什麼是PXE 嚴格來講,PXE 並非一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必需要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機能夠經過網絡啓動。shell
協議分爲 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件經過網絡下載到本地運行。vim
運行 PXE 協議須要設置 DHCP 服務器 和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,因爲是給 PXE client 分配 IP 地址,因此在配置 DHCP 服務器時須要增長相應的 PXE 設置。centos
此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 經過 TFTP 協議到 TFTP Server 上下載所需的文件。服務器
2、 什麼是KickStart 網絡
KickStart是一種無人職守安裝方式。KickStart的工做原理是經過記錄典型的安裝過程當中所需人工干預填寫的各類參數,並生成一個名爲 ks.cfg的文件;在其後的安裝過程當中(不僅侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的狀況時,安裝程序會首先去查找 KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才須要安裝者手工干預。app
這樣,若是KickStart文件涵蓋了安裝過程當中出現的全部須要填寫的參數時,安裝者徹底能夠只告訴安裝程序從何處取ks.cfg文件,而後去忙本身的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。dom
設置BIOS引導順序爲: 硬盤,網絡ssh
執行 PXE + KickStart安裝須要準備內容:url
• DHCP 服務器用來給客戶機分配IP;
• TFTP 服務器用來存放PXE的相關文件,好比:系統引導文件;
• FTP 服務器用來存放系統安裝文件;
• KickStart所生成的ks.cfg配置文件;
• 帶有一個 PXE 支持網卡的將安裝的主機;
一,配置基礎環境
1.安裝ftp服務以及開啓服務,設置開機自動啓動
[root@chuck ~]# yum install vsftpd -y #必須配置/etc/yum.repos.d 可以鏈接網絡 [root@chuck /]# systemctl start vsftpd #啓動ftp服務 [root@chuck /]# systemctl enable vsftpd #設置開機自啓 Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.
2.安裝TFTP,修改tftp配置文件及開啓服務
[root@chuck /]# yum install -y tftp tftp-server xinetd #安裝服務以及守護進程服務 配置tftp服務器: vim /etc/xinetd.d/tftp 修改配置文件裏面的13,14行。改爲如下內容: server_args = -s /tftpboot # 表示服務器默認的目錄是 /tftpboot disable = no
修改完畢須要重啓一下xinetd服務,查看服務端口是否打開。
[root@chuck /]# systemctl start xinetd [root@chuck /]# lsof -i :69 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME xinetd 2324 root 5u IPv4 35075 0t0 UDP *:tftp
3.安裝dhcp,修改配置文件及開啓服務
[root@chuck /]# yum install -y dhcp
配置DHCP服務器:
[root@chuck /]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf #生成配置文件 cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y
給DHCP服務器添加一張VMNET4網卡,ip設置爲192.168.1.10(只要是1網段都行)
[root@chuck ~]# ifconfig ens38 192.168.1.10/24 [root@chuck /]# >/etc/dhcp/dhcpd.conf #清空此配置文件,從新進行編寫。 [root@chuck /]# vim /etc/dhcp/dhcpd.conf subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.100 192.168.1.200; option domain-name-servers 192.168.1.1; option domain-name "internal.example.org"; option routers 192.168.1.1; option broadcast-address 192.168.1.255; default-lease-time 600; max-lease-time 7200; next-server 192.168.1.10; filename "pxelinux.0"; } 配置完,先不啓動DHCP ,準備工做已經完成。
2、配置使用PXE啓動所需的相關文件
安裝軟件:
安裝包
[root@chuck /]# yum install -y system-config-kickstart && syslinux 準備tftp須要共享出去的文件 [root@chuck~]# mount /dev/cdrom /media/ [root@chuck~]# mkdir /tftpboot [root@chuck~]# mkdir /tftpboot/pxelinux.cfg [root@chuck~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #注,只有安裝了system-config-kickstart軟件包,纔會有/usr/share/syslinux/目錄及目錄中的文件。 [root@chuck~]# cp /media/images/pxeboot/initrd.img /tftpboot/ [root@chuck~]# cp /media/images/pxeboot/vmlinuz /tftpboot/ [root@chuck~]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default [root@chuck~]# chmod 644 /tftpboot/pxelinux.cfg/default
3、修改default,指定安裝操做系統的方式和ks.cfg文件路徑
vim /tftpboot/pxelinux.cfg/default 而後修改/tftpboot/pxelinux.cfg/default的配置文件。 改:default 爲 :default linux #修改第1行,後面的linux意思是尋找下面61行的label linux 。以下: default linux #修改成linux 而後修改下64行(即在後面添加inst.repo=ftp://192.168.10.10/pub inst.ks=ftp://192.168.10.10/ks.cfg) append initrd=initrd.img inst.repo=ftp://192.168.1.10/pub inst.ks=ftp://192.168.1.10/sk.cfg #修改安裝程序經過FTP服務器訪問的配置文件
以上有關default配置文件的修改就是經過ftp服務器方式來訪問kickstart文件。
其中第1行:default linux表示指定默認入口名稱;
第2行:prompt 1中prompt用來設置是否等待用戶選擇,1表示等待用戶控制;
第1八、2三、2七、31行label linux表示定義的引導入口,表示系統的不一樣安裝方式,如第18行定義的入口表示圖形安裝。
配置文件修改完了,要開始自動安裝,安裝程序必須能訪問kickstart文件。
有多種方法可訪問kickstart文件,其中最經常使用的一種方法是經過網絡服務器進行,
例如:ftp服務器、WEB服務器或NFS服務器,這種方法很是易於部署,而且也使管理更改變得十分簡單。也能夠經過USB磁盤、CD-ROM或本地硬盤。若是USB或CD-ROM中的kickstart文件很是便於訪問,只需將kickstart文件放置在用來開始安裝的引導介質中。而使用DHCP服務器和TFTP及PXE配置起來更爲複雜。
使安裝程序指向kickstart文件的書寫格式以下:
ks=ftp://server/dir/file 如:ks=ftp://ftp服務器IP/ks.cfg
ks=http://server/dir/file 如:ks=http://http服務器IP/ks.cfg
ks=nfs:server:/dir/file 如:ks=nfs:nfs服務器IP:/var/ftp/pub/ks.cfg
ks=hd:device:/dir/file 如:ks=hd:sdb1:/kickstar-files/ks.cfg
ks=cdrom:/dir/file 如:ks=cdrom:/kickstart-files/ks.cfg
以上有關default配置文件的修改就是經過ftp服務器方式來訪問kickstart文件
接下來咱們製做kickstart的無人值守安裝文件。
在建立配置文件以前,咱們須要更改下yum源爲本地源,不然下面在選擇軟件包安裝這一步不能選擇,提示被禁止
[root@chuck ~]# cd /etc/yum.repos.d/ [root@chuck yum.repos.d]# ls CentOS-Base.repo CentOS-CR.repo CentOS-fasttrack.repo CentOS-Sources.repo epel.repo CentOS-Base.repo.old CentOS-Debuginfo.repo CentOS-Media.repo CentOS-Vault.repo epel-testing.repo [root@chuck yum.repos.d]# mkdir bak [root@chuck yum.repos.d]# mv *.repo bak/ [root@chuck yum.repos.d]# ls bak CentOS-Base.repo.old [root@chuck yum.repos.d]# vim my.repo [development] name=my-centos7-dvd baseurl=file:///var/ftp/pub enabled=1 gpgcheck=0 [root@chuck yum.repos.d]# yum makecache
安裝system-config-kickstart軟件包:
[root@chuck ~]# system-config-kickstart #執行system-config-kickstart彈出來界面。若是服務端安裝了圖形化界面能夠直接使用此命令生成ks.cfg,若是是最小化安裝,須要使用xmanager軟件中的xstart進行鏈接設置本身後期無人執守安裝須要配置的參數: 注意:用xshell遠程鏈接,執行上面的命令可能沒法彈出選擇框,須要這樣解決: 1. 安裝gdm yum install -y gdm 2.在Xstart 裏執行:須要輸入服務端IP:192.168.0.63 默認ssh、user=root command:system-config-kickstart 3.會彈出窗口配置kickstart 設置下默認安裝的語言,時區,根密碼,而後勾選下面的安裝後從新引導。 而後選擇安裝方法,使用FTP安裝,服務器地址填寫爲:192.168.1.10 目錄:/pub 點擊引導裝載程序選項 :安裝新的引導裝載程序 安裝選項:MBR 分區信息:清除主引導記錄、刪除全部現存分區、初始化磁盤、劃分/boot swap / 主要分區 網絡配置默認便可 驗證默認 防火牆所有關閉 顯示配置:可自行選擇 自定義軟件包:development——勾選裏面三個子選項。
安裝腳本:在"預安裝腳本","安裝後腳本"對話框中,能夠分別添加在安裝前、安裝後自動動行的可執行語句。此項設置可使服務器自動化配置變得更加容易。
例如:配置客戶機在完成安裝後自動設置YUM倉庫。
rm -rf /etc/yum.repos.d/* echo '[rhel-source] name=Red Hat Enterprise Linux $releasever - $basearch - Source baseurl=file:///mnt/ enabled=1 gpgcheck=0 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/rhel6.repo
到此全部關於安裝的配置已經配置完畢,保存:點擊左上角的文件選擇保存,選擇下保存的路徑
[root@chuck~]#cp ks.cfg /var/ftp #複製ks.cfg文件到/var/ftp目錄下 注:ks.cfg就是無人值守安裝時要用的Kickstart文件。 要對應:/tftpboot/pxelinux.cfg/default文件中設置過ks=ftp://192.168.1.10/ks.cfg
配置基於ftp的yum源,用於客戶端安裝時,讀取軟件包用:
[root@chuck~]#mount /dev/cdrom /var/ftp/pub #掛載RHEL7安裝光盤到/var/ftp/pub目錄下
重啓下FTP服務
[root@chuck ~]# systemctl restart vsftpd 建議關閉防火牆和selinux, 若是沒有關閉的話,tftp服務會有問題。 [root@xuegod63 ~]# getenforce Disabled 設置防火牆: #iptables -F 配置兩臺機器的網絡模式爲:VMnet4 給server 設置一個和DHCP 定義相同網段的IP 接着啓動DHCP,設置爲開機啓動 [root@chuck /]# systemctl start dhcpd [root@chuck /]# chkconfig dhcpd on 注意:正在將請求轉發到「systemctl enable dhcpd.service」。 Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
修改新建虛擬機 BIOS啓動順序爲網絡優先,加電後開始啓動,也可開機的時候直接F12。後續等待自動安裝便可!!