《LINUX教程:RHEL7/CentOS7 PXE+Kickstart自動化系統安裝》要點:
本文介紹了LINUX教程:RHEL7/CentOS7 PXE+Kickstart自動化系統安裝,希望對您有用。如果有疑問,可以聯系我們。
PXE(preboot execute environment,預啟動執行環境)是由Intel公司開發的最新技術,工作于Client/Server的網絡模式,支持工作站通過網絡從遠端服務器下載映像,并由此支持通過網絡啟動操作系統,在啟動過程中,終端要求服務器分派IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協議下載一個啟動軟件包到本機內存中執行,由這個啟動軟件包完成終端基本軟件設置,從而引導預先安裝在服務器中的終端操作系統.PXE可以引導多種操作系統,如:Windows95/98/2000/windows2003/windows2008/win7/win8,linux等.
虛擬機軟件:VirtualBox
虛擬機網絡銜接方式:僅主機(Host-Only)網絡
服務端操作體系:CentOS 7
設置裝備擺設服務:DHCP+TFTP+FTP(也可以使用HTTP、NFS等)
完成目標:搭建pxe情況,結合kickstart響應文件,完成CentOS 7系統的自動化安裝.
主要文件
系統安裝時,由領導文件加載內核文件后才可以看到系統安裝界面.
pxelinux.0 - 系統領導文件
vmlinuz、initrd.img - 內核文件
DHCP 服務器
為客戶端提供需要的網絡信息,如IP、netmask、gateway、dns等,并向客戶端提供引導文件(pxelinux.0)的位置及TFTP服務器地址等.
TFTP 服務器
主要為客戶端提供內核文件和領導文件.
FTP 服務器
為客戶端提供kickstart響應文件和體系鏡像文件.
pxe系統安裝時,首先由dhcp服務器向客戶端提供IP、引導文件地位、tftp地址等信息,客戶端獲取相關信息后,通過TFTP下載引導文件和內核文件,引導系統啟動,并通過ftp服務器下載系統安裝過程中所需的各項軟件包和kickstart響應文件.
kickstart響應文件主要用來自動設置時區、暗碼、系統分區、軟件包選擇等信息.
詳細系統環境為:
[root@pxe1?~]#?uname?-a Linux?pxe1?3.10.0-514.el7.x86_64?#1?SMP?Tue?Nov?22?16:42:41?UTC?2016?x86_64?x86_64?x86_64?GNU/Linux [root@pxe1?~]#? [root@pxe1?~]#?hostnamectl ? ?Static?hostname:?pxe1 ? ? ? ? ?Icon?name:?computer-vm ? ? ? ? ? ?Chassis:?vm ? ? ? ? Machine?ID:?18ef8dea83044565b82bf6bed368cdab ? ? ? ? ? ?Boot?ID:?9beedf23c4e14016a0a458ddcd9c487b ? ? Virtualization:?kvm ? Operating?System:?CentOS?Linux?7?(Core) ? ? ? ?CPE?OS?Name:?cpe:/o:centos:centos:7 ? ? ? ? ? ? Kernel:?Linux?3.10.0-514.el7.x86_64 ? ? ? Architecture:?x86-64 [root@pxe1?~]#?cat?/etc/hosts 127.0.0.1? ?localhost?localhost.localdomain?localhost4?localhost4.localdomain4 ::1? ? ? ? ?localhost?localhost.localdomain?localhost6?localhost6.localdomain6 192.168.56.14?pxe1? ? [root@pxe1?yum.repos.d]#?ifconfig? enp0s3:?flags=4163<UP,BROADCAST,RUNNING,MULTICAST>? mtu?1500 ? ? ? ? inet?192.168.56.14? netmask?255.255.255.0? broadcast?192.168.56.255 ? ? ? ? inet6?fe80::a00:27ff:fe43:c11d? prefixlen?64? scopeid?0x20<link> ? ? ? ? ether?08:00:27:43:c1:1d? txqueuelen?1000? (Ethernet) ? ? ? ? RX?packets?1441? bytes?121057?(118.2?KiB) ? ? ? ? RX?errors?0? dropped?0? overruns?0? frame?0 ? ? ? ? TX?packets?928? bytes?98905?(96.5?KiB) ? ? ? ? TX?errors?0? dropped?0?overruns?0? carrier?0? collisions?0 ...
封閉SELinux和防火墻:
#?為了后續配置便利,首先關閉系統SELinux和防火墻 #?關閉SELinux,修改文件使SELINUX=disabled [root@pxe1?~]#?vim?/etc/selinux/config? #?This?file?controls?the?state?of?SELinux?on?the?system. #?SELINUX=?can?take?one?of?these?three?values: #? ? ?enforcing?-?SELinux?security?policy?is?enforced. #? ? ?permissive?-?SELinux?prints?warnings?instead?of?enforcing. #? ? ?disabled?-?No?SELinux?policy?is?loaded. SELINUX=disabled #?SELINUXTYPE=?can?take?one?of?three?two?values: #? ? ?targeted?-?Targeted?processes?are?protected, #? ? ?minimum?-?Modification?of?targeted?policy.?Only?selected?processes?are?protected.? #? ? ?mls?-?Multi?Level?Security?protection. SELINUXTYPE=targeted #重啟系統后配置生效,查看SELinux的狀態. [root@pxe1?~]#?sestatus? SELinux?status:? ? ? ? ? ? ? ? ?disabled #關閉防火墻 [root@pxe1?~]#?systemctl?stop?firewalld [root@pxe1?~]#?systemctl?disable?firewalld [root@pxe1?~]#?systemctl?status?firewalld ●?firewalld.service?-?firewalld?-?dynamic?firewall?daemon ? ?Loaded:?loaded?(/usr/lib/systemd/system/firewalld.service;?disabled;?vendor?preset:?enabled) ? ?Active:?inactive?(dead) ? ? ?Docs:?man:firewalld(1)
在VirtualBox中新建linux虛擬機:
名稱:隨意填寫
類型:linux
版本:Red Hat(64-bit)
虛擬硬盤:
現在創建虛擬硬盤,注意分配足夠的硬盤大小,避免因硬盤空間不敷造成安裝失敗.我這里選擇20G,動態分配.
開機啟動次序:網絡啟動排第一位.
設置辦法:選中新建虛擬機,設置--系統--主板--啟動順序--設置網絡為第一位
收集:僅主機(Host-Only)收集
設置辦法:選中新建虛擬機,設置--網絡--網卡1--啟用網絡連接--連接方式:Host-Only
這里主要介紹使用系統光盤配置本地yum源的辦法.
起首掛載系統光盤:
在虛擬機右下角單擊光盤圖標,選擇必要掛載的系統鏡像文件.
創立yum源配置文件:
#?首先將光盤掛載到/mnt目錄下 [root@pxe1?~]#?umount?/dev/cdrom?-l? [root@pxe1?~]#?mount?/dev/cdrom?/mnt/ mount:?/dev/sr0?is?write-protected,?mounting?read-only #創建yum配置文件 [root@pxe1?~]#?cd?/etc/yum.repos.d/ [root@pxe1?yum.repos.d]#?ls CentOS-Base.repo? CentOS-Debuginfo.repo? CentOS-Sources.repo? CentOS-fasttrack.repo CentOS-CR.repo? ? CentOS-Media.repo? ? ? CentOS-Vault.repo #避免系統中的repo文件影響,首先將其備份 [root@pxe1?yum.repos.d]#?mkdir?bak [root@pxe1?yum.repos.d]#?mv?*.repo?bak/ [root@pxe1?yum.repos.d]#?ls bak [root@pxe1?yum.repos.d]#?vim?my.repo [development]? ? ? ? ? <--注意:這里必定要寫development name=my-centos7-dvd baseurl=file:///mnt enabled=1 gpgcheck=0
注意:my.repo文件中第一行[development],中括號中建議填寫development
,填寫其他內容會導致后面system-config-kickstart命令生成kickstart文件文件時,出現以下問題:
由于下載軟件包信息失敗,軟件包選擇被制止
創立yum緩存:
[root@pxe1?yum.repos.d]#?yum?clean?all Failed?to?set?locale,?defaulting?to?C Loaded?plugins:?fastestmirror,?langpacks Cleaning?repos:?development Cleaning?up?everything [root@pxe1?yum.repos.d]#?yum?makecache Failed?to?set?locale,?defaulting?to?C Loaded?plugins:?fastestmirror,?langpacks development? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.6?kB? 00:00:00? ? ? (1/4):?development/filelists_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.0?MB? 00:00:00? ? ? (2/4):?development/group_gz? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?155?kB? 00:00:00? ? ? (3/4):?development/other_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?1.3?MB? 00:00:00? ? ? (4/4):?development/primary_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |?3.0?MB? 00:00:00? ? ? Determining?fastest?mirrors Metadata?Cache?Created
dhcp為客戶端提供需要的網絡信息,如IP、netmask、gateway、dns等,并向客戶端提供引導文件(pxelinux.0)的位置及TFTP服務器地址等.
[root@pxe1?yum.repos.d]#?yum?install?-y?dhcp ... Installed: ? dhcp.x86_64?12:4.2.5-47.el7.centos? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Complete!
dhcp配置文件地位:/etc/dhcp/dhcpd.conf
[root@pxe1?yum.repos.d]#?cat?/etc/dhcp/dhcpd.conf? # #?DHCP?Server?Configuration?file. #? ?see?/usr/share/doc/dhcp*/dhcpd.conf.example #? ?see?dhcpd.conf(5)?man?page subnet?192.168.56.0?netmask?255.255.255.0?{ ? range?192.168.56.10?192.168.56.20; ? default-lease-time?600; ? max-lease-time?7200; ? filename?"pxelinux.0"; ? next-server?192.168.56.14; } #?subnet?192.168.56.0?netmask?255.255.255.0?服務端IP網段及掩碼 #?range?192.168.56.10?192.168.56.20;?dhcp分發的地址范圍,最好將本機IP包括在內. #?default-lease-time?600;max-lease-time?7200;?IP地址租約時間. #?filename?"pxelinux.0";?指定引導文件位置,這里是TFTP根目錄下的pxelinux.0. #? next-server?192.168.56.14;?TFTP服務器地址.
[root@pxe1?yum.repos.d]#?systemctl?restart?dhcpd [root@pxe1?yum.repos.d]#?systemctl?enable?dhcpd Created?symlink?from?/etc/systemd/system/multi-user.target.wants/dhcpd.service?to?/usr/lib/systemd/system/dhcpd.service. [root@pxe1?yum.repos.d]#?systemctl?status?dhcpd ●?dhcpd.service?-?DHCPv4?Server?Daemon ? ?Loaded:?loaded?(/usr/lib/systemd/system/dhcpd.service;?enabled;?vendor?preset:?disabled) ? ?Active:?active?(running)?since?Thu?2017-05-25?11:00:26?CST;?26s?ago ? ? ?Docs:?man:dhcpd(8) ? ? ? ? ? ?man:dhcpd.conf(5) ?Main?PID:?11849?(dhcpd) ? ?Status:?"Dispatching?packets..." ? ?CGroup:?/system.slice/dhcpd.service ? ? ? ? ? ?└─11849?/usr/sbin/dhcpd?-f?-cf?/etc/dhcp/dhcpd.conf?-user?dhcpd?-group?dhcpd?--no-pid May?25?11:00:26?pxe1?dhcpd[11849]:?No?subnet?declaration?for?virbr0?(192.168.122.1). May?25?11:00:26?pxe1?dhcpd[11849]:?**?Ignoring?requests?on?virbr0.? If?this?is?not?what May?25?11:00:26?pxe1?dhcpd[11849]:? ? you?want,?please?write?a?subnet?declaration May?25?11:00:26?pxe1?dhcpd[11849]:? ? in?your?dhcpd.conf?file?for?the?network?segment May?25?11:00:26?pxe1?dhcpd[11849]:? ? to?which?interface?virbr0?is?attached.?** May?25?11:00:26?pxe1?dhcpd[11849]:? May?25?11:00:26?pxe1?dhcpd[11849]:?Listening?on?LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24 May?25?11:00:26?pxe1?dhcpd[11849]:?Sending?on? ?LPF/enp0s3/08:00:27:43:c1:1d/192.168.56.0/24 May?25?11:00:26?pxe1?dhcpd[11849]:?Sending?on? ?Socket/fallback/fallback-net May?25?11:00:26?pxe1?systemd[1]:?Started?DHCPv4?Server?Daemon. [root@pxe1?yum.repos.d]#?netstat?-nulp?|?grep?dhcp udp? ? ? ? 0? ? ? 0?0.0.0.0:67? ? ? ? ? ? ? 0.0.0.0:*? ? ? ? ? ? ? ? ? ? ? ? ? ?11849/dhcpd? ? ? udp? ? ? ? 0? ? ? 0?0.0.0.0:16465? ? ? ? ? ?0.0.0.0:*? ? ? ? ? ? ? ? ? ? ? ? ? ?11849/dhcpd? ? ? udp6? ? ? ?0? ? ? 0?:::31651? ? ? ? ? ? ? ? :::*? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 11849/dhcpd
注意:如果啟動dhcp服務報錯,請查看
/var/log/messages
日志,會有明顯的錯誤提示,多數是配置文件格式或內容錯誤造成的.
dhcp服務器配置完成后,便可啟動之前準備的客戶端虛擬機查看是否可以獲取到IP地址,能正常獲取IP則闡明配置正常,如下:
至此,dhcp服務器設置裝備擺設完成.
TFTP服務器主要為客戶端提供內核文件和領導文件.
安裝辦法:
[root@pxe1?/]#?yum?install?-y?tftp-server ... Installed: ? tftp-server.x86_64?0:5.2-13.el7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? Complete! #?安裝tftp命令,可用來測試TFTP服務能否正常運行 [root@pxe1?/]#?yum?install?-y?tftp
#?編纂配置文件/etc/xinetd.d/tftp? [root@pxe1?/]#?vim?/etc/xinetd.d/tftp? disable =?no? ?<--將yes修改為no
啟動tftp服務:
#?首先確保tftp.socket正常 [root@pxe1?/]#?systemctl?start?tftp.socket [root@pxe1?/]#?systemctl?enable?tftp.socket Created?symlink?from?/etc/systemd/system/sockets.target.wants/tftp.socket?to?/usr/lib/systemd/system/tftp.socket. [root@pxe1?/]#?systemctl?status?tftp.socket ●?tftp.socket?-?Tftp?Server?Activation?Socket ? ?Loaded:?loaded?(/usr/lib/systemd/system/tftp.socket;?enabled;?vendor?preset:?disabled) ? ?Active:?active?(listening)?since?四?2017-05-25?14:57:33?CST;?1h?0min?ago ? ?Listen:?[::]:69?(Datagram) 5月?25?14:57:33?pxe1?systemd[1]:?Listening?on?Tftp?Server?Activation?Socket. 5月?25?14:57:33?pxe1?systemd[1]:?Starting?Tftp?Server?Activation?Socket. #?然后啟動tftp.service [root@pxe1?~]#?systemctl?restart?tftp.service [root@pxe1?~]#?systemctl?enable?tftp.service Created?symlink?from?/etc/systemd/system/sockets.target.wants/tftp.socket?to?/usr/lib/systemd/system/tftp.socket. [root@pxe1?~]#?systemctl?status?tftp.service ●?tftp.service?-?Tftp?Server ? ?Loaded:?loaded?(/usr/lib/systemd/system/tftp.service;?indirect;?vendor?preset:?disabled) ? ?Active:?active?(running)?since?四?2017-05-25?14:57:33?CST;?20s?ago ? ? ?Docs:?man:in.tftpd ?Main?PID:?14621?(in.tftpd) ? ?CGroup:?/system.slice/tftp.service ? ? ? ? ? ?└─14621?/usr/sbin/in.tftpd?-s?/var/lib/tftpboot 5月?25?14:57:33?pxe1?systemd[1]:?Started?Tftp?Server. 5月?25?14:57:33?pxe1?systemd[1]:?Starting?Tftp?Server...
需要導入TFTP服務器的主要文件有:
領導文件 - pxelinux.0
內核文件:vmlinuz initrd.img
領導菜單:isolinux.cfg -- 開機后選擇啟動項的菜單文件
領導文件pxelinux.0由軟件包syslinux生成,首先要安裝syslinux軟件包:
[root@pxe1?~]#?yum?install?-y?syslinux #?將pxelinux.0拷貝至TFTP根目次下 [root@pxe1?~]#?cp?/usr/share/syslinux/pxelinux.0?/var/lib/tftpboot/
內核文件:vmlinuz initrd.img,一般存在于系統光盤的pxeboot目次下:
[root@pxe1?syslinux]#?cd?/mnt/images/pxeboot/ [root@pxe1?pxeboot]#?ls initrd.img? TRANS.TBL? vmlinuz
但是我們可以發現,在isolinux目錄下也有相同的內容,同時,還包含引導菜單(isolinux.cfg)及其啟動時用到的文件:
isolinux.cfg - 領導菜單配置文件
vesamenu.c32 - 體系自帶的兩種窗口模塊之一
boot.msg - 窗口提示信息文件,提示信息在菜單呈現前呈現,顯示時間較短,可以添加些藝術字之類的信息.
splash.png - 窗口配景圖片
因此,我們可以從系統光盤的images/pxeboot/目錄下復制內核文件,也可以從isolinux下復制,為了方便起見,這里從isolinux目錄下復制,可以只復制我們必要的文件,如:
isolinux.cfg
vesamenu.c32
boot.msg
splash.png
也可以將isolinux目次下的文件全部復制到TFTP根目次/var/lib/tftpboot
:
[root@pxe1?/]#?cp?-rf?/mnt/isolinux/*?/var/lib/tftpboot/
然后準備pxe領導菜單:
[root@pxe1?/]#?mkdir?/var/lib/tftpboot/pxelinux.cfg [root@pxe1?/]#?mv?/var/lib/tftpboot/isolinux.cfg?/var/lib/tftpboot/pxelinux.cfg/default [root@pxe1?/]#?cd?/var/lib/tftpboot/pxelinux.cfg [root@pxe1?pxelinux.cfg]#?ls default
改動引導菜單選項:
[root@pxe1?pxelinux.cfg]#?vim?/var/lib/tftpboot/pxelinux.cfg/default? #?首先修改菜單等待時間 timeout?600?<--菜單顯示等待時間,單位為1/10秒,默認等待60秒. #修改菜單等待時間為60,即等待6秒,若無操作則進入默認菜單; timeout?600 #?然后修改顯示菜單 #?----------------------------------------------------------------- #?找到文件中的以下部分 label?linux ? menu?label?^Install?CentOS?Linux?7 ? kernel?vmlinuz ? append?initrd=initrd.img?inst.stage2=hd:LABEL=CentOS\x207\x20x86_64?quiet label?check ? menu?label?Test?this?^media?&?install?CentOS?Linux?7 ? menu?default ? kernel?vmlinuz ? append?initrd=initrd.img?inst.stage2=hd:LABEL=CentOS\x207\x20x86_64?rd.live.check?quiet #?將其修改為 label?linux ? menu?label?^Install?CentOS?Linux?7?by?kickstart ? menu?default ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg label?linux?2 ? menu?label?^Install?CentOS?Linux?7?by?vnc ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password label?linux?3 ? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1 ? #?本文中其他內容無需進行修改,有興趣可本身嘗試修改其他選項進行測試.
下面來驗證TFTP服務配置是否正確:
[root@pxe1?kk]#?ls?/var/lib/tftpboot/ boot.cat? grub.conf? ?isolinux.bin? pxelinux.0? ? splash.png? vesamenu.c32 boot.msg? initrd.img? memtest? ? ? ?pxelinux.cfg? TRANS.TBL? ?vmlinuz [root@pxe1?kk]#? [root@pxe1?kk]#?tftp?192.168.56.14 tftp>?get?boot.msg tftp>?quit [root@pxe1?kk]#? [root@pxe1?kk]#?ls boot.msg #?成功get到boot.msg文件,闡明TFTP服務正常.
啟動之前準備的客戶端虛擬機查看是否可以正常顯示引導菜單,是否可以正常獲取initrd.img和vmlinuz內核文件.
? 若配置正常,會看到之前配置的引導菜單呈現:
在對應的領導菜單上按TAB
鍵會顯示出該菜單項的具體配置:
按Enter
鍵后,會呈現獲取內核文件的界面:
末了系統提示獲取ks文件失敗,原因是尚未進行ftp服務器的配置:
更多詳情見請繼續閱讀下一頁的出色內容:
_baidu_page_break_tag_[root@pxe1?mnt]#?yum?install?-y?system-config-kickstart #?安裝完成后,圖形界面執行system-config-kickstart敕令配置ks文件
kickstart文件配置注意事項如下:
下圖中光盤掛載地位為FTP根目錄下的pub目錄,即/var/ftp/pub
:
?
?
軟件包選擇界面,可以直接在這里選擇,也可以拷貝服務端/root/anaconda-ks.cfg
文件中%packages
和%end
區間的內容至新文件.
?
其他選項請按需選擇,配置完成后,保留文件,待FTP服務器配置完成后,需要將其拷貝至FTP根目錄/var/ftp
.
然后修改生成的ks.cfg文件,在文件末尾(不要刪除文件末尾的%end),添加以下內容,表現關閉kdump功能:
%addon?com_RedHat_kdump?--disable?--reserve-mb='auto' %end
至此,kickstart文件設置裝備擺設完成.
[root@pxe1?mnt]#?yum?install?-y?vsftpd [root@pxe1?mnt]#?systemctl?restart?vsftpd [root@pxe1?mnt]#?systemctl?enable?vsftpd Created?symlink?from?/etc/systemd/system/multi-user.target.wants/vsftpd.service?to?/usr/lib/systemd/system/vsftpd.service. [root@pxe1?mnt]#?systemctl?status?vsftpd ●?vsftpd.service?-?Vsftpd?ftp?daemon ? ?Loaded:?loaded?(/usr/lib/systemd/system/vsftpd.service;?enabled;?vendor?preset:?disabled) ? ?Active:?active?(running)?since?2017-05-25?16:59:12?CST;?11s?ago ?Main?PID:?16466?(vsftpd) ? ?CGroup:?/system.slice/vsftpd.service ? ? ? ? ? ?└─16466?/usr/sbin/vsftpd?/etc/vsftpd/vsftpd.conf 5月?25?16:59:12?pxe1?systemd[1]:?Starting?Vsftpd?ftp?daemon... 5月?25?16:59:12?pxe1?systemd[1]:?Started?Vsftpd?ftp?daemon. #?安裝ftp命令,用于ftp服務器驗證. [root@pxe1?mnt]#?yum?install?-y?ftp
[root@pxe1?/]#?systemctl?restart?vsftpd [root@pxe1?/]#?systemctl?enable?vsftpd [root@pxe1?/]#?systemctl?status?vsftpd ●?vsftpd.service?-?Vsftpd?ftp?daemon ? ?Loaded:?loaded?(/usr/lib/systemd/system/vsftpd.service;?enabled;?vendor?preset:?disabled) ? ?Active:?active?(running)?since?五?2017-05-26?08:28:29?CST;?15s?ago ?Main?PID:?2682?(vsftpd) ? ?CGroup:?/system.slice/vsftpd.service ? ? ? ? ? ?└─2682?/usr/sbin/vsftpd?/etc/vsftpd/vsftpd.conf 5月?26?08:28:28?pxe1?systemd[1]:?Starting?Vsftpd?ftp?daemon... 5月?26?08:28:29?pxe1?systemd[1]:?Started?Vsftpd?ftp?daemon.
首先將適才生成的kickstart文件復制到FTP跟目錄下:
[root@pxe1?/]#?cd?/var/ftp/ [root@pxe1?ftp]#?ls ks.cfg? pub
然后將關盤掛載至/var/ftp/pub
目次下:
#?因為配置yum源時已經將光盤掛載至/mntt目錄下了,現在有兩種辦法進行光盤掛載: #?1.將/mnt目錄綁定到/var/ftp/pub目錄下 [root@pxe1?~]#?mount?--bind?/mnt/?/var/ftp/pub/ [root@pxe1?~]#?ls?/var/ftp/pub/ CentOS_BuildTag? EULA? images? ? LiveOS? ? repodata? ? ? ? ? ? ? RPM-GPG-KEY-CentOS-Testing-7 EFI? ? ? ? ? ? ? GPL? ?isolinux? Packages? RPM-GPG-KEY-CentOS-7? TRANS.TBL #?2.?先將光盤從/mnt目錄卸載,然后掛載到/var/ftp/pub目錄下 [root@pxe1?~]#?umount?/dev/cdrom [root@pxe1?~]#?mount?/dev/cdrom?/var/ftp/pub/
本次配置在生成kickstart文件時,登陸用戶為匿名用戶anonumous,下面測試匿名用戶能否正常從FTP服務器下載文件:
[root@pxe1?kk]#?ls?/var/ftp/ ks.cfg? pub [root@pxe1?kk]#?ftp?192.168.56.14 Connected?to?192.168.56.14?(192.168.56.14). 220?(vsFTPd?3.0.2) Name?(192.168.56.14: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,56,14,217,98). 150?Here?comes?the?directory?listing. -rw-r--r--? ? 1?0? ? ? ? 0? ? ? ? ? ? 1459?May?25?09:36?ks.cfg drwxr-xr-x? ? 8?0? ? ? ? 0? ? ? ? ? ? 2048?Dec?05?13:20?pub 226?Directory?send?OK. ftp>?get?ks.cfg local:?ks.cfg?remote:?ks.cfg 227?Entering?Passive?Mode?(192,168,56,14,152,101). 150?Opening?BINARY?mode?data?connection?for?ks.cfg?(1459?bytes). 226?Transfer?complete. 1459?bytes?received?in?0.0433?secs?(33.68?Kbytes/sec) ftp>?bye 221?Goodbye. [root@pxe1?kk]#?ls ks.cfg
成功get到ks.cfg文件,表現配置正常,現在可以重啟客戶端虛擬機測試是否可以進行自動化系統安裝.
重啟客戶端虛擬機,可以看到系統開端自動安裝,至此,pxe+kickstart自動系統安裝配置完成.
?
?
本文中配置的領導菜單default主要內容如下:
label?linux ? menu?label?^Install?CentOS?Linux?7?by?kickstart ? menu?default ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg label?linux?2 ? menu?label?^Install?CentOS?Linux?7?by?vnc ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password label?linux?3 ? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1
在系統啟動進程中,菜單依次對應如下內容:
菜單一先容:
label?linux ? menu?label?^Install?CentOS?Linux?7?by?kickstart ? menu?default ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg #?使用kickstart自動安裝 #?這項菜單表現鏡像文件在FTP根目錄/var/ftp/pub下,kickstart文件在FTP根目錄/var/ftp下.
菜單二介紹:
label?linux?2 ? menu?label?^Install?CentOS?Linux?7?by?vnc ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password ? #?使用vnc手動安裝 #?該菜單表示鏡像文件在FTP根目錄/var/ftp/pub下,vnc暗碼為password,選中該菜單后,系統啟動后會提示vnc登錄的IP及端口,vnc連接后,便可進行手動系統安裝,也可以在菜單最后指定kickstart文件位置,自動安裝.
如圖:
菜單三先容:
label?linux?3 ? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1 ? #?該菜單項表示使用vnc監聽模式進行系統安裝 #?該菜單表示鏡像文件在FTP根目錄/var/ftp/pub下,vnc監聽進程在計算機192.168.56.1上,無登錄暗碼; #?注意:inst.vncconnect=192.168.56.1?指的是將要運行vnc客戶端的計算機IP地址.
這里的192.168.56.1為我的筆記本IP,所以在啟動客戶端虛擬機后,只需要在筆記本上打開vnc客戶端監聽模式,即可自動顯示安裝界面.
在筆記本上打開vnc監聽模式后,稍作期待,會自動連接到系統安裝界面:
vesamenu.c32 -菜單模塊之一
本文上面介紹的引導菜單便是利用vesamenu.c32生成的.
menu.c32 - 菜單模塊??一
安裝了syslinux命令包后,兩種菜單模塊都會在目錄/usr/share/syslinux/
下生成,使用menu.c32創建引導菜單時,只必要將菜單模塊menu.c32及內核文件、引導文件拷貝至TFTP根目錄下/var/lib/tftpboot即可.
[root@pxe1?tftpboot]#?ls?/var/lib/tftpboot/ initrd.img? menu.c32? pxelinux.0? pxelinux.cfg? vmlinuz
菜單文件內容為:
[root@pxe1?tftpboot]#?cat?/var/lib/tftpboot/pxelinux.cfg/default default?menu.c32 ?timeout?60 ?menu?title?CentOS?7?Pxe?Menu ? label?linux ? menu?label?^Install?CentOS?Linux?7?by?kickstart ? menu?default ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.ks=ftp://192.168.56.14/ks.cfg label?linux?2 ? menu?label?^Install?CentOS?Linux?7?by?vnc ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncpassword=password label?linux?3 ? menu?label?^Install?CentOS?Linux?7?by?vnc?-listen ? kernel?vmlinuz ? append?initrd=initrd.img?inst.repo=ftp://192.168.56.14/pub?inst.vnc?inst.vncconnect=192.168.56.1
菜單顯示樣式為:
本文永遠更新鏈接地址:
更多LINUX教程,盡在維易PHP學院專欄。歡迎交流《LINUX教程:RHEL7/CentOS7 PXE+Kickstart自動化系統安裝》!