PXE + KickStart實現全自動化系統安裝
標簽: 自動化 Linux 自動化運維 無人值守虛擬機安裝 pxe引導全自動系統
關于kickstart的介紹以及自動應答腳本的生成設置請參考我的上一篇博客 kickstart自動應答腳本生成及虛擬機自動安裝 ,而且本文的部分設置包含在上一篇博客中,所以此文有略過,如果要完成自動化安裝全程,需要先閱讀上一篇博客,然后接著本文進行配置
什么是PXE,它的作用是什么
嚴格來說,PXE 并不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協議使計算機可以通過網絡啟動。協議分為 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。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。
PXE + KickStart自動化系統安裝所需條件或設置
- TFTP 服務器;
- DHCP 服務器;
- HTTP服務
- pxelinux.0
- KickStart所生成的ks.cfg配置文件
一. tftp服務的安裝和配置
1. 如果不知道提供tftp服務的軟件是什么可以使用以下命令進行搜索
[root@foundation ~]# yum search tftp
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
==================================== N/S matched: tftp ====================================
tftp.x86_64 : The client for the Trivial File Transfer Protocol (TFTP)
tftp-server.x86_64 : The server for the Trivial File Transfer Protocol (TFTP)
Name and summary matches only, use “search all” for everything.
2. 通過yum安裝tftp服務
[root@foundation ~]# yum install tftp-server.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package tftp-server-5.2-12.el7.x86_64 already installed and latest version
Nothing to do
#因為我個人系統中已經安裝過了所以提示nothing to do
3. 拷貝系統安裝過程中需要用的配置或者內核模塊等到tftp服務目錄中
cp /var/www/html/iso/isolinux/* /var/lib/tftpboot/
#tftp開機自啟動
vim /etc/xinetd.d/tftp
編輯disable的選項為no
二. httpd服務的安裝和配置
yum install httpd
#安裝httpd服務
mkdir /var/www/html/iso
#在httpd服務的根目錄下為鏡像的掛載創建一個目錄
mount /iso/rhel-server-7.2-x86_64-dvd.iso /var/www/html/iso/
#掛載鏡像到httpd服務上
systemctl start httpd
#在瀏覽器中訪問測試httpd是否可以訪問,下圖為正常訪問狀態
cp /var/www/html/iso/isolinux/* /var/lib/tftpboot/
#然后將系統啟動所需配置及文件復制到tftp訪問目錄中
三. dhcp服務的安裝和配置
yum install dhcp
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
#cp: overwrite '/etc/dhcp/dhcpd.conf'? y
用示例配置文件覆蓋dhcp配置文件
然后我們對dhcp配置文件進行對應修改,使其能夠正確提供服務
vim /etc/dhcp/dhcpd.conf
# option definitions common to all supported networks...
7 option domain-name "example.com"; #域名
8 option domain-name-servers 172.25.254.250;#DNS
9
10 default-lease-time 600;#默認租約期
11 max-lease-time 7200;#最長租約期
26
27 #subnet 10.152.187.0 netmask 255.255.255.0 {
28 #}#需要注釋掉
29
30 # This is a very basic subnet declaration.
31
32 subnet 172.25.254.0 netmask 255.255.255.0 {#網段及子網掩碼
33 range 172.25.254.60 172.25.254.66; ##獲取的ip地址范圍設置
34 option routers 172.25.254.250; ####網關
35 next-server 172.25.254.36; ###tftp主機地址
36 filename "pxelinux.0"; #pxe啟動程序
37 }
38 #之后的內容可以全部刪除掉
四. pexlinux.0獲取和相關配置
首先通過查找相關信息得到pxelinux.0的來源
[root@foundation ~]# yum search pxelinux
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
==================================== Matched: pxelinux ====================================
syslinux.x86_64 : Simple kernel loader which boots from a FAT filesystem
syslinux-extlinux.x86_64 : The EXTLINUX bootloader, for booting the local system.
然后安裝相關軟件獲得pxelinux.0
[root@foundation xinetd.d]# yum install syslinux.x86_64
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Package syslinux-4.05-12.el7.x86_64 already installed and latest version
Nothing to do
查找pxelinux.0文件以及用法,以后操作都是根據查找到的文檔指導完成的
[root@foundation xinetd.d]# rpm -ql syslinux | grep pxelinux
/usr/share/doc/syslinux-4.05/pxelinux.txt
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/gpxelinuxk.0
/usr/share/syslinux/pxelinux.0
[root@foundation xinetd.d]#
拷貝文件到指定目錄,下面操作指導可以在/usr/share/doc/syslinux-4.05/pxelinux.txt中找到
cp /usr/share/syslinux/pxelinux.0 /var/lig/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
配置/var/lib/tftpboot/pxelinux.cfg/default文件使安裝程序能夠找到鏡像以及自動應答腳本
#在關鍵字label linux后的第四行進行修改,指定你的鏡像地址與自動應答腳本的位置
label linux
menu label ^Install Red Hat Enterprise Linux 7.2
kernel vmlinuz
menu default
append initrd=initrd.img repo=http://172.25.254.36/iso/ ks=http://172.25.254.36/ks.cfg quiet##########修改這一行額!!!
關于一開始提到的KickStart所生成的ks.cfg配置文件可以參考 kickstart自動應答腳本生成及虛擬機自動安裝 ,最后的結果就是有一個可以通過httpd服務訪問到的ks.cfg自動應答腳本文件就可以了
完成配置之后檢查服務
1.防火墻關閉
systemctl stop firewalld
systemctl disable firewalld
systemctl mask firewalld
2.開啟tftp并檢查服務端口是否開啟
[root@foundation xinetd.d]# systemctl start tftp.service
[root@foundation xinetd.d]# ss -anulpe | grep tftp
UNCONN 0 0 :::69 :::* users:((“in.tftpd”,pid=11738,fd=0),(“systemd”,pid=1,fd=49)) ino:43984 sk:ffff8800d6078000 v6only:0 <->
3.開啟dhcp
systemctl start dhcpd.service
如果服務啟動有問題,可以先清空日志信息,再重啟服務,查看日志信息定位錯誤
[root@foundation ~]>/var/log/messages
[root@foundation ~]systemctl start dhcpd.service
[root@foundation ~]cat /var/log/messages
到這里基本的配置就算是完成了,接下來就是安裝的選擇部分了
啟動選擇
NCI的網絡源要選擇Bridge方式
Boot Options 將NIC選項放到首選啟動方式,但是記得完成一次安裝后要改回去,否則系統會進入循環安裝過程
如果是通過物理機安裝虛擬機請拔掉網線或者不要聯網
以下為啟動過程中的一些截圖
進入pxe引導程序
安裝選擇界面,可以看到標題是修改過的,這個的話可以在/var/lib/tftpboot/pxelinux.cfg/default這個文件中進行修改
選擇安裝之后內核加載過程
自動創建分區
執行安裝后腳本過程
切記在完成一次安裝之后需要把Boot Options 的NIC選項改回去,否則系統會進入循環安裝過程
智能推薦
自動化部署操作系統-Kickstart+PXE自動部署
目錄: 無人值守安裝簡介 實戰:PXE批量部署linux操作系統 前言 部署dhcp服務 HTTP服務 TFTP服務 復制PXE啟動時需要的文件 修改引導啟動菜單 配置kickstart自動安裝文件(ks.cfg) 裝機測試 無人值守安裝簡介 無人值守安裝(Unattended Setup)指軟件安裝時無需任何用戶干預,直接按默認或通過應答文件設置安裝,這對于無特殊需求的用戶或企業大批量部署安裝操...
自動化運維之CentOS7下PXE+Kickstart+DHCP+TFTP+HTTP無人值守安裝系統
一、概述 1、關于PXE Preboot Execution Environment翻譯過來就是預啟動執行環境;簡稱PXE;傳統安裝操作系統的方法是CDROM或U盤引導,而PXE技術解決的是從網絡引導安裝系統,當然PXE技術不是什么新技術了,是Intel和Microsoft在1998年定義的更大PC98規范的一部分。有關PXE規范的詳細文檔 2、pxe引導相關角色說明 PXE作用: 引導裝機 Ki...
pxe自動化部署系統
PXE:Preboot Excution Environment 預啟動執行環境 PXE是結合httpd,dhcp,tftp服務實現系統自動化安裝,只需機器開機,網絡通,機器就能自動安裝預定的系統 PXE環境的搭建大致分為三大步 一,軟件包的安裝 二,httpd,dhcp,tftp服務的配置 三,菜單的配置 PXE環境搭建 在做該實驗之前應把虛擬機的dhcp功能關閉 下面開始pxe環境的實現(為了...
pxe自動化部署Linux系統
pxe自動化部署Linux系統 實驗準備:虛擬機centos 7 需要部署:DHCP服務器,TFTP服務器,HTTP服務器 準備工作 1、HTTP服務器 2、kickstart應答文件 部署應答文件,安裝圖形工具 應答文件放到HTTP共享文件夾里 3、TFTP服務器 4、pxe引導文件 5、DHCP服務器 修改配置文件 重啟并監控日志 6、TFTP服務器部署相關文件 重啟服務器 測試 注意:報錯信...
猜你喜歡
PXE裝機自動化
1.pxe裝機原理圖 PXE工作原理示意圖說明: 1. Client向PXE Server上的DHCP發送IP地址請求消息,DHCP檢測Client是否合法(主要是檢測Client的網卡MAC地址),如果合法則返回Client的IP地址,同時將啟動文件pxelinux.0的位置信息一并傳送給Client。 2. Client向PXE Server上的TFTP發送獲取pxelinux.0請求消息,T...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...