1. 程式人生 > >PXE+Kickstart無人值守安裝系統

PXE+Kickstart無人值守安裝系統

PXE + Kickstart無人值守安裝系統

 
這裡寫圖片描述

前言

什麼是PXE

  PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發。工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動過程中,終端要求伺服器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟體包到本機記憶體中執行,由這個啟動軟體包完成終端(客戶端)基本軟體設定,從而引導預先安裝在伺服器中的終端作業系統。

  PXE 其實並不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支援的網絡卡。PXE可以引導多種作業系統,如:Windows和Linux等系列系統。

PXE工作原理

  • Client向PXE Server上的DHCP傳送IP地址請求訊息, DHCP檢測Client是否合法(主要是檢測Client的網絡卡MAC地址),如果合法則返回Client的IP地址,同時將啟動檔案pxelinux.0的位置資訊一併傳送給Client

  • Client向PXE Server上的TFTP傳送獲取pxelinux.0請求訊息, TFTP接收到訊息之後再向Client傳送pxelinux.0大小資訊,試探Client是否滿意,當TFTP收到Client發回的同意大小資訊之後,正式向Client傳送pxelinux.0

  • Client執行接收到的pxelinux.0檔案

  • Client向TFTP Server傳送針對本機的配置資訊檔案(在TFTP 服務的pxelinux.cfg目錄下), TFTP將配置檔案發回Client,繼而Client根據配置檔案執行後續操作。

  • Client向TFTP傳送根檔案請求資訊, TFTP接收到訊息之後返回Linux根檔案系統

  • Client啟動Linux核心

  • Client下載安裝原始檔,讀取自動化安裝指令碼

Kickstart

  KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種引數,並生成一個名為ks.cfg的檔案。在之後的安裝過程中(不只侷限於生成KickStart安裝檔案的機器)當出現要求填寫引數的情況時,安裝程式會首先去查詢KickStart生成的檔案。如果找到合適的引數時,就匹配找到的引數,而沒有找到合適的引數時,才需要手工干預安裝。當KickStart檔案涵蓋了安裝過程中出現的所有需要填寫的引數時,安裝者完全可以只告訴安裝程式從何處取ks.cfg檔案,系統便會自動安裝,做到無人值守安裝系統。

PXE+Kickstart 安裝流程圖

安裝過程

安裝條件

  • DHCP伺服器:為 PXE-client 分配 IP ,獲得安裝程式檔案位置
  • TFTP伺服器:傳輸安裝檔案、核心、選單檔案等給 PXE-client
  • Kickstart:生成的ks.cfg配置檔案
  • HTTP/NFS/FTP 服務中的任意一種,用於傳送安裝原始檔給 PXE-client

這裡寫圖片描述

本實驗中,我們是使用一臺CentOS7裝置作為Server端,實現CentOS6和7系統安裝。

安裝步驟

1.安裝前準備

關閉 防火牆 和 SELINUX

#關閉防火牆
[[email protected] ~]$systemctl stop firewalld.service #關閉當前系統防火牆
[[email protected] ~]$systemctl disable firewalld.service #關閉防火牆開機啟動
[[email protected] ~]$systemctl status firewalld.service #檢視防火牆的狀態
#關閉SELINUX
[[email protected] ~]$sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config
[[email protected] ~]$setenforce 0

2.安裝相關軟體包

#安裝相關軟體包
yum install -y httpd tftp-server dhcp syslinux system-config-kickstart
  • httpd
  • tftp-server
  • dhcp
  • syslinux
  • system-config-kickstart

3.配置共享檔案服務

#啟動httpf服務
[[email protected] ~]$systemctl enable httpd
[[email protected] ~]$systemctl start httpd
#準備好CentOS6和7的系統光碟
[[email protected] ~]$df /dev/{sr0,sr1}
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sr0 3878870 3878870 0 100% /run/media/root/CentOS_6.9_Final
/dev/sr1 8086368 8086368 0 100% /run/media/root/CentOS 7 x86_64
#建立CentOS6和7的共享檔案,並將準備好的光碟進行掛載
[[email protected] ~]$mkdir -p /var/www/html/centos/{6,7}
[[email protected] ~]$mount /dev/sr0 /var/www/html/centos/6
[[email protected] ~]$mount /dev/sr1 /var/www/html/centos/7

注意:此處為了省略複製的時間,將光碟直接掛載到對應目錄下,實際生產過程中,應該複製到對應目錄下,並重建repodata.

4.準備Kickstart檔案

