使用 PXE+Kickstart 無人值守安裝服務(wù)

? ??????剛?cè)肼毜倪\(yùn)維新手經(jīng)常會(huì)被要求去做一些安裝操作系統(tǒng)的工作。如果按照第 1 章講解的用光盤鏡像來安裝操作系統(tǒng)乖订,其效率會(huì)相當(dāng)?shù)拖隆1菊聦⒔榻B可以實(shí)現(xiàn)無人值守安裝服務(wù)的PXE+Kickstart 服務(wù)程序送漠,并帶領(lǐng)大家動(dòng)手安裝部署 PXE + TFTP + FTP + DHCP + Kickstart 等服務(wù)程序逆皮,從而搭建出一套可批量安裝 Linux 系統(tǒng)的無人值守安裝系統(tǒng)。在學(xué)完本章內(nèi)容之后啊楚,運(yùn)維新手就可以避免枯燥乏味的重復(fù)性工作吠冤,大大提供系統(tǒng)安裝的效率。

? ? ? ? 一恭理、無人值守安裝系統(tǒng)

? ??????本書在前面章節(jié)講解了使用光盤鏡像來安裝 Linux 系統(tǒng)的方法拯辙, 坦白講, 該方法適用于只安裝少量 Linux 系統(tǒng)的情況颜价。如果生產(chǎn)環(huán)境中有數(shù)百臺(tái)服務(wù)器都需要安裝系統(tǒng)涯保,這種方式就不合時(shí)宜了。這時(shí)周伦,我們就需要使用 PXE + TFTP +FTP + DHCP + Kickstart 服務(wù)搭建出一個(gè)無人值守安裝系統(tǒng)遭赂。 這種無人值守安裝系統(tǒng)可以自動(dòng)地為數(shù)十臺(tái)服務(wù)器安裝系統(tǒng), 這一方面將運(yùn)維人員從重復(fù)性的工作中解救出來横辆,也大大提升了系統(tǒng)安裝的效率。

無人值守安裝系統(tǒng)的工作流程

? ??????PXE(Preboot eXecute Environment茄猫,預(yù)啟動(dòng)執(zhí)行環(huán)境)是由 Intel 公司開發(fā)的技術(shù)狈蚤,可以讓計(jì)算機(jī)通過網(wǎng)絡(luò)來啟動(dòng)操作系統(tǒng)(前提是計(jì)算機(jī)上安裝的網(wǎng)卡支持 PXE 技術(shù)) ,主要用于在無人值守安裝系統(tǒng)中引導(dǎo)客戶端主機(jī)安裝 Linux 操作系統(tǒng)划纽。Kickstart 是一種無人值守的安裝方式脆侮,其工作原理是預(yù)先把原本需要運(yùn)維人員手工填寫的參數(shù)保存成一個(gè)ks.cfg 文件,當(dāng)安裝過程中需要填寫參數(shù)時(shí)則自動(dòng)匹配 Kickstart 生成的文件勇劣。所以只要Kickstart 文件包含了安裝過程中需要人工填寫的所有參數(shù)靖避,那么從理論上來講完全不需要運(yùn)維人員的干預(yù)潭枣,就可以自動(dòng)完成安裝工作。TFTP幻捏、FTP 以及 DHCP 服務(wù)程序的配置與部署已經(jīng)在之前章節(jié)進(jìn)行了詳細(xì)講解盆犁,這里不再贅述。

? ??????由于當(dāng)前的客戶端主機(jī)并沒有完整的操作系統(tǒng)篡九,也就不能完成 FTP 協(xié)議的驗(yàn)證了谐岁,所以需要使用 TFTP 協(xié)議幫助客戶端獲取引導(dǎo)及驅(qū)動(dòng)文件。 vsftpd 服務(wù)程序用于將完整的系統(tǒng)安裝鏡像通過網(wǎng)絡(luò)傳輸給客戶端榛臼。當(dāng)然伊佃,只要能將系統(tǒng)安裝鏡像成功傳輸給客戶端即可,因此也可以使用 httpd 來替代 vsftpd 服務(wù)程序沛善。

? ? ? ? 二航揉、部署相關(guān)服務(wù)程序

? ? ? ? 1.配置 DHCP 服務(wù)程序

? ??????DHCP 服務(wù)程序用于為客戶端主機(jī)分配可用的 IP 地址,而且這是服務(wù)器與客戶端主機(jī)進(jìn)行文件傳輸?shù)幕A(chǔ)金刁,因此我們先行配置 DHCP 服務(wù)程序帅涂。首先按照下表為無人值守系統(tǒng)設(shè)置 IP 地址, 然后按照之后兩圖在虛擬機(jī)的虛擬網(wǎng)絡(luò)編輯器中關(guān)閉自身的 DHCP 服務(wù)胀葱。

? ??????????????????????????????????????????????無人值守系統(tǒng)與客戶端的設(shè)置

? ??????????主機(jī)名稱? ??? ??????????????????????????????????操作系統(tǒng)? ??? ??????????????????????????????????IP地址

????????????無人值守系統(tǒng) ???????????????????????????????? CentOS 7 ???????????????????????????????? 192.168.10.10

????????????客戶端主機(jī)? ????????????????????????????????????未安裝操作系統(tǒng)? ????????????????????????????????-

打開虛擬機(jī)的虛擬網(wǎng)絡(luò)編輯器
關(guān)閉虛擬機(jī)自帶的 DHCP 服務(wù)

? ??????當(dāng)掛載好光盤鏡像并把 Yum 倉庫文件配置妥當(dāng)后漠秋,就可以安裝 DHCP 服務(wù)程序軟件包了。

# yum install dhcp

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

? ? ? ? ? ? ? : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package dhcp.x86_64 12:4.2.5-68.el7.centos.1 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package? ? Arch? ? ? ? ? Version? ? ? ? ? ? ? ? ? ? ? ? ? ? Repository? Size

====================================================================

Installing:

dhcp? ? ? ? x86_64? ? ? ? 12:4.2.5-68.el7.centos.1? ? ? ? ? base? ? ? ? 513 k

Transaction Summary

====================================================================

Install? 1 Package

Total download size: 513 k

Installed size: 1.4 M

Is this ok [y/d/N]: y

Downloading packages:

dhcp-4.2.5-68.el7.centos.1.x86_64.rpm? ? ? ? ? ? ? ? ? ? ? | 513 kB? 00:01? ?

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

? Installing : 12:dhcp-4.2.5-68.el7.centos.1.x86_64? ? ? ? ? ? ? ? ? ? ? ? 1/1

? Verifying? : 12:dhcp-4.2.5-68.el7.centos.1.x86_64? ? ? ? ? ? ? ? ? ? ? ? 1/1

Installed:

? dhcp.x86_64 12:4.2.5-68.el7.centos.1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Complete!

? ? ? ? 之前章節(jié)已經(jīng)詳細(xì)講解了 DHCP 服務(wù)程序的配置以及部署方法抵屿,相信各位讀者對(duì)相關(guān)的配置參數(shù)還有一些印象庆锦。 但是, 我們?cè)谶@里使用的配置文件與之前章節(jié)中的配置文件有兩個(gè)主要區(qū)別:允許了 BOOTP 引導(dǎo)程序協(xié)議轧葛,旨在讓局域網(wǎng)內(nèi)暫時(shí)沒有操作系統(tǒng)的主機(jī)也能獲取靜態(tài) IP地址搂抒; 在配置文件的最下面加載了引導(dǎo)驅(qū)動(dòng)文件 pxelinux.0 (這個(gè)文件會(huì)在下面的步驟中創(chuàng)建) ,其目的是讓客戶端主機(jī)獲取到 IP 地址后主動(dòng)獲取引導(dǎo)驅(qū)動(dòng)文件尿扯,自行進(jìn)入下一步的安裝過程求晶。

# vim /etc/dhcp/dhcpd.conf

allow booting;

allow bootp;

ddns-update-style interim;

ignore client-updates;

subnet 192.168.10.0 netmask 255.255.255.0 {

????option subnet-mask 255.255.255.0;

????option domain-name-servers 192.168.10.10;

????range dynamic-bootp 192.168.10.100 192.168.10.200;

????default-lease-time 21600;

????max-lease-time 43200;

????next-server 192.168.10.10;

????filename "pxelinux.0";

}

? ??????在確認(rèn) DHCP 服務(wù)程序的參數(shù)都填寫正確后, 重新啟動(dòng)該服務(wù)程序衷笋, 并將其添加到開機(jī)啟動(dòng)項(xiàng)中芳杏。這樣在設(shè)備下一次重啟之后,在無須人工干預(yù)的情況下辟宗,自動(dòng)為客戶端主機(jī)安裝系統(tǒng)爵赵。

# systemctl restart dhcpd

# systemctl enable dhcpd

Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.

? ? ? ? 2.配置 TFTP 服務(wù)程序

? ??????我們?cè)?jīng)在之前章節(jié)中學(xué)習(xí)過 vsftpd 服務(wù)與 TFTP 服務(wù)。vsftpd 是一款功能豐富的文件傳輸服務(wù)程序泊脐,允許用戶以匿名開放模式空幻、本地用戶模式、虛擬用戶模式來進(jìn)行訪問認(rèn)證容客。但是秕铛,當(dāng)前的客戶端主機(jī)還沒有安裝操作系統(tǒng)约郁,該如何進(jìn)行登錄認(rèn)證呢?而 TFTP 作為一種基于 UDP 協(xié)議的簡單文件傳輸協(xié)議但两,不需要進(jìn)行用戶認(rèn)證即可獲取到所需的文件資源鬓梅。因此接下來配置 TFTP 服務(wù)程序,為客戶端主機(jī)提供引導(dǎo)及驅(qū)動(dòng)文件镜遣。當(dāng)客戶端主機(jī)有了基本的驅(qū)動(dòng)程序之后己肮,再通過 vsftpd 服務(wù)程序?qū)⑼暾墓獗P鏡像文件傳輸過去。

# yum install tftp-server xinetd

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

? ? ? ? ? ? ? : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package tftp-server.x86_64 0:5.2-22.el7 will be installed

---> Package xinetd.x86_64 2:2.3.15-13.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package? ? ? ? ? ? Arch? ? ? ? ? Version? ? ? ? ? ? ? ? ? Repository? ? Size

====================================================================

Installing:

tftp-server? ? ? ? x86_64? ? ? ? 5.2-22.el7? ? ? ? ? ? ? base? ? ? ? ? 47 k

xinetd? ? ? ? ? ? ? x86_64? ? ? ? 2:2.3.15-13.el7? ? ? ? ? base? ? ? ? 128 k

Transaction Summary

====================================================================

Install? 2 Packages

Total download size: 175 k

Installed size: 325 k

Is this ok [y/d/N]: y

Downloading packages:

(1/2): xinetd-2.3.15-13.el7.x86_64.rpm? ? ? ? ? ? ? ? ? ? | 128 kB? 00:00? ?

(2/2): tftp-server-5.2-22.el7.x86_64.rpm? ? ? ? ? ? ? ? ? |? 47 kB? 00:03? ?

--------------------------------------------------------------------------------

Total? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 49 kB/s | 175 kB? 00:03? ?

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

? Installing : 2:xinetd-2.3.15-13.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/2

? Installing : tftp-server-5.2-22.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2/2

? Verifying? : tftp-server-5.2-22.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/2

? Verifying? : 2:xinetd-2.3.15-13.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2/2

Installed:

? tftp-server.x86_64 0:5.2-22.el7? ? ? ? xinetd.x86_64 2:2.3.15-13.el7? ? ? ?

Complete!

? ??????TFTP 是一種非常精簡的文件傳輸服務(wù)程序悲关,它的運(yùn)行和關(guān)閉是由 xinetd 網(wǎng)絡(luò)守護(hù)進(jìn)程服務(wù)來管理的谎僻。xinetd 服務(wù)程序會(huì)同時(shí)監(jiān)聽系統(tǒng)的多個(gè)端口,然后根據(jù)用戶請(qǐng)求的端口號(hào)調(diào)取相應(yīng)的服務(wù)程序來響應(yīng)用戶的請(qǐng)求寓辱。需要開啟 TFTP 服務(wù)程序艘绍,只需在 xinetd 服務(wù)程序的配置文件中把 disable 參數(shù)改成 no 就可以了。 保存配置文件并退出秫筏, 然后重啟 xinetd服務(wù)程序诱鞠,并將其加入到開機(jī)啟動(dòng)項(xiàng)中(在 RHEL 7 系統(tǒng)中,已經(jīng)默認(rèn)啟用了 xinetd 服務(wù)程序这敬,因此在將其添加到開機(jī)啟動(dòng)項(xiàng)中的時(shí)候沒有輸出信息屬于正常情況) 航夺。

# vim /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

????????per_source = 11

????????cps = 100 2

????????flags = IPv4

}

# yum install tftp

? ? ? ? 測(cè)試tftp:

# tftp 192.168.10.10

tftp> get vmlinuz

tftp> quit

[root@linuxprobe ~]# ls

anaconda-ks.cfg? Documents vmlinuz

? ? ? ? 如果成功獲取vmlinuz文件,表示成功崔涂。

# systemctl restart xinetd

# systemctl enable xinetd

? ??????TFTP 服務(wù)程序默認(rèn)使用的是 UDP 協(xié)議阳掐,占用的端口號(hào)為 69,所以在生產(chǎn)環(huán)境中還需要在 firewalld 防火墻管理工具中寫入使其永久生效的允許策略冷蚂,以便讓客戶端主機(jī)順利獲取到引導(dǎo)文件缭保。

# firewall-cmd --permanent --add-port=69/udp

success

# firewall-cmd --reload

success

? ? ? ? 3.配置 SYSLinux 服務(wù)程序

? ??????SYSLinux 是一個(gè)用于提供引導(dǎo)加載的服務(wù)程序。與其說 SYSLinux 是一個(gè)服務(wù)程序蝙茶,不如說更需要里面的引導(dǎo)文件艺骂,在安裝好 SYSLinux 服務(wù)程序軟件包后,/usr/share/syslinux 目錄中會(huì)出現(xiàn)很多引導(dǎo)文件隆夯。

# yum install syslinux

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

? ? ? ? ? ? ? : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package syslinux.x86_64 0:4.05-15.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package? ? ? ? ? ? Arch? ? ? ? ? ? Version? ? ? ? ? ? ? Repository? ? ? Size

====================================================================

Installing:

syslinux? ? ? ? ? x86_64? ? ? ? ? 4.05-15.el7? ? ? ? ? base? ? ? ? ? 990 k

Transaction Summary

====================================================================

Install? 1 Package

Total download size: 990 k

Installed size: 2.3 M

Is this ok [y/d/N]: y

Downloading packages:

syslinux-4.05-15.el7.x86_64.rpm? ? ? ? ? ? ? ? ? ? ? ? ? ? | 990 kB? 00:01? ?

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

? Installing : syslinux-4.05-15.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1

? Verifying? : syslinux-4.05-15.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1

Installed:

? syslinux.x86_64 0:4.05-15.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Complete!

? ??????我們首先需要把 SYSLinux 提供的引導(dǎo)文件復(fù)制到 TFTP 服務(wù)程序的默認(rèn)目錄中钳恕,也就是前文提到的文件 pxelinux.0,這樣客戶端主機(jī)就能夠順利地獲取到引導(dǎo)文件了蹄衷。另外在 RHEL 7 系統(tǒng)光盤鏡像中也有一些我們需要調(diào)取的引導(dǎo)文件忧额。 確認(rèn)光盤鏡像已經(jīng)被掛載到/media/cdrom 目錄后,使用復(fù)制命令將光盤鏡像中自帶的一些引導(dǎo)文件也復(fù)制到 TFTP 服務(wù)程序的默認(rèn)目錄中宦芦。

# cd /var/lib/tftpboot

# cp /usr/share/syslinux/pxelinux.0 .

# cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .

# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .

? ??????然后在 TFTP 服務(wù)程序的目錄中新建 pxelinux.cfg 目錄,雖然該目錄的名字帶有后綴轴脐,但依然也是目錄调卑, 而非文件抡砂! 將系統(tǒng)光盤中的開機(jī)選項(xiàng)菜單復(fù)制到該目錄中, 并命名為 default恬涧。這個(gè) default 文件就是開機(jī)時(shí)的選項(xiàng)菜單注益,如下圖所示。

Linux 系統(tǒng)的引導(dǎo)菜單界面

# mkdir pxelinux.cfg

# cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

????????默認(rèn)的開機(jī)菜單中有兩個(gè)選項(xiàng)溯捆,要么是安裝系統(tǒng)丑搔,要么是對(duì)安裝介質(zhì)進(jìn)行檢驗(yàn)。既然我們已經(jīng)確定采用無人值守的方式安裝系統(tǒng)提揍,還需要為每臺(tái)主機(jī)手動(dòng)選擇相應(yīng)的選項(xiàng)啤月,未免與我們的主旨(無人值守安裝)相悖±驮荆現(xiàn)在我們編輯這個(gè) default 文件谎仲,把第 1 行的 default 參數(shù)修改為 linux,這樣系統(tǒng)在開機(jī)時(shí)就會(huì)默認(rèn)執(zhí)行那個(gè)名稱為 linux 的選項(xiàng)了刨仑。對(duì)應(yīng)的 linux 選項(xiàng)大約在 64 行郑诺, 我們將默認(rèn)的光盤鏡像安裝方式修改成 FTP 文件傳輸方式, 并指定好光盤鏡像的獲取網(wǎng)址以及 Kickstart 應(yīng)答文件的獲取路徑:

# vim pxelinux.cfg/default

1 default linux

2 timeout 600

3

4 display boot.msg

5

6 # Clear the screen when exiting the menu, instead of leaving the menu displa yed.

7 # For vesamenu, this means the graphical background is still displayed witho ut

8 # the menu itself for as long as the screen remains in graphics mode.

9 menu clear

10 menu background splash.png

11 menu title Red Hat Enterprise Linux 7.0

12 menu vshift 8

13 menu rows 18

14 menu margin 8

15 #menu hidden

16 menu helpmsgrow 15

17 menu tabmsgrow 13

18

19 # Border Area

20 menu color border * #00000000 #00000000 none

21

22 # Selected item

23 menu color sel 0 #ffffffff #00000000 none

24

25 # Title bar

26 menu color title 0 #ff7ba3d0 #00000000 none

27

28 # Press [Tab] message

29 menu color tabmsg 0 #ff3a6496 #00000000 none

30

31 # Unselected menu item

32 menu color unsel 0 #84b8ffff #00000000 none

33

34 # Selected hotkey

35 menu color hotsel 0 #84b8ffff #00000000 none

36

37 # Unselected hotkey

38 menu color hotkey 0 #ffffffff #00000000 none

39

40 # Help text

41 menu color help 0 #ffffffff #00000000 none

42

43 # A scrollbar of some type? Not sure.

44 menu color scrollbar 0 #ffffffff #ff355594 none

45

46 # Timeout msg

47 menu color timeout 0 #ffffffff #00000000 none

48 menu color timeout_msg 0 #ffffffff #00000000 none

49

50 # Command prompt text

51 menu color cmdmark 0 #84b8ffff #00000000 none

52 menu color cmdline 0 #ffffffff #00000000 none

53

54 # Do not display the actual menu unless the user presses a key. All that is

displayed is a timeout message.

55

56 menu tabmsg Press Tab for full configuration options on menu items.

57

58 menu separator # insert an empty line

59 menu separator # insert an empty line

59 menu separator # insert an empty line

60

61 label linux

62 menu label ^Install Red Hat Enterprise Linux 7.0

63 kernel vmlinuz

64 append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg quiet

65

………………省略部分輸出信息………………

? ? ? ? 4.配置 vsftpd 服務(wù)程序

? ??????在我們這套無人值守安裝系統(tǒng)的服務(wù)中杉武, 光盤鏡像是通過 FTP 協(xié)議傳輸?shù)模?因此勢(shì)必要用到 vsftpd 服務(wù)程序辙诞。當(dāng)然,也可以使用 httpd 服務(wù)程序來提供 Web 網(wǎng)站訪問的方式轻抱,只要能確保將光盤鏡像順利傳輸給客戶端主機(jī)即可飞涂。如果打算使用 Web 網(wǎng)站服務(wù)來提供光盤鏡像,一定記得將上面配置文件中的光盤鏡像獲取網(wǎng)址和 Kickstart 應(yīng)答文件獲取網(wǎng)址修改一下十拣。

# yum install vsftpd

Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos,

? ? ? ? ? ? ? : subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Loading mirror speeds from cached hostfile

Resolving Dependencies

--> Running transaction check

---> Package vsftpd.x86_64 0:3.0.2-25.el7 will be installed

--> Finished Dependency Resolution

Dependencies Resolved

====================================================================

Package? ? ? ? ? Arch? ? ? ? ? ? Version? ? ? ? ? ? ? ? Repository? ? ? Size

====================================================================

Installing:

vsftpd? ? ? ? ? x86_64? ? ? ? ? 3.0.2-25.el7? ? ? ? ? ? base? ? ? ? ? 171 k

Transaction Summary

====================================================================

Install? 1 Package

Total download size: 171 k

Installed size: 353 k

Is this ok [y/d/N]: y

Downloading packages:

vsftpd-3.0.2-25.el7.x86_64.rpm? ? ? ? ? ? ? ? ? ? ? ? ? ? | 171 kB? 00:03? ?

Running transaction check

Running transaction test

Transaction test succeeded

Running transaction

? Installing : vsftpd-3.0.2-25.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1

? Verifying? : vsftpd-3.0.2-25.el7.x86_64? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1/1

Installed:

? vsftpd.x86_64 0:3.0.2-25.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

Complete!

# yum install ftp

? ? ? ? 測(cè)試ftp:

# ftp 192.168.10.10

Connected to 192.168.10.10 (192.168.10.10).

220 (vsFTPd 3.0.2)

Name (192.168.10.10:root): anonymous

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls

227 Entering Passive Mode (192,168,10,10,77,117).

150 Here comes the directory listing.

dr-xr-xr-x? ? 3 0? ? ? ? 0? ? ? ? ? ? ? 17 Aug 20 08:24 EFI

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 8266 Aug 20 08:24 EULA

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? 18092 Aug 20 08:24 GPL

dr-xr-xr-x? ? 2 0? ? ? ? 0? ? ? ? ? ? ? 41 Aug 20 08:24 LiveOS

dr-xr-xr-x? ? 2 0? ? ? ? 0? ? ? ? ? 225280 Aug 20 08:26 Packages

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 3375 Aug 20 08:27 RPM-GPG-KEY-redhat-beta

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 3211 Aug 20 08:27 RPM-GPG-KEY-redhat-release

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 1568 Aug 20 08:27 TRANS.TBL

dr-xr-xr-x? ? 4 0? ? ? ? 0? ? ? ? ? ? ? 52 Aug 20 08:24 addons

dr-xr-xr-x? ? 3 0? ? ? ? 0? ? ? ? ? ? ? 54 Aug 20 08:24 images

dr-xr-xr-x? ? 2 0? ? ? ? 0? ? ? ? ? ? 4096 Aug 20 08:24 isolinux

-r--r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 108 Aug 20 08:25 media.repo

drwxr-xr-x? ? 2 0? ? ? ? 0? ? ? ? ? ? ? 19 Aug 22 02:12 pub

dr-xr-xr-x? 24 0? ? ? ? 0? ? ? ? ? ? 4096 Aug 20 08:27 release-notes

dr-xr-xr-x? ? 2 0? ? ? ? 0? ? ? ? ? ? 4096 Aug 20 08:27 repodata

226 Directory send OK.

ftp> cd pub

250 Directory successfully changed.

ftp> ls

227 Entering Passive Mode (192,168,10,10,22,168).

150 Here comes the directory listing.

-rw-r--r--? ? 1 0? ? ? ? 0? ? ? ? ? ? 1291 Aug 20 08:36 ks.cfg

226 Directory send OK.

ftp> quit

221 Goodbye.

# systemctl restart vsftpd

# systemctl enable vsftpd

Created symlink from /etc/systemd/system/multi-user.target.wants/vsftpd.service to /usr/lib/systemd/system/vsftpd.service.

? ??????在確認(rèn)系統(tǒng)光盤鏡像已經(jīng)正常掛載到/media/cdrom 目錄后封拧, 把目錄中的光盤鏡像文件全部復(fù)制到 vsftpd 服務(wù)程序的工作目錄中。

# cp -r /media/cdrom/* /var/ftp

? ??????這個(gè)過程大約需要 3~5 分鐘夭问。在此期間泽西,我們也別閑著,在 firewalld 防火墻管理工具中寫入使 FTP 協(xié)議永久生效的允許策略缰趋,然后在 SELinux 中放行 FTP 傳輸:

# firewall-cmd --permanent --add-service=ftp

success

# firewall-cmd --reload

success

# setsebool -P ftpd_connect_all_unreserved=on

? ? ? ? 5.創(chuàng)建 KickStart 應(yīng)答文件

? ??????畢竟捧杉,我們使用 PXE + Kickstart 部署的是一套“無人值守安裝系統(tǒng)服務(wù)” ,而不是“無人值守傳輸系統(tǒng)光盤鏡像服務(wù)” 秘血, 因此還需要讓客戶端主機(jī)能夠一邊獲取光盤鏡像味抖, 還能夠一邊自動(dòng)幫我們填寫好安裝過程中出現(xiàn)的選項(xiàng)。簡單來說灰粮,如果生產(chǎn)環(huán)境中有 100 臺(tái)服務(wù)器仔涩,它們需要安裝相同的系統(tǒng)環(huán)境,那么在安裝過程中單擊的按鈕和填寫的信息也應(yīng)該都是相同的粘舟。那么熔脂,為什么不創(chuàng)建一個(gè)類似于備忘錄的需求清單呢佩研?這樣,在無人值守安裝系統(tǒng)時(shí)霞揉,可以從這個(gè)需求清單中找到相應(yīng)的選項(xiàng)值旬薯,從而免去了手動(dòng)輸入之苦,更重要的是适秩,也徹底解放了人的干預(yù)绊序,徹底實(shí)現(xiàn)無人值守自動(dòng)安裝系統(tǒng),而不是單純地傳輸系統(tǒng)光盤鏡像秽荞。

? ??????有了上文做鋪墊骤公,相信大家現(xiàn)在應(yīng)該可以猜到 Kickstart 其實(shí)并不是一個(gè)服務(wù)程序,而是一個(gè)應(yīng)答文件了蚂会。是的淋样!Kickstart 應(yīng)答文件中包含了系統(tǒng)安裝過程中需要使用的選項(xiàng)和參數(shù)信息,系統(tǒng)可以自動(dòng)調(diào)取這個(gè)應(yīng)答文件的內(nèi)容胁住,從而徹底實(shí)現(xiàn)了無人值守安裝系統(tǒng)趁猴。那么,既然這個(gè)文件如此重要彪见,該去哪里找呢儡司?其實(shí)在 root 管理員的家目錄中有一個(gè)名為 anaconda-ks.cfg 的文件,它就是應(yīng)答文件余指。下面將這個(gè)文件復(fù)制到 vsftpd 服務(wù)程序的工作目錄中(在開機(jī)選項(xiàng)菜單的配置文件中已經(jīng)定義了該文件的獲取路徑捕犬,也就是 vsftpd 服務(wù)程序數(shù)據(jù)目錄中的 pub 子目錄中) 。使用 chmod 命令設(shè)置該文件的權(quán)限酵镜,確保所有人都有可讀的權(quán)限碉碉,以保證客戶端主機(jī)可以順利獲取到應(yīng)答文件及里面的內(nèi)容:

# cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg

# chmod +r /var/ftp/pub/ks.cfg

? ??????Kickstart 應(yīng)答文件并沒有想象中的那么復(fù)雜,它總共只有 46 行左右的參數(shù)和注釋內(nèi)容淮韭,大家完全可以通過參數(shù)的名稱及介紹來快速了解每個(gè)參數(shù)的作用垢粮。在這里挑選幾個(gè)比較有代表性的參數(shù)進(jìn)行講解,其他參數(shù)建議大家自行修改測(cè)試靠粪。

????????首先把第 6 行的光盤鏡像安裝方式修改成 FTP 協(xié)議蜡吧,仔細(xì)填寫好 FTP 服務(wù)器的 IP 地址,并用本地瀏覽器嘗試打開下檢查有沒有報(bào)錯(cuò)占键。然后把第 21 行的時(shí)區(qū)修改成上海(Asia/Shanghai)昔善,最后再把 29 行的磁盤選項(xiàng)設(shè)置為清空所有磁盤內(nèi)容并初始化磁盤:

# vim /var/ftp/pub/ks.cfg

1 #version=RHEL7

2 # System authorization information

3 auth --enableshadow --passalgo=sha512

4

5 # Use CDROM installation media

6 url --url=ftp://192.168.10.10

7 # Run the Setup Agent on first boot

8 firstboot --enable

9 ignoredisk --only-use=sda

10 # Keyboard layouts

11 keyboard --vckeymap=us --xlayouts='us'

12 # System language

13 lang en_US.UTF-8

14

15 # Network information

16 network --bootproto=dhcp --device=eno16777728 --onboot=off --ipv6=auto

17 network --hostname=localhost.localdomain

18 # Root password

19 rootpw --iscrypted $6$pDjJf42g8C6pL069$iI.PX/yFaqpo0ENw2pa7MomkjLyoae2zjMz2

UZJ7b H3UO4oWtR1.Wk/hxZ3XIGmzGJPcs/MgpYssoi8hPCt8b/

20 # System timezone

21 timezone Asia/Shanghai --isUtc

22 user --name=linuxprobe --password=$6$a9v3InSTNbweIR7D$JegfYWbCdoOokj9sodEccdO.

zL F4oSH2AZ2ss2R05B6Lz2A0v2K.RjwsBALL2FeKQVgf640oa/tok6J.7GUtO/ --iscrypted --gecos =

"linuxprobe"

23 # X Window System configuration information

24 xconfig --startxonboot

25 # System bootloader configuration

26 bootloader --location=mbr --boot-drive=sda

27 autopart --type=lvm

28 # Partition clearing information

29 clearpart --all --initlabel

30

31 %packages

32 @base

33 @core

34 @desktop-debugging

35 @dial-up

36 @fonts

37 @gnome-desktop

38 @guest-agents

39 @guest-desktop-agents

40 @input-methods

41 @internet-browser

42 @multimedia

43 @print-client

44 @x11

45

46 %end

? ??????如果覺得系統(tǒng)默認(rèn)自帶的應(yīng)答文件參數(shù)較少, 不能滿足生產(chǎn)環(huán)境的需求畔乙, 則可以通過 Yum軟件倉庫來安裝 system-config-kickstart 軟件包君仆。這是一款圖形化的 Kickstart 應(yīng)答文件生成工具,可以根據(jù)自己的需求生成自定義的應(yīng)答文件,然后將生成的文件放到/var/ftp/pub 目錄中并將名字修改為 ks.cfg 即可返咱。

? ? ? ? 四氮帐、自動(dòng)部署客戶端主機(jī)

? ??????在按照上文講解的方法成功部署各個(gè)相關(guān)的服務(wù)程序后, 就可以使用 PXE + Kickstart 無人值守安裝系統(tǒng)了洛姑。在采用下面的步驟建立虛擬主機(jī)時(shí),一定要把客戶端的網(wǎng)卡模式設(shè)定成與服務(wù)端一致的“僅主機(jī)模式” 皮服,否則兩臺(tái)設(shè)備無法進(jìn)行通信楞艾,也就更別提自動(dòng)安裝系統(tǒng)了。其余硬件配置選項(xiàng)并沒有強(qiáng)制性要求龄广,大家可參考這里的配置選項(xiàng)來設(shè)定硫眯。

? ? ? ? 1.打開“新建虛擬機(jī)向?qū)А背绦颍x擇“典型(推薦) ”配置類型择同,然后單擊“下一步”按鈕两入,如下圖所示。

選擇虛擬機(jī)的配置類型

? ? ? ? 2.將虛擬機(jī)操作系統(tǒng)的安裝來源設(shè)置為“稍后安裝操作系統(tǒng)” 敲才。這樣做的目的是讓虛擬機(jī)真正從網(wǎng)絡(luò)中獲取系統(tǒng)安裝鏡像裹纳,同時(shí)也可避免 VMware Workstation 虛擬機(jī)軟件按照內(nèi)設(shè)的方法自行安裝系統(tǒng)。單擊“下一步”按鈕紧武,如下圖所示剃氧。

設(shè)置虛擬機(jī)操作系統(tǒng)的安裝來源

? ? ? ? 3.將“客戶機(jī)操作系統(tǒng)”設(shè)置為“Red Hat Enterprise Linux 7 64 位” ,然后單擊“下一步”按鈕阻星,如下圖所示朋鞍。

選擇客戶端主機(jī)的操作系統(tǒng)

? ? ? ? 4.對(duì)虛擬機(jī)進(jìn)行命名并設(shè)置安裝位置。大家可自行定義虛擬機(jī)的名稱妥箕,而安裝位置則盡量選擇磁盤空間較大的分區(qū)滥酥。然后單擊“下一步”按鈕,如下圖所示畦幢。

命名虛擬機(jī)并設(shè)置虛擬機(jī)的安裝位置

? ? ? ? 5.指定磁盤容量坎吻。這里將“最大磁盤大小”設(shè)置為 20GB,指的是虛擬機(jī)系統(tǒng)能夠使用的最大上限呛讲,而不是會(huì)被立即占滿禾怠,因此設(shè)置得稍微大一些也沒有關(guān)系。然后單擊“下一步”按鈕贝搁,如下圖所示吗氏。

將磁盤容量指定為 20GB

? ? ? ? 6.結(jié)束“新建虛擬機(jī)向?qū)С绦颉焙螅炔灰贝蜷_虛擬機(jī)系統(tǒng)雷逆。大家還需要單擊第一個(gè)圖中的“自定義硬件”按鈕弦讽,在彈出的如第二個(gè)圖所示的界面中,把“網(wǎng)絡(luò)適配器”設(shè)備同樣也設(shè)置為“僅主機(jī)模式” (這個(gè)步驟非常重要) ,然后單擊“確定”按鈕往产。

單擊虛擬機(jī)的“自定義硬件”按鈕
設(shè)置虛擬機(jī)網(wǎng)絡(luò)適配器設(shè)備為僅主機(jī)模式

? ??????現(xiàn)在被碗,我們就同時(shí)準(zhǔn)備好了 PXE + Kickstart 無人值守安裝系統(tǒng)與虛擬主機(jī)。在生產(chǎn)環(huán)境中仿村,大家只需要將配置妥當(dāng)?shù)姆?wù)器上架锐朴,接通服務(wù)器和客戶端主機(jī)之間的網(wǎng)線,然后啟動(dòng)客戶端主機(jī)即可蔼囊。接下來就會(huì)按照以下兩張圖那樣焚志,開始傳輸光盤鏡像文件并進(jìn)行自動(dòng)安裝了 — 期間完全無須人工干預(yù),直到安裝完畢時(shí)才需要運(yùn)維人員進(jìn)行簡單的初始化工作畏鼓。

自動(dòng)傳輸光盤鏡像文件并安裝系統(tǒng)
自動(dòng)安裝系統(tǒng)酱酬,無須人工干預(yù)

? ??????由此可見,當(dāng)生產(chǎn)環(huán)境工作中有數(shù)百臺(tái)服務(wù)器需要批量安裝系統(tǒng)時(shí)云矫,使用無人值守安裝系統(tǒng)的便捷性是不言而喻的膳沽。

? ? ? ? 測(cè)試成功,建議大家建造一個(gè)這樣的服務(wù)器让禀,以便在實(shí)際工作中維護(hù)使用挑社,有技術(shù)含量。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末巡揍,一起剝皮案震驚了整個(gè)濱河市滔灶,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌吼肥,老刑警劉巖录平,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異缀皱,居然都是意外死亡斗这,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門啤斗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來表箭,“玉大人,你說我怎么就攤上這事钮莲∶庾辏” “怎么了?”我有些...
    開封第一講書人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵崔拥,是天一觀的道長极舔。 經(jīng)常有香客問我,道長链瓦,這世上最難降的妖魔是什么拆魏? 我笑而不...
    開封第一講書人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任盯桦,我火速辦了婚禮,結(jié)果婚禮上渤刃,老公的妹妹穿的比我還像新娘拥峦。我一直安慰自己,他們只是感情好卖子,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開白布略号。 她就那樣靜靜地躺著,像睡著了一般洋闽。 火紅的嫁衣襯著肌膚如雪璃哟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,292評(píng)論 1 301
  • 那天喊递,我揣著相機(jī)與錄音,去河邊找鬼阳似。 笑死骚勘,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的撮奏。 我是一名探鬼主播俏讹,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼畜吊!你這毒婦竟也來了泽疆?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤玲献,失蹤者是張志新(化名)和其女友劉穎殉疼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體捌年,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡瓢娜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了礼预。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片眠砾。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖托酸,靈堂內(nèi)的尸體忽然破棺而出褒颈,到底是詐尸還是另有隱情,我是刑警寧澤励堡,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布谷丸,位于F島的核電站,受9級(jí)特大地震影響应结,放射性物質(zhì)發(fā)生泄漏淤井。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望币狠。 院中可真熱鬧游两,春花似錦、人聲如沸漩绵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽止吐。三九已至宝踪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間碍扔,已是汗流浹背瘩燥。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留不同,地道東北人厉膀。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像二拐,于是被迫代替她去往敵國和親服鹅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容