PXE服務器部署

裸機安裝操作系統的方法:

光盤安裝、U盤安裝、PXE網絡安裝、從硬盤直接安裝

 PXE:是預啓動執行環境縮寫(preboot execute environment)。是intel公司推出的一款通過網絡來引導操作系統的協議。廣泛應用於網吧無盤系統。只需要將無盤服務器維護好,就能保證網絡中的無盤工作站(客戶機)的系統能正常運行。

 

PXE本講目標:

       用centos7系統部署一臺PXE服務器,實現通過PXE網絡來給PXE客戶機手動或自動安裝centos7操作系統。

 

PXE服務器需要的支撐軟件:DHCP、TFTP、syslinux(提供pxe引導程序文件pxelinux.0)、文件共享(nfs、ftp、http、samba)等

 

PXE服務器和客戶機的工作過程:

1.PXE客戶機發出DHCP請求,向服務器申請IP地址。

2.DHCP服務器響應PXE客戶機的請求,自動從IP地址池中分配一個IP地址給PXE客戶機,並且告知PXE客戶機TFTP(簡單文件傳輸協議)服務器的IP地址和PXE引導程序文件pxelinux.0。

3.PXE客戶機向TFTP服務器發起獲取pxelinux.0引導程序文件的請求。

4.TFTP服務器響應PXE客戶機的請求,將其共享的pxelinux.0文件傳輸給PXE客戶機。

5.PXE客戶機通過網絡來啓動到系統安裝主界面。

6.PXE客戶機向文件共享服務器發起獲取centos或windows系統安裝文件的請求。

7.文件共享服務響應PXE客戶機的請求,將共享的系統安裝文件傳輸給PXE客戶機。

8.PXE客戶機進入到安裝提示嚮導界面,用戶需要手動來完成系統的操作。

 

kickstart自動化系統安裝:

在PXE服務器上用vim或kcikstart工具創建一個系統自動安裝的應答文件ks.cfg,並用文件共享服務來共享ks.cfg文件。ks.cfg自動應答文件中是記錄的安裝操作步驟。客戶機在進入安裝界面時會自動根據ks.cfg文件中的內容來完成安裝操作。

 


 

PXE中各服務器軟件的功能:

DHCP:用來給PXE客戶機自動分配TCP/IP設置(包括IP地址、子網掩碼、網關、DNS等)。告知PXE客戶機“TFTP服務器的IP地址和PXE啓動文件名”。

 

TFTP:是一個迷你的FTP共享協議軟件,用來給PXE客戶機提供網絡啓動的引導程序文件pxelinux.0。

 

syslinux:用來提供pxelinux.0網絡引導程序文件。

 

文件共享:可以是vsftpd、nfs、samba、http等軟件來實現文件共享。用來給PXE客戶機提供系統安裝文件。

 

PXE服務器的部署:

關閉selinux和防火牆:

setenforce  0  &&  getenforce

systemctl   stop  firewalld  &&  systemctl  disable  firewalld

 

部署DHCP服務器

1.查軟件是否已安裝:rpm  -q  dhcp

2.安裝dhcp服務器軟件:yum   install  -y  dhcp

3.查配置文件列表:rpm  -qc   dhcp

/etc/dhcp/dhcpd.conf    **是dhcp服務器的主配置文件(實現DHCP的ipv4功能)

/etc/dhcp/dhcpd6.conf    是dhcp服務器的主配置文件(實現DHCP的ipv4功能)

/etc/openldap/schema/dhcp.schema

/etc/sysconfig/dhcpd      是dhcp服務器的輔助配置文件(用於多網卡環境)

/var/lib/dhcpd/dhcpd.leases   是dhcp服務器的租約文件(記錄客戶機從服務器獲取的IP地址信息)

/var/lib/dhcpd/dhcpd6.leases

4.編輯dhcpd.conf配置文件

rpm  -qc  dhcp

cat   /etc/dhcp/dhcpd.conf

cat /usr/share/doc/dhcp*/dhcpd.conf.example

vim   /etc/dhcp/dhcpd.conf