#建立CentOS6和7各自的ks.cfg檔案
[[email protected] ~]$mkdir /var/www/html/ksdir
[[email protected] ~]$cp /root/anaconda-ks.cfg /var/www/html/ksdir/ks7.cfg
#CentOS6的ks.cfg檔案需要單獨編輯
[[email protected] ~]$touch /var/www/html/ksdir/ks6.cfg
#給ks.cfg檔案加上讀許可權
[[email protected] ~]$chmod +r /var/www/html/ksdir/ks{6,7}.cfg“`
編輯CentOS6的ks.cfg檔案
#配置ks6.cfg檔案

# Kickstart file automatically generated by anaconda.

#version=DEVEL
install
#cdrom                                     #光碟安裝方式
url --url=http://192.168.15.71/centos/6    #指定通過http安裝源的路徑
text                                       #採用文字安裝的方式
reboot                                     #安裝自動重啟(此處設定與順序無關)
zerombr                                    #任何磁碟上的無效分割槽表都將被初始化.這會毀壞有無效分割槽表的磁碟上的所有內容,如果後面加引數yes,則命令生效
lang en_US.UTF-8
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6      #設定網絡卡開機自啟動
rootpw  --iscrypted $6$fo5PVsYpQzE2RC..$vZ2FT3sHNJBR2aopg8uzWWM2.59BykYcelOD7rBryYUuYpeNKpqAneREqaaO4x3btGdBJGbc4vHvjwaGLBGVG1
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled                          #關閉selinux
timezone --utc Asia/Shanghai                #設定時區
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
#clearpart --none                           
clearpart --all                             #清空全部分割槽
part /boot --fstype=ext4 --size=1000
part / --fstype=ext4 --size=50000
part /app --fstype=ext4 --size=50000
part swap --size=2000

#repo --name="CentOS"  --baseurl=cdrom:sr0 --cost=100

%packages                                    #要安裝的軟體包,根據需求在下面新增
@core
@server-policy
@workstation-policy
%end
編輯CentOS7的ks.cfg檔案
#配置ks7.cfg檔案

#version=DEVEL
# System authorization information
auth --enableshadow --passalgo=sha512
# Use CDROM installation media
#cdrom
url --url=http://192.168.15.71/centos/7             #指定通過http安裝源的路徑
# Use graphical install
text                                                #文字安裝方式
#graphical                                          #圖形安裝方式
# Run the Setup Agent on first boot
firstboot --enable
ignoredisk --only-use=sda
# Keyboard layouts
keyboard --vckeymap=us --xlayouts='us'
# System language
lang en_US.UTF-8

# Network information
network  --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --activate      #設定網絡卡開機自啟動
network  --hostname=CentOS7.ghy

# Root password
rootpw --iscrypted $6$b6IsAJZX.ac.hCsu$1iDlxJDC6SBcnd0FZ9kYHVAVLtivXVMZ3yK.mU76O2XheycVXNNMoXNEF48ypWmimKj8xvAkm1nc7B1ju8A///
# System services
services --disabled="chronyd"
# System timezone
timezone Asia/Shanghai --isUtc --nontp
user --name=ghy --password=$6$.oWz.8rfJZ/Haxcs$VMLedlOaOkU5kcb/0hzZyd2w.r0EiVHCFo1la6pvA.1T/XCFSu6KhW7bi8mAFSegOGe2yDxQAfUB/8HjWb9qp1 --iscrypted --gecos="ghy"
# X Window System configuration information
xconfig  --startxonboot
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --none --initlabel
zerombr
clearpart --all
# Disk partitioning information
part /boot --fstype="xfs" --ondisk=sda --size=1024
part / --fstype="xfs" --ondisk=sda --size=51200
part /app --fstype="xfs" --ondisk=sda --size=51200
part swap --fstype="swap" --ondisk=sda --size=2048
reboot

%packages
@core
@wget
@vim

%end

注意:CentOS6和7上許可權必須是所有使用者可讀,否則之後安裝無法進行

檢查ks檔案格式
#檢查ks.cfg檔案格式
[[email protected] ~]$ksvalidator /var/www/html/ksdir/ks6.cfg
[[email protected] ~]$ksvalidator /var/www/html/ksdir/ks7.cfg

5.配置tftp服務

#設定tftp服務開機自啟動(CentOS6:chkconfig tftp on)
[[email protected] ~]$systemctl enable tftp.socket
#設定啟動tftp服務(CentOS6:service xined restart)
[[email protected] ~]$systemctl start tftp.socket
  • 測試tftp服務
#建立tftp伺服器測試檔案
[[email protected] ~]$echo 'tftp ok!' > /var/lib/tftpboot/text
  • 檢視tftp服務埠
#檢視69埠是否開啟
[[email protected] ~]$ss -nul |grep 69
UNCONN 0 0 :::69 :::* t
#使用客戶端進行訪問測試
[[email protected] ~]$tftp 192.168.15.71
tftp> get text
tftp> quit
[[email protected] ~]$cat text
tftp ok!

6.配置DHCP服務

因為預設的DHCP配置檔案是空的,所以我們通過系統自帶的模板檔案覆蓋預設的DHCP配置檔案,然後進行編輯,最後啟動DHCP服務

#將模板檔案覆蓋預設DHCP配置檔案
[[email protected] ~]$cp  /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
  • 編輯DHCP配置檔案
#更改dhcpd.conf檔案中的DHCP配置內容
[[email protected] ~]$vim /etc/dhcp/dhcpd.conf
# DHCP server to understand the network topology.
subnet 192.168.15.0 netmask 255.255.255.0 {
range 192.168.15.50 192.168.15.100;
option routers 192.168.15.1;
next-server 192.168.15.71;
filename "pxelinux.0";
}
  • 啟動DHCP服務
#將DHCP服務設定開機自啟動
[[email protected] ~]$systemctl enable dhcpd
#啟動DCHP服務
[[email protected] ~]$systemctl start dhcpd
#檢視DCHP埠是否啟動
[[email protected] ~]$ss -nul|grep 67

7.製作PXE檔案


[[email protected] ~]$mkdir /var/lib/tftpboot/pxelinux.cfg/
[[email protected] ~]$mkdir /var/lib/tftpboot/centos{6,7}
[[email protected]tOS7 ~]$cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
#將核心檔案和initrd檔案加入tftp檔案中
[[email protected] ~]$cp /var/www/html/centos/6/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos6
[[email protected] ~]$cp /var/www/html/centos/7/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos7
  • 檢視生成檔案
[[email protected] ~]tree /var/lib/tftpboot/
/var/lib/tftpboot/
├── centos6
│   ├── initrd.img
│   └── vmlinuz
├── centos7
│   ├── initrd.img    #偽檔案系統檔案
│   └── vmlinuz       #核心檔案
├── menu.c32           #純文字選單  
├── pxelinux.0         #引導檔案,相當於grub。
└── pxelinux.cfg

8.製作啟動選單

[[email protected] ~]vim /var/lib/tftpboot/pxelinux.cfg/default
default menu.c32
timeout 600                                       #控制等待時間,單位是十分之一秒
menu title CentOS Linux  PXE Install

label centos7                                     #自動安裝centos7
      menu label Auto Install CentOS Linux ^7
      kernel centos7/vmlinuz
      append initrd=centos7/initrd.img ks=http://192.168.15.71/ksdir/ks7.cfg  #應答檔案所在路徑

label centos6                                     #自動安裝centos6
      menu label Auto Install CentOS Linux ^6
      kernel centos6/vmlinuz
      append initrd=centos6/initrd.img ks=http://192.168.15.71/ksdir/ks6.cfg

label manual7                                     #手動安裝centos7
      menu label ^Manual Install CentOS Linux 7
      kernel centos7/vmlinuz
      append initrd=centos7/initrd.img inst.repo=http://192.168.15.71/centos/7

label manual6                                     #手動安裝centos6
      menu label Manual ^Install CentOS Linux 6
      kernel centos6/vmlinuz
      append initrd=centos6/initrd.img inst.repo=http://192.168.15.71/centos/6

label local                                       #本地硬碟啟動
     menu default                                 #預設啟動項
     menu label Boot from ^local drive
     localboot 0xffff
    menu end

9.系統安裝

新建空白虛擬機器,將網絡卡設定為僅主機,然後啟動虛擬機器
這裡寫圖片描述

進入PXE安裝介面。

總結

我們可以通過對啟動選單檔案的配置,修改 menu defaulttimeout 來實現批量的系統自動安裝。後面我們還會使用自動化工具來進行系統的安裝,逐步向著運維自動化的方向努力。

相關推薦

PXE+Kickstart無人值守安裝系統

PXE + Kickstart無人值守安裝系統   前言 什麼是PXE   PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發。工作於Client/Server的網路模式,支援工作

PXE+Kickstart無人值守安裝操作系統

單位 flag 而且 desktop centos6.7 情況 系統 同時 tftpd 1.PXE的工作過程: 1. PXE Client 從自己的PXE網卡啟動,向本網絡中的DHCP服務器索取IP; 2. DHCP 服務器返回分配給客戶機的IP 以及PXE文件的放置位

CentOS 7部署PXE+kickstart無人值守安裝操作系統

楓雨1.簡介1.1kickstart 是一種無人值守的安裝方式。它的工作原理是在安裝過程中記錄人工幹預填寫的各種參數,並生成一個名為ks.cfg的文件。如果在自動安裝過程中出現要填寫參數的情況,安裝程序首先會去查找ks.cfg文件,如果找到合適的參數,就采用所找到的參數;如果沒有找到合適的參數,便會彈出對話

CentOS 6.x下PXE+Kickstart無人值守安裝操作系統

系統安裝 pxe kickstart 一、PXE1 什麽是PXE: PXE(Pre-boot Execution Environment,預啟動執行環境)是由Intel公司開發的最新技術,工作於Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,並由此支持通過網

CentOS 6.9下PXE+Kickstart無人值守安裝操作系統附常見問題

參數 rii 註釋 config 實現 記錄 centos 6 的人 工具 CentOS 6.9下PXE+Kickstart無人值守安裝操作系統 一、簡介 1.1 什麽是PXE PXE(Pre-boot Execution Environment,預啟動執行環境)是由Int

PXE+Kickstart無人值守安裝CentOS 7出現DHCP故障解決報告

部署dhcp服務器 部署DHCP服務器 在安裝dhcp.x86_64 後,用命令systemctlstatus dhcpd 命令查看dhcp服務運行狀態發現failed。報錯信息為如下圖:Not configured to listen on any interfac

Centos6.5下 PXE+Kickstart無人值守安裝

transacti == cdrom resolved finished png share max ase Centos6.5下 PXE+Kickstart無人值守安裝 PXE(Preboot eXecute Environment,預啟動執行環境)是由Intel公司開發

(轉)PXE+kickstart無人值守安裝CentOS 7

給定 說明 尋找 包括 bms roo 子菜單 基本上 獨立 kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart無人值守安裝CentOS6的續篇

Centos-7.3配置PXE+kickstart無人值守安裝

log ftp term alt 環境 ges wall 系統版本 serve Centos-7.3配置PXE+KICKSTART自動安裝系統 首先查看當前系統版

PXE+kickstart無人值守安裝CentOS

dac dir pbo 6.4 ... RoCE kconfig 共享 swa 使用tftp,dhcp,配合PXE搭建批量安裝linux系統服務端系統環境 實驗環境:VMware Workstation 10 系統平臺:CentOS release 6.4 (最小化安裝)

yum遮蔽軟體與kickstart無人值守安裝系統

一.yum 遮蔽軟體(黑名單)    vim /etc/yum.conf  在後面加上想要遮蔽的物件    例如,想要遮蔽64位的安裝包:  exclude=*.x86_64,然後yum list 就不會顯示出64位的軟體包了 測試

Linux基礎學習-使用PXE+Kickstart無人值守安裝服務

無人值守安裝系統 PXE(Preboot eXecute Environment,預啟動執行環境)是由Intel公司開發的技術,可以讓計算機通過網路來啟動作業系統(前提是計算機上安裝的網絡卡支援PXE技術),主要用於在無人機值守安裝系統中引導客戶端主機安

使用PXE+Kickstart無人值守安裝服務

一、簡介        使用PXE+TFTP+FTP+DHCP+Kickstart服務搭建出一個無人值守安裝系統,可以無人值守就可以為數10臺伺服器安裝系統,大大提高系統安裝效率。 PXE(preboot execute environment,預啟動執行環境)是由Int

KICKSTART無人值守安裝系統(上)

PXE Pre-boot Execution Environment,預啟動執行環境;通過網路介面啟動計算機,不依賴本地儲存裝置(如硬碟)或本地已安裝的作業系統; Client/Server的工作模式; PXE客戶端會呼叫網際協議(IP)、使用者資料報協議(UD

KICKSTART無人值守安裝系統(下)

整合編輯default配置檔案 vi /var/lib/tftpboot/pxelinux.cfg/default default ks prompt 0 label ks kernel vmlinuz append initrd=initrd.img ks=h

KICKSTART無人值守安裝系統(中)

建立ks.cfg檔案 通常,我們在安裝作業系統的過程中,需要大量的和伺服器互動操作,為了減少這個互動過程,kickstart就誕生了。使用這種kickstart,只需事先定義好一個Kickstart自動應答配置檔案ks.cfg(通常存放在安裝伺服器上),並讓安裝

Linux應該這麼學第19章使用 PXE+Kickstart 無人值守安裝服務

本章講解了如下內容: ➢ 無人值守安裝系統; ➢ 部署相關服務程式; ➢ 自動部署客戶端主機。 剛入職的運維新手經常會被要求去做一些安裝作業系統的工作。如果按照第 1 章講解的 用光碟映象來安裝作業系統,其效率會相當低下。本章將介紹可以實現無人值守安裝服務的 PXE+Kick

Pxe+kickstart 無人值守安裝centos7.2(最小化)

一、PXE解釋與工作流程圖:1.什麼是pxePXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的技術,工作於Client/Server的網路模式,支援工作站通過網路從遠端伺服器下載映像,並由此支援通過網路啟動作業系統,在啟動

PXE+Kickstart無人值守安裝CentOS 7

redis serve epel issues 都是 ifcfg-eth 即使 swap basic 本文目錄: 1.1 PXE說明 1.2 PXE流程 1.3 部署環境說明 1.4 部署DHCP服務 1.5 部署FTP 1.6 提供