Linux网络安装(PXE + DHCP+TFTP+ Kickstart+ FTP)
需要使用到的服務:PXE + DHCP+TFTP+ Kickstart+ FTP
運行原理如下圖:
?
?
原理和概念:?
1、前言
? ? ? ?首先,簡單談談為什么要采用無人值守網絡安裝linux操作系統。一方面是運維管理的需要,因各種需要,安裝操作系統在實驗室內時有發生,有時候更出現批量安裝某一型號操作系統的情形,這時候如果用光盤挨個安裝將變得異常繁瑣,并且需要人工值守。此外,因操作系統種類較多(主要是針對linux),內部人員使用頻繁,也會帶來管理上的問題。另一方面是當前MPX項目開發的需要,為打造一個精簡、適用、高效、安全的網絡存儲平臺,需要對當前的系統精雕細琢,在實驗階段,我很難為每一版本系統刻錄一個光盤再進行系統安裝,但通過網絡安裝的方式,可以避免頻繁刻錄光盤帶來的不利。
2、PXE
? ? ? ?PXE(prebootexecute environment)是由Intel公司開發的最新技術,工作于Client/Server網絡模式,支持工作站通過網絡從遠端服務器下載鏡像,并由此支持來自網絡的操作系統的啟動過程。PXE Client存在于網卡的ROM中,當計算機引導時,BIOS把PXE Client調入內存中執行,并顯示出命令菜單,經用戶選擇后,再將存放在遠端服務器上的操作系統通過網絡下載到本地運行。其啟動過程中,終端要求服務器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial filetransfer protocol)協議下載一個啟動軟件包(一組文件)到本機內存中執行,由這個啟動軟件包完成終端基本軟件設置,進而引導預先安置在服務器中的終端操作系統。
? ? ? ?簡單說來,客戶機通過支持PXE的網卡向網絡中發送請求DHCP信息的廣播,請求分配IP地址等信息,DHCP服務器給客戶機提供IP地址和其它網絡信息的同時還將提供網絡安裝操作系統中所需要的信息,如TFTP服務器、啟動文件等,之后客戶機請求并下載啟動所需要的文件。在這個過程中需要一臺服務器來提供啟動文件、安裝文件、以及安裝過程中的自動應答文件等。
注:TFTP是TCP/IP協議族中一個用來在客戶機與服務器之間進行簡單文件傳輸的協議,提供不復雜、開銷不大的文件傳輸服務,端口號為69。在利用網絡安裝操作系統的過程中,它只負責從服務器下載最初的啟動軟件包到本機去執行,而終端操作系統的傳輸將由其它傳輸協議來完成(如:FTP、NFS、HTTP),具體設置參加后面章節的說明。
3、KickStart
? ? ? ?KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,并生成一個名為ks.cfg的文件;在其后的安裝過程中(不只局限于生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就采用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然后去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啟選項來重啟系統,并結束安裝。
設置BIOS引導順序為:? 硬盤,網絡
?
模式: C/S 模式
?
實驗環境:?
服務端:abiao1?? IP:192.168.138.1?? 網卡模式: vmnet4
客戶端:abiao2?? IP:192.168.138.10?? 網卡模式: vmnet4
?
?
執行?PXE?+?KickStart安裝需要準備內容:
·FTP?服務器用來存放系統安裝文件;?
?TFTP?服務器用來存放PXE的相關文件,比如:系統引導文件;
?DHCP?服務器用來給客戶機分配IP;?
?KickStart所生成的ks.cfg配置文件;?
·配置基于FTP的yum源,用于客戶端安裝軟件;
?帶有一個?PXE?支持網卡的將安裝的主機;
?
?
一、配置基本環境
安裝所需要的服務及修改相應配置文件:
1.搭建本地yum源或者網絡yum源(其中之一就好)
本地yum源
[root@abiao1 ~]# mount /dev/cdrom /mnt
在/etc/yum.repos.d目錄下創建一個以.repo結尾的文件:
[root@abiao1 ~]# cd /etc/yum.repos.d/
[root@abiao1 yum.repos.d]# vim pxe.repo
配置內容如下:
[rhel-source]
name=abiao1
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
?
網絡yum源
首先保證機器可以連接公網
[root@abiao1~]# wget -O /etc/yum.repos.d/CentOS-Base.repo?http://mirrors.aliyun.com/repo/Centos-6.repo
[root@abiao1~]# sed -i 's/$releasever/6/g' /etc/yum.repos.d/ CentOS-Base.repo
[root@abiao1~]# yum makecache
[root@abiao1~]# yum list all
?
2.安裝ftp服務以及開啟服務,設置為開機自動啟動。
[root@abiao1 ~]# yum -y install vsftpd
[root@abiao1 ~]# chkconfig vsftpd on
[root@abiao1 ~]# service vsftpd start
為 vsftpd 啟動vsftpd:??????????????????????????????????? [確定]
?
3.安裝TFTP,修改tftp配置文件及開啟服務
[root@abiao1 /]# yum-y install tftp tftp-server xinetd
配置tftp服務器:
[root@abiao1 /]# chkconfig tftp on/yes???啟用tftp/禁用tftp
[root@abiao1 /]# vim /etc/xinetd.d/tftp
修改配置文件里面的13,14行。改成以下內容:
?
?
接著啟動xinetd服務,然后查看服務端口是否打開。
[root@abiao1 /]#service xinetd start
停止xinetd:????????????????????????????????????????????? [確定]
正在啟動xinetd:????????????????????????????????????????? [確定]
[root@abiao1 ~]# lsof -i:69??? #查看69端口正在被哪個進程使用
COMMAND?PID USER?? FD?? TYPE DEVICE SIZE/OFF NODE NAME
xinetd?5646 root??? 5u? IPv4?25888????? 0t0? UDP *:tftp
[root@abiao1 ~]# netstat -anptu | grep 69???? #這種方法,只能看到xinetd進程
udp???????0????? 0 0.0.0.0:69????????????????? 0.0.0.0:*?????????????????????????????? 5646/xinetd
?
?
server_args = -s /tftpboot? #?表示服務器默認的目錄是 /tftpboot
?
其中,server_args = -s/tftpboot是tftp服務器運行時的參數。-s/tftpboot表示服務器默認的目錄是 /tftpboot,當你執行put a.txt時,文件會被放到服務器的/tftpboot/a.txt,省去你敲put a /tftpboot/的麻煩。你也可以加其它服務器運行參數到這,具體可以執行mantftpd命令查閱。
?
-c?:?上傳文件時,服務器上沒有。就自動創建這個文件。
默認tftp客戶端,只能上傳tftp服務器已經有的文件。也就是只能傳上去并覆蓋服務器上的原文件。如果想上傳原來目錄中沒有的文件,需要修改tftp服務器的配置文件并重起服務。需要修改如下:
打開/etc/xinetd.d/tftp文件,在 server_args 增加-c參數,如下所示:
server_args = -s /tftpboot -c
?
TFTP (Trivial File Transfer Protocol),中譯簡單文件傳輸協議或小型文件傳輸協議. 大家一定記得在2003年8月12日全球爆發沖擊波(Worm.Blaster)病毒,這種病毒會監聽端口69,模擬出一個TFTP服務器,并啟動一個攻 擊傳播線程,不斷地隨機生成***地址,進行***。另外tftp被認為是一種不安全的協議而將其關閉,同時也是防火墻打擊的對象,這也是有道理的。tftp 在嵌入式linux還是有用武之地的。需要打開防火墻,允許tftp訪問網絡。
?
?
4.安裝dhcp,修改配置文件及開啟服務:
[root@abiao1 ~]# yum -y install dhcp
配置DHCP服務器:
[root@abiao1 ~]# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
cp:是否覆蓋"/etc/dhcp/dhcpd.conf"? y??#生成配置文件
[root@abiao1 ~]# vim/etc/dhcp/dhcpd.conf??#只保留一個subnet {。。。} ,取掉其它subnet,改成如下內容:
?
subnet 192.168.138.0 netmask 255.255.255.0 {
?range 192.168.138.10 192.168.138.20;
?option domain-name-servers 8.8.8.8;
?option domain-name "abiao.cn";
?option routers 192.168.138.1;
?option broadcast-address 192.168.138.255;
?default-lease-time 600;
?max-lease-time 7200;
?next-server 192.168.138.1;? #指定TFTP服務器地址
?filename "pxelinux.0";???#指定PXE引導程序的文件名
}
?
接著啟動DHCP,設置為開機啟動
[root@abiao1 ~]# service dhcpd start
正在啟動 dhcpd:?????????????????????????????????????????? [確定]
[root@abiao1 ~]# chkconfig dhcpd on
?
準備工作完成
?
二、配置使用PXE啟動所需的相關文件
?
準備tftp需要共享出去的文件
#因為tftp是提供啟動文件,內核文件,引導文件,啟動菜單的 要把這些文件復制到根目錄下
[root@abiao1 /]# mount /dev/sr0 /mnt
mount: block device /dev/sr0 iswrite-protected, mounting read-only
[root@abiao1 /]# mkdir /tftpboot?????????? #創建tftp根目錄
[root@abiao1 /]# mkdir /tftpboot/pxelinux.cfg???#創建啟動文件夾(啟動菜單存放位置)
[root@abiao1 /]# cp -a/usr/share/syslinux/pxelinux.0 /tftpboot/???#注,只有安裝了system-config-kickstart軟件包,才會有/usr/share/syslinux/目錄及目錄中的文件。
# pxelinux.0? PXE網絡安裝的引導程序
[root@abiao1 /]# cp -a /mnt/p_w_picpaths/pxeboot/initrd.img/tftpboot/?? #linux內核
[root@abiao1 /]# cp -a/mnt/p_w_picpaths/pxeboot/vmlinuz tftpboot/???#初始化鏡像文件
[root@abiao1 /]# cp -a/mnt/isolinux/isolinux.cfg tftpboot/pxelinux.cfg/default? #加載內核文件和初始化文件
[root@abiao1 /]# chmod 644 /tftpboot/pxelinux.cfg/default
?
三、修改default,指定安裝操作系統的方式和ks.cfg文件路徑
[root@abiao1 /]# vim/tftpboot/pxelinux.cfg/default
然后修改/tftpboot/pxelinux.cfg/default的配置文件。
改:default
為 :default? linux
#修改第1行,后面的linux意思是尋找下面18行的label linux 。如下:
然后修改下22行(即在后面添加ks=ftp://192.168.138.1/ks.cfg)。第22行的意思是使安裝程序通過FTP服務器訪問kickstart文件。
?
?
以上有關default配置文件的修改就是通過ftp服務器方式來訪問kickstart文件。
?
其中第1行:default linux表示指定默認入口名稱;
第2行:prompt 1中prompt用來設置是否等待用戶選擇,1表示等待用戶控制;
第18、23、27、31行label linux表示定義的引導入口,表示系統的不同安裝方式,如第18行定義的入口表示圖形安裝。
配置文件修改完了,要開始自動安裝,安裝程序必須能訪問kickstart文件。
有多種方法可訪問kickstart文件,其中最常用的一種方法是通過網絡服務器進行,
例如:ftp服務器、WEB服務器或NFS服務器,這種方法非常易于部署,并且也使管理更改變得十分簡單。也可以通過USB磁盤、CD-ROM或本地硬盤。如果USB或CD-ROM中的kickstart文件非常便于訪問,只需將kickstart文件放置在用來開始安裝的引導介質中。而使用DHCP服務器和TFTP及PXE配置起來更為復雜。
使安裝程序指向kickstart文件的書寫格式如下:
ks=ftp://server/dir/file?如:ks=ftp://ftp服務器IP/ks.cfg
ks=http://server/dir/file?如:ks=http://http服務器IP/ks.cfg
ks=nfs:server:/dir/file?如:ks=nfs:nfs服務器IP:/var/ftp/pub/ks.cfg
ks=hd:device:/dir/file?如:ks=hd:sdb1:/kickstar-files/ks.cfg
ks=cdrom:/dir/file?如:ks=cdrom:/kickstart-files/ks.cfg
以上有關default配置文件的修改就是通過ftp服務器方式來訪問kickstart文件。
?
接下來我們制作kickstart的無人值守安裝文件。
?
安裝system-config-kickstart軟件包:
?[root@abiao1 ~]# yum -y install? system-config-kickstart? #安裝此包時,會把syslinux軟件包也安裝上。
?
如果想在英文界面下打開一個軟件,讓它以中文界面顯示,修改字符集:
[root@abiao1 /]# echo $LANG
en_US.UTF-8
[root@abiao1 /]#LANG="zh_CN.UTF-8"
[root@abiao1 /]# echo $LANG
zh_CN.UTF-8
[root@abiao1 /]# system-config-kickstart? #執行system-config-kickstart彈出來界面。
設置自己后期無人執守安裝需要配置的參數:
我們設置下默認安裝的語言,時區,根口令,然后勾選下面的安裝后重新引導。然后選擇安裝方法。
?
我們配置ftp服務器的安裝方法。選擇執行新安裝。然后點擊引導裝載程序選項。
?
?
配置grub相關選項,不需要可以不配置
?
設置分區大小。
?
配置網絡,默認沒有網絡設置,點擊添加網絡,設備名稱為eth0,網絡類型為dhcp
?
驗證,默認就可以了。
?
防火墻和selinux根據自己需求選擇開啟或者禁用。
?
安裝圖形環境
?
自定義軟件包。默認可能沒有勾選桌面。根據自己需求勾選。 我們為了快速度安裝,不選擇安裝桌面。
?
安裝腳本:在"預安裝腳本","安裝后腳本"對話框中,可以分別添加在安裝前、安裝后自動動行的可執行語句。此項設置可以使服務器自動化配置變得更加容易。
例如:配置客戶機在完成安裝后自動設置YUM倉庫。
寫入以下腳本內容:
rm -rf/etc/yum.repos.d/*
echo '[rhel-source]
name=abiao
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release'> /etc/yum.repos.d/rhel6.repo
?
?
到此所有關于安裝的配置已經配置完畢,保存:
點擊左上角的文件選擇保存,選擇下保存的路徑
?
[root@abiao1 ~]# cp ks.cfg /var/ftp/? #復制ks.cfg文件到/var/ftp目錄下
注:ks.cfg就是無人值守安裝時要用的Kickstart文件。
要對應:/tftpboot/pxelinux.cfg/default文件中設置過ks=ftp://192.168.138.1/ks.cfg
?
配置基于ftp的yum源,用于客戶端安裝時,讀取軟件包用:
[root@abiao1 ~]# mount /dev/sr0/var/ftp/pub/? #掛載RHEL6安裝光盤到/var/ftp/pub目錄下
mount: block device /dev/sr0 iswrite-protected, mounting read-only
或者將之前掛載的鏡像內容復制到/var/ftp/pub下
[root@abiao1 ~]# cp /mnt/* /var/ftp/pub/?
?
建議關閉防火墻和selinux,
如果沒有關閉的話,tftp服務會有問題。
[root@abiao1 ~]# getenforce
Disabled
設置防火墻:
[root@abiao1 ~]# iptables –F???????????? #清空規則列
[root@abiao1 ~]# service iptables save??? #保存
iptables:將防火墻規則保存到 /etc/sysconfig/iptables:???? [確定]
?
準備一臺機器,網卡設置為vmnet,用于分配IP地址
修改機器的 BIOS啟動順序為網絡優先,加電后開始啟動。
使用shift+上移
F10保存
?
一切都準備好以后,那就開始安裝把!!!
安裝完成后,啟動時記得修改機器的 BIOS啟動順序修改回來
?
進入系統,查看是否成功配置yum源
?
轉載于:https://blog.51cto.com/guochenyong/1977189
總結
以上是生活随笔為你收集整理的Linux网络安装(PXE + DHCP+TFTP+ Kickstart+ FTP)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 字
- 下一篇: npm WARN enoent ENOE