subnet 192.168.11.0 netmask 255.255.255.0 {

  range 192.168.11.26 192.168.11.30;

  option domain-name-servers 8.8.8.8;

  option domain-name "qf.com";

  option routers 192.168.11.2;

  option broadcast-address 192.168.11.255;

  default-lease-time 6000;

  max-lease-time 72000;

  next-server 192.168.11.11;

  filename "pxelinux.0";

}

定義網絡地址和子網掩碼

指定IP地址池的範圍(起始和截止IP)

域名解析服務器的IP地址

域名

網關IP地址

廣播地址

默認租約時間

最大租約時間

TFTP服務器的IP地址

PXE引導程序文件名

 

5.啓動dhcpd服務,允許服務開機自動啓動。

systemctl  restart   dhcpd

systemctl  enable   dhcpd

systemctl  status   dhcpd

netstat  -atunlp | grep  :67

重啓dhcpd服務

允許dhcpd服務開機自動啓動

查dhcpd服務狀態

查67號端口的網絡進程序

 

PXE客戶機測試:

1.在VMware虛擬機軟件中新建一臺名稱爲PXE0的centos7_64位系統的虛擬機。

2.給PXE0虛擬機的內存設置成1324M。

3.給PXE0虛擬機創建一個名稱爲“NOS”的快照。

4.啓動PXE0虛擬機,會發現它自動獲到了IP地址,並卡在了下圖的界面。

 

部署tftp-server服務器

1.查軟件是否已安裝:rpm  -q  tftp-server

2.安裝tftp-server服務器軟件:yum   install  -y  tftp-server

3.查配置文件列表:rpm  -qc   tftp-server

/etc/xinetd.d/tftp

4.編輯tftp配置文件

cat  /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                 = yes

        per_source              = 11

        cps                     = 100 2

        flags                   = IPv4

}

tftp服務的設置

 

套接字類型爲dgram

協議類型爲udp協議

允許等待

用戶爲root用戶

服務器程序文件名

文件共享的主目錄

將此行的yes(禁用)改爲no(啓用)

 

 

標識爲IPv4

 

5.啓動tftp服務,允許服務開機自動啓動。

systemctl  restart   tftp

systemctl  enable   tftp

systemctl  status   tftp

netstat -atulp | grep tftp

netstat  -atunlp | grep  :69

重啓tftp服務

允許tftp服務開機自動啓動

查tftp服務狀態

查網絡進程中關於tftp關鍵字的信息

查網絡進程中關於69號端口關鍵字的信息

 

6.安裝提供pxelinux.0的syslinux軟件,共享pxe引導程序文件。

rpm  -q  syslinux  mlocate

yum  install  -y  syslinux  mlocate

updatedb

locate  pxelinux.0

查軟件是否已安裝

安裝指定的軟件

更新locate文件查找數據庫

查找pxelinux.0文件

共享指定的文件到/var/lib/tftpboot目錄中


cd   /var/lib/tftpboot

cp  -v  /usr/share/syslinux/pxelinux.0   ./

df  -hT

