Kickstart 全自動安裝部署RHEL 7.0
一、簡介
1.1 什麼是PXE
PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網路模式,支援工作站透過網路從遠端服 務器下載映像,並由此支援透過網路啟動作業系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。
嚴格來說,PXE 並不是一種安裝方式,而是一種引導方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支援的網路卡(NIC),即網路卡中必須要有 PXE Client。PXE 協議可以使計算機透過網路啟動。此協議分為 Client端和 Server 端,而PXE Client則在網路卡的 ROM 中。當計算機引導時,BIOS 把 PXE Client 調入記憶體中執行,然後由 PXE Client 將放置在遠端的檔案透過網路下載到本地執行。執行 PXE 協議需要設定 DHCP 伺服器和 TFTP 伺服器。DHCP 伺服器會給 PXE Client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE Client 分配 IP 地址,所以在配置 DHCP 伺服器時需要增加相應的 PXE 設定。此外,在 PXE Client 的 ROM 中,已經存在了 TFTP Client,那麼它就可以透過 TFTP 協議到 TFTP Server 上下載所需的檔案了。
PXE的工作過程:
1. PXE Client 從自己的PXE網路卡啟動,向本網路中的DHCP伺服器索取IP;
2. DHCP 伺服器返回分配給客戶機的IP 以及PXE檔案的放置位置(該檔案一般是放在一臺TFTP伺服器上) ;
3. PXE Client 向本網路中的TFTP伺服器索取pxelinux.0 檔案;
4. PXE Client 取得pxelinux.0 檔案後之執行該檔案;
5. 根據pxelinux.0 的執行結果,透過TFTP伺服器載入核心和檔案系統 ;
6. 進入安裝畫面, 此時可以透過選擇HTTP、FTP、NFS 方式之一進行安裝;
詳細工作流程,請參考下面這幅圖:
1.2 什麼是Kickstart
Kickstart是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄典型的需要人工干預填寫的各種引數,並生成一個名為ks.cfg的文 件。如果在安裝過程中(不只侷限於生成Kickstart安裝檔案的機器)出現要填寫引數的情況,安裝程式首先會去查詢Kickstart生成的檔案,如 果找到合適的引數,就採用所找到的引數;如果沒有找到合適的引數,便需要安裝者手工干預了。所以,如果Kickstart檔案涵蓋了安裝過程中可能出現的 所有需要填寫的引數,那麼安裝者完全可以只告訴安裝程式從何處取ks.cfg檔案,然後就去忙自己的事情。等安裝完畢,安裝程式會根據ks.cfg中的設 置重啟系統,並結束安裝。
PXE+Kickstart 無人值守安裝作業系統完整過程如下:
-----------------------------------分割線--------------------------------------------------
系統環境
實驗環境:VMware Workstation 11
系統平臺:RHEL7
網路模式:LAN區段
DHCP / TFTP IP:192.168.153.130
HTTP / FTP / NFS IP:192.168.153.130
防火牆已關閉/iptables: Firewall is not running.
SELINUX=disabled
-----------------------------------分割線--------------------------------------------------
前期準備
所需要用到的服務:DHCP、TFTP、VSFTP
配置yum倉庫,掛載光碟映象
#vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
basurel=file:///mnt
enabled=1
gpgcheck=0
將光碟掛載到/mnt中
#mount /dev/cdrom /mnt
-----------------------------------分割線--------------------------------------------------
配置DHCP
安裝DHCP服務
# yum -y install dhcp
修改/etc/dhcp/dhcpd.conf 配置檔案,內容如下:
subnet 192.168.153.0 netmask 255.255.255.0 { #所屬網段及掩碼;
range 192.168.153.100 192.168.153.120; #IP地址池範圍;
option domain-name "linuxidc.seagate.com";
option routers 192.168.153.130; #路由器IP,可以寫閘道器IP;
option broadcast-address 192.168.153.255;
next-server 192.168.153.130; #TFTP Server 的IP地址;
filename "pxelinux.0"; #pxelinux 啟動檔案位置;
default-lease-time 600;
max-lease-time 7200;
}
啟動DHCP服務
#systemctl enable dhcpd.service
#systemctl start dhcpd.service
-----------------------------------分割線--------------------------------------------------
配置TFTP
安裝TFTP
# yum install tftp-server –y //此步驟會安裝兩個包,一個是tftp-server另一個是xinetd。
修改/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
disable = no #把這行改成no即可;
per_source = 11
cps = 100 2
flags = IPv4
}
啟動xinetd服務
#systemctl enable xinetd.service
#systemctl start xinetd.service
-----------------------------------分割線--------------------------------------------------
配置vsftp
安裝vsftp
#yum -y install vsftpd
啟動vsftpd服務
#systemctl start vsftpd.service
#systemctl enable vsftpd.service
建立iso資料夾目錄,用來存放光碟軟體包
#mkdir /var/ftp/iso
複製光碟中所有檔案到iso資料夾中, 可不用複製,直接將光碟掛載到/var/ftp/iso/目錄下;
#cp -rf /mnt/* /var/ftp/iso/
-----------------------------------分割線--------------------------------------------------
配置PXE啟動所需要的檔案
#yum -y install syslinux
說明:syslinux是一個功能強大的引導載入程式,而且相容各種介質。更加確切地說:SYSLINUX是一個小型的Linux作業系統,它的目的是簡化首次安裝Linux的時間,並建立修護或其它特殊用途的啟動盤。
複製啟動檔案到/var/lib/tftpboot裡
#cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
#mkdir /var/lib/tftpboot/pxelinux.cfg
#cd /mnt/isolinux/
#cp -rf initrd.img vmlinuz vesamenu.c32 boot.msg /var/lib/tftpboot/
#cp isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
授予寫的許可權
chmod u+x default
檢查
[root@localhost tftpboot]# pwd
/var/lib/tftpboot
[root@localhost tftpboot]# ls
initrd.img pxelinux.0 pxelinux.cfg vesamenu.c32 vmlinuz boot.msg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
default
-----------------------------------分割線--------------------------------------------------
生成ks.cfg 檔案
ks.cfg是kickstart安裝配置檔案,系統就是按照ks.cfg來安裝的。我們將在後面配置他
安裝Kickstart
#yum -y install system-config-kickstart
在桌面環境下配置Kickstart
啟動X Windows 環境
#startx
配置Kickstart
#system-config-kickstart
儲存在/root/下,字尾不要動
root目錄下有個anaconda-ks.cfg檔案,我們進去把安裝軟體指令碼複製到我們們剛才建立的那個ks.cfg中
#vim /root/anaconda-ks.cfg
........
%packages
@base
@core
@desktop-debugging
@dial-up
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@kde-desktop
@multimedia
@print-client
@x11
%end
把anaconda-ks.cfg檔案最下方的指令碼貼上到我們們的ks.cfg中
#vim /root/ks.cfg
把上面一串@的所有內容都貼上進去,包括兩個%哪行。
把ks檔案複製到/var/ftp/裡面
#cp /root/ks.cfg /var/ftp/
可選:新增key --skip //跳過輸入序列號環節
<注意是兩個"-">
[root@rhce ~]# cat ks.cfg
新增下列行
key --skip
編輯/var/lib/tftpboot/pxelinux.cfg/default檔案,新增如下內容:
label rhel
menu label ^Install RHEL7.0
menu default
kernel vmlinuz
append initrd=initrd.img inst.stage2=ftp://192.168.153.130/iso inst.ks=ftp://192.168.153.130/ks.cfg quiet
-----------------------------------分割線--------------------------------------------------
檢查
檢查SELinux是否關閉
#setenforce 0 //關閉SELinux
檢查防火牆,開放dhcp,ftp,tftp服務,或者關閉防火牆
注:這裡也可以透過systemctl stop firewall來關閉防火牆
檢查所有服務是否正常啟動
-----------------------------------分割線--------------------------------------------------
安裝測試
到此配置結束, 啟動需要安裝系統的機器. 修改BIOS以網路卡方式啟動.
如果DHCP配置有問題,或PXE找不到安裝檔案的問題,
請檢視/var/log/message 或仔細核對目錄是否一致.
檢視包安裝情況:tail -fn 100 /var/log/xferlog
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-1973274/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- RHEL7.0 DHCP+TFTP+SYSLINUX+FTP+KICKSTART自動安裝FTPLinux
- kickstart半自動安裝centos系統與pxe自動安裝centos系統CentOS
- Linux kickstart無人值守安裝RHEL5.5(轉)Linux
- 【kingsql分享】RHEL7.0安裝Oracle12cSQLOracle
- PXE+DHCP+TFTP+NFS+Kickstart網路自動安裝配置簡化版FTPNFS
- linux安裝配置kickstartLinux
- [無人值守安裝作業系統]__RHEL6__FTP+TFTP+DHCP+Kickstart+PXE作業系統FTP
- DHCP+TFTP+HTTP+Kickstart實現遠端自動安裝Linux系統FTPHTTPLinux
- 網路全自動安裝ubuntu server薦UbuntuServer
- kickstart+PXE+dhcp+nfs 批量無人值守自動化安裝作業系統NFS作業系統
- Kickstart+HTTP+DHCP+TFTP+PXElinux實現RedHat的網路自動安裝(轉)HTTPFTPLinuxRedhat
- Redhat kickstart 安裝光碟製作Redhat
- 自動化(YUM/編譯)安裝PHP(5.3/5.5/7.0/7.1)指令碼編譯PHP指令碼
- 安裝Vim自動補全外掛YouCompleteMe
- RHEL 6下原始碼包安裝部署Ansible原始碼
- 分享MySQL的自動化安裝部署的方法MySql
- 用Kickstart批次安裝Linux(轉)Linux
- 如何在 CentOS 8/RHEL 8 上安裝 Ansible(自動化工具)CentOS
- VIM自動補全神器 — YouCompleteMe 安裝全教程
- Centos 從安裝到部署之 自動化構建及部署(三)CentOS
- 自動化測試之:Jenkins安裝與部署Jenkins
- RHEL安裝Xtrabackup
- PXE+Kickstart無人值守安裝安裝Centos7.9CentOS
- PXE + Kickstart無人值守批量安裝OS
- linux kickstart 無人職守安裝Linux
- kickstart之批量安裝puppet客戶端客戶端
- kickstart無人值守安裝linux(轉)Linux
- Python3 全自動更新已安裝的模組Python
- RHEL6下puppet部署管理1之安裝測試
- Gitlab自動部署之二:安裝GITLAB-RUNNERGitlab
- 【松溪】部署Linux系統的網路自動安裝Linux
- 本地部署GPT全流程自動化檔案GPT
- CentOS 7.0 之 FastDFS安裝CentOSAST
- Rational Rose 7.0安裝教程ROS
- 部署虛擬機器環境安裝RHEL7系統虛擬機
- AndroidN7.0、8.0上自動安裝apk問題AndroidAPK
- PXE高效網路裝機與Kickstart無人值守安裝
- 如何在 CentOS 7.0 安裝 WebsvnCentOSWeb