? ??????剛?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)安裝的效率。
? ??????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)? ????????????????????????????????-
? ??????當(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)菜單注益,如下圖所示。
# 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擇“典型(推薦) ”配置類型择同,然后單擊“下一步”按鈕两入,如下圖所示。
? ? ? ? 2.將虛擬機(jī)操作系統(tǒng)的安裝來源設(shè)置為“稍后安裝操作系統(tǒng)” 敲才。這樣做的目的是讓虛擬機(jī)真正從網(wǎng)絡(luò)中獲取系統(tǒng)安裝鏡像裹纳,同時(shí)也可避免 VMware Workstation 虛擬機(jī)軟件按照內(nèi)設(shè)的方法自行安裝系統(tǒng)。單擊“下一步”按鈕紧武,如下圖所示剃氧。
? ? ? ? 3.將“客戶機(jī)操作系統(tǒng)”設(shè)置為“Red Hat Enterprise Linux 7 64 位” ,然后單擊“下一步”按鈕阻星,如下圖所示朋鞍。
? ? ? ? 4.對(duì)虛擬機(jī)進(jìn)行命名并設(shè)置安裝位置。大家可自行定義虛擬機(jī)的名稱妥箕,而安裝位置則盡量選擇磁盤空間較大的分區(qū)滥酥。然后單擊“下一步”按鈕,如下圖所示畦幢。
? ? ? ? 5.指定磁盤容量坎吻。這里將“最大磁盤大小”設(shè)置為 20GB,指的是虛擬機(jī)系統(tǒng)能夠使用的最大上限呛讲,而不是會(huì)被立即占滿禾怠,因此設(shè)置得稍微大一些也沒有關(guān)系。然后單擊“下一步”按鈕贝搁,如下圖所示吗氏。
? ? ? ? 6.結(jié)束“新建虛擬機(jī)向?qū)С绦颉焙螅炔灰贝蜷_虛擬機(jī)系統(tǒng)雷逆。大家還需要單擊第一個(gè)圖中的“自定義硬件”按鈕弦讽,在彈出的如第二個(gè)圖所示的界面中,把“網(wǎng)絡(luò)適配器”設(shè)備同樣也設(shè)置為“僅主機(jī)模式” (這個(gè)步驟非常重要) ,然后單擊“確定”按鈕往产。
? ??????現(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)生產(chǎn)環(huán)境工作中有數(shù)百臺(tái)服務(wù)器需要批量安裝系統(tǒng)時(shí)云矫,使用無人值守安裝系統(tǒng)的便捷性是不言而喻的膳沽。
? ? ? ? 測(cè)試成功,建議大家建造一個(gè)這樣的服務(wù)器让禀,以便在實(shí)際工作中維護(hù)使用挑社,有技術(shù)含量。