cp  -v  /dvd/isolinux/*    ./

mkdir  -v  pxelinux.cfg

cp  -v  isolinux.cfg   pxelinux.cfg/default 

切換到tftp-server的默認共享目錄

複製指定的文件到當前目錄中

查看磁盤空間使用狀態

複製光盤掛載點目錄中指定的文件到當前目錄中

在當前目錄中創建pxelinux.cfg目錄

複製指定的文件到指定目錄中並改名爲default

 

/var/lib/tftpboot目錄中的文件功能簡介:

/var/lib/tftpboot

├── boot.cat

├── boot.msg

├── grub.conf

├── initrd.img

├── isolinux.bin

├── isolinux.cfg

├── memtest

├── pxelinux.0

├── pxelinux.cfg

│   └── default

├── splash.png

├── TRANS.TBL

├── vesamenu.c32

└── vmlinuz

tftp服務的默認共享目錄

 

 

 

linux系統鏡像文件(即迷你版的linux系統)

 

 

 

pxe的引導程序文件

pxe啓動菜單的配置文件目錄

PXE啓動菜單(即centos的安裝界面菜單)

安裝界面的黑色背景圖片

 

pxe的32位菜單管理程序

pxe啓動的linux內核文件

 

PXE客戶機測試:

重啓PXE0虛擬機,會發現它自動獲到了IP地址,並卡在了下圖的界面。


文件共享服務器部署

       可用軟件:vsftpd、nfs、samba、httpd

 

以vsftpd爲例來部署:

1.查軟件是否已安裝:rpm  -q  vsftpd

2.安裝tftp-server服務器軟件:yum   install  -y  vsftpd

3.查配置文件列表:rpm  -qc   vsftpd

4.啓動vsftpd服務,允許開機自動啓動服務

systemctl  restart  vsftpd

systemctl  enable  vsftpd

systemctl  status  vsftpd
netstat  -atunlp | grep  :21     lsof  -i  :21

 

5.共享centos7的系統鏡像到/var/ftp/dvd目錄

mkdir  -v  /var/ftp/dvd

mount  /dev/sr0   /var/ftp/dvd

 

6.修改/var/lib/tftpboot/pxelinux.cfg/default啓動菜單文件內容

vim   /var/lib/tftpboot/pxelinux.cfg/default  修改內容如下

61 label linux

 62   menu label ^Install CentOS 7

 63   kernel vmlinuz

 64   append initrd=initrd.img inst.stage2=hd:LABEL=CentOS\x207\x20x86_64 quiet  找到此行

修改64行內容爲append initrd=initrd.img  method=ftp://192.168.11.11/dvd

 

PXE客戶機測試:

1.重啓PXE0虛擬機,等待自動進入系統安裝菜單界面。

2.在安裝菜單界面用方向鍵選擇第1個菜單,按Tab鍵顯示菜單的內容,此時可以看到如下圖所示的內容。

 

3.在第1個菜單界面上直接按回車鍵,等待安裝程序的啓動,直到進入下圖所示的界面。

 

kickstart自動安裝功能

採用kickstart自動應答程序來實現系統的自動化安裝(即靜默安裝)

 

方法:使用kickstart程序或vim來創建ks.cfg自動應答文件。用文件共享服務來共享ks.cfg自動應答文件。

 

技巧:linux系統在安裝時會自動生成一個anaconda-ks.cfg配置文件,文件位於/root目錄中,anaconda-ks.cfg裏面記錄的就是用戶在安裝系統時所做的操作(選擇語言環境、硬盤分區、安裝的軟件包、網卡IP設置、主機名、root用戶密碼、新建普通用戶等)。

 

具體實施:

1.修改/root/anaconda-ks.cfg權限爲644,複製/root/anaconda-ks.cfg到/var/ftp/ks目錄中。

cd

chmod  -v  644  anaconda-ks.cfg

mkdir  -v  /var/ftp/ks

cp  -v  anaconda-ks.cfg  /var/ftp/ks/ks.cfg

 

2.修改/var/lib/tftpboot/pxelinux.cfg/default啓動菜單文件

vim  /var/lib/tftpboot/pxelinux.cfg/default 

61 label linux  標籤爲linux

62   menu label ^Install CentOS 7   菜單標籤爲Install CentOS 7

63   menu default    添加此行,設置爲默認菜單

64   kernel vmlinuz     指定系統內核文件名爲vmlinuz文件

修改64行內容爲append  initrd=initrd.img  method=ftp://192.168.11.11/dvd  ks=ftp://192.168.11.11/ks/ks.cfg

66   #menu default  用#號註釋掉此行

說明:ks=是指定ks.cfg自動安裝應答文件的功能選項。

 

3.修改/var/ftp/ks/ks.cfg文件內容。

cat  /var/ftp/ks/ks.cfg    查看ks.cfg自動應答文件


#version=DEVEL系統版本號爲DEVEL開發版

# System authorization information系統認證信息,即指定系統密碼加密方式爲sha512加密算法

auth --enableshadow --passalgo=sha512

# Use CDROM installation media使用CDROM光盤安裝媒體

cdrom

# Use graphical install使用圖形安裝界面進行系統安裝,此處可用graphical圖形、也可用text文本方式。

graphical

# Run the Setup Agent on first boot運行設置代理在第1次啓動時

firstboot --enable

ignoredisk --only-use=sda

# Keyboard layouts鍵盤佈局

keyboard --vckeymap=cn --xlayouts='cn'

# System language系統語言環境

lang zh_CN.UTF-8

 

# Network information網絡信息,包括IP地址獲取方式(static或dhcp)、網關、device網卡設備名、nameserver域名解析服務器IP地址、netmask子網掩碼、IPv6的IP地址等。

network  --bootproto=static --device=ens33 --gateway=192.168.11.2 --ip=192.168.11.11 --nameserver=114.114.114.114,8.8.8.8 --netmask=255.255.255.0 --ipv6=auto --activate

network  --hostname=localhost.localdomain

 

# Root password――指定root用戶的登錄密碼,是加密後的密碼

rootpw --iscrypted $6$6vsqEcQaDu/y9CkV$1ZSy74HR1mxG.i0xBiUALwywaWCx2zgbWx5QRbJ2Nskck.29C2UxjXIr5jM6LatiaKtip7nvnQ2B5xrype.pA.

# System services系統服務,以下是允許chronyd網絡時間服務開機自動啓動

services --enabled="chronyd"

# System timezone系統時區,新建普通用戶jin並設置登錄密碼

timezone Asia/Shanghai --isUtc

user --groups=wheel --name=jin --password=$6$MHU28rsP7sGGkw7s$JaqYHxDXAHmQaEHS33Py7kvnrKtfMnFp8HqlGw3xy6PAo1dtkxeKOGpi2Yg9UqXJqDLnTjsBkauRekkPYycvt/ --iscrypted --gecos="jin"

# X Window System configuration information――x window系統配置

xconfig  --startxonboot

# System bootloader configuration系統引導程序配置

bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda

# Partition clearing information分區表清除信息

clearpart --none --initlabel

# Disk partitioning information磁盤分區表信息

#創建名稱爲pv.157這個PV,在sda硬盤上,容量大小爲50175兆

part pv.157 --fstype="lvmpv" --ondisk=sda --size=50175

#創建/boot分區,文件系統類型爲xfs,在sda硬盤上,容量大小爲1024兆

part /boot --fstype="xfs" --ondisk=sda --size=1024

#創建名稱爲centos的VG卷組,PE大小爲4096K,在pv.157這個PV中創建

volgroup centos --pesize=4096 pv.157

#創建/根的邏輯卷,文件系統類型爲xfs,最大容量爲51200兆,初始容量大小爲1024兆,邏輯卷名稱爲root,組卷名稱爲centos

logvol /  --fstype="xfs" --grow --maxsize=51200 --size=1024 --name=root --vgname=centos

logvol swap  --fstype="swap" --size=2048 --name=swap --vgname=centos

 

#設置需要安裝的軟件包和軟件包分組

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@dial-up

@directory-client

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@java-platform

@multimedia

@network-file-system-client

@networkmanager-submodules

@print-client

@x11

chrony

kexec-tools

 

%end

 

%addon com_redhat_kdump --enable --reserve-mb='auto'

 

%end

 

%anaconda

pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty

pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok

pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty

%end




 

採用kickstart軟件來生成ks.cfg自動應答文件。

yum  search  kickstart   搜索kickstart關鍵字的軟件

yum  install  -y  system-config-kickstart   安裝kickstart軟件包

system-config-kickstart   啓動kickstart配置程序,如下圖所示:

問題:上左圖中的“軟件包選擇”界面會出現下圖所示的錯誤:問題的原因是yum源的repo文件中的“倉庫標識”必須用[development]

修改yum源配置文件:

vim   /etc/yum.repos.d/local.repo   文件內容如下

[development]

name=centos 7.5  linux

baseurl=file:///dvd

enabled=1

gpgcheck=0

 

修改yum源配置文件之後,再次執行system-config-kickstart看“軟件包選擇”功能的結果圖:



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章