第二十節(jié)览露、kickstart自動化安裝

參考文章1
參考文章2
參考文章3

一、Kickstart使用背景介紹
  • 什么是PXE
    PXE(Pre-boot Execution Environment譬胎,預(yù)啟動執(zhí)行環(huán)境)是由Intel公司開發(fā)的最新技術(shù)差牛,工作于Client/Server的網(wǎng)絡(luò)模式,支持工作站通過網(wǎng)絡(luò)從遠(yuǎn)端服務(wù)器下載映像堰乔,并由此支持通過網(wǎng)絡(luò)啟動操作系統(tǒng)偏化,在啟動過程中,終端要求服務(wù)器分配IP地址镐侯,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)協(xié)議下載一個啟動軟件包到本機內(nèi)存中執(zhí)行侦讨,由這個啟動軟件包完成終端基本軟件設(shè)置,從而引導(dǎo)預(yù)先安裝在服務(wù)器中的終端操作系統(tǒng)苟翻。
    嚴(yán)格來說韵卤,PXE 并不是一種安裝方式,而是一種引導(dǎo)方式崇猫。進(jìn)行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網(wǎng)卡(NIC)沈条,即網(wǎng)卡中必須要有 PXE Client。PXE 協(xié)議可以使計算機通過網(wǎng)絡(luò)啟動诅炉。此協(xié)議分為 Client端和 Server 端蜡歹,而PXE Client則在網(wǎng)卡的 ROM 中。當(dāng)計算機引導(dǎo)時涕烧,BIOS 把 PXE Client 調(diào)入內(nèi)存中執(zhí)行季稳,然后由 PXE Client 將放置在遠(yuǎn)端的文件通過網(wǎng)絡(luò)下載到本地運行。運行 PXE 協(xié)議需要設(shè)置 DHCP 服務(wù)器和 TFTP 服務(wù)器澈魄。DHCP 服務(wù)器會給 PXE Client(將要安裝系統(tǒng)的主機)分配一個 IP 地址,由于是給 PXE Client 分配 IP 地址仲翎,所以在配置 DHCP 服務(wù)器時需要增加相應(yīng)的 PXE 設(shè)置痹扇。此外铛漓,在 PXE Client 的 ROM 中,已經(jīng)存在了 TFTP Client鲫构,那么它就可以通過 TFTP 協(xié)議到 TFTP Server 上下載所需的文件了浓恶。
  • PXE的工作過程:
  1. PXE Client 從自己的PXE網(wǎng)卡啟動,通過PXE BootROM(自啟動芯片)會以UDP(簡單用戶數(shù)據(jù)報協(xié)議)發(fā)送一個廣播請求结笨,向本網(wǎng)絡(luò)中的DHCP服務(wù)器索取IP包晰;
  2. DHCP 服務(wù)器返回分配給客戶機的IP 以及PXE文件的放置位置(該文件一般是放在一臺TFTP服務(wù)器上) ;
  3. 客戶端下載啟動安裝程序所必須的文件(pxelinux.0炕吸、pxelinux.cfg/default)伐憾。default文件下載完成后,會根據(jù)該文件中定義的引導(dǎo)順序赫模,啟動Linux安裝程序的引導(dǎo)內(nèi)核树肃。
  4. 根據(jù)pxelinux.0 的執(zhí)行結(jié)果,通過TFTP服務(wù)器加載內(nèi)核和文件系統(tǒng)(pxelinux.cfg/default瀑罗、vmlinuz胸嘴、initrd.img);
  5. 客戶端通過pxelinux.cfg/default文件成功的引導(dǎo)Linux安裝內(nèi)核后斩祭,安裝程序首先必須確定你通過什么安裝介質(zhì)來安裝linux劣像,如果是通過網(wǎng)絡(luò)安裝(NFS, FTP, HTTP),則會在這個時候初始化網(wǎng)絡(luò)摧玫,并定位安裝源位置耳奕。接著會讀取default文件中指定的自動應(yīng)答文件ks.cfg所在位置,根據(jù)該位置請求下載該文件席赂。
    6.將ks.cfg文件下載回來后吮铭,通過該文件找到OS Server,并按照該文件的配置請求下載安裝過程需要的軟件包颅停。OS Server和客戶端建立連接后谓晌,將開始傳輸軟件包,客戶端將開始安裝操作系統(tǒng)癞揉。安裝完成后纸肉,將提示重新引導(dǎo)計算機
    詳細(xì)工作流程,請參考下面這幅圖:


    PXE原理.jpg
  • 什么是Kickstart
    Kickstart是一種無人值守的安裝方式喊熟。它的工作原理是在安裝過程中記錄典型的需要人工干預(yù)填寫的各種參數(shù)柏肪,并生成一個名為ks.cfg的文件。如果在安裝過程中(不只局限于生成Kickstart安裝文件的機器)出現(xiàn)要填寫參數(shù)的情況芥牌,安裝程序首先會去查找Kickstart生成的文件烦味,如果找到合適的參數(shù),就采用所找到的參數(shù);如果沒有找到合適的參數(shù)谬俄,便需要安裝者手工干預(yù)了柏靶。所以,如果Kickstart文件涵蓋了安裝過程中可能出現(xiàn)的所有需要填寫的參數(shù)溃论,那么安裝者完全可以只告訴安裝程序從何處取ks.cfg文件屎蜓,然后就去忙自己的事情。等安裝完畢钥勋,安裝程序會根據(jù)ks.cfg中的設(shè)置重啟系統(tǒng)炬转,并結(jié)束安裝。


    kickstart自動化安裝原理.jpg

    這里可以將DHCP/TFTP/NFS全部安裝在同一臺機器上

二算灸、服務(wù)配置安裝(分配IP192.168.15.150)

環(huán)境準(zhǔn)備局域網(wǎng)內(nèi)已提供yum源(Nginx服務(wù)器端口8088)192.168.15.131:8088
登錄kickstart服務(wù)器備份默認(rèn)yum源目錄,從yum服務(wù)器遠(yuǎn)程拷貝文件到目錄

##150服務(wù)器
[root@mini ~]# cd /etc/   
[root@mini etc]# cp -R yum.repos.d    yum.repos.d.bak  
#備份原始yum源配置文件
[root@mini yum.repos.d]# rm -rf /etc/yum.repos.d/*
#刪除配置目錄下所有文件
[root@mini yum.repos.d]#  vim centos.repo
[yum]                               
name=centos6.5                     
baseurl=http://192.168.15.131:8088/CentOS6.5/  
enabled=1                        
gpgcheck=0      
#創(chuàng)建網(wǎng)絡(luò)源配置文件
[root@mini yum.repos.d]# yum clean all
#清除yum緩存
[root@mini yum.repos.d]# yum repolist
Loaded plugins: aliases, changelog, downloadonly, fastestmirror, kabi, presto, security, tmprepo, verify,
              : versionlock
Loading support for CentOS kernel ABI
Determining fastest mirrors
yum                                                                                        | 4.0 kB     00:00     
yum/primary_db                                                                             | 4.4 MB     00:00     
repo id                                              repo name                                              status
yum                                                  centos6.5                                              6,367
repolist: 6,367
#查看更換yum源成功
  • 安裝DHCP/TFTP服務(wù)
[root@mini ~]# yum install dhcp* tftp* -y
#開啟tftp服務(wù)
[root@mini ~]# 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  #默認(rèn)yes不開啟
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
#tftp服務(wù)是掛載在超級進(jìn)程xinetd 下的扼劈,所以通過啟動xinetd 來啟動tftp服務(wù)。
[root@mini ~]# /etc/init.d/xinetd restart

配置DHCP服務(wù)

[root@mini data]#  vim /etc/dhcp/dhcpd.conf 
###################
ddns-update-style interim;    #忽略客戶端更新
ignore client-updates;  
next-server 192.168.15.150;  #指定NFS客戶端地址
filename "pxelinux.0";   #指定默認(rèn)查找的文件名
allow booting;  
allow bootp;   #允許啟動
subnet 192.168.15.0 netmask 255.255.255.0 {
# --- default gateway
option routers          192.168.15.1;
option subnet-mask      255.255.252.0;
range dynamic-bootp 192.168.15.170 192.168.15.200;

host ns {
        hardware ethernet  00:1a:a0:2b:38:81;
        fixed-address 192.168.15.101;}
}
[root@mini data]# /etc/init.d/dhcpd restart
  • TFTP+PXE配置
    要實現(xiàn)遠(yuǎn)程安裝系統(tǒng)乎婿,首先需要在TFTPBOOT目錄指定相關(guān)PXE內(nèi)核模塊及相關(guān)參數(shù)测僵。(客戶端請求后從服務(wù)端下載的一些啟動文件)
    配置步驟如下:
[root@mini tftpboot]# ln -s /var/lib/tftpboot  /
[root@mini tftpboot]# cd /
#把tftp的目錄軟鏈接到根目錄
[root@mini /]# ll  /tftpboot
lrwxrwxrwx    1 root root    17 Dec 11 16:26 tftpboot -> /var/lib/tftpboot
[root@mini ~]# mount /dev/cdrom /mnt
mount: block device /dev/sr0 is write-protected, mounting read-only
#將光驅(qū)的系統(tǒng)盤掛載到/mnt目錄
[root@mini tftpboot]# find / -name "pxelinux.0"
/usr/share/syslinux/pxelinux.0
#查找啟動文件pxelinux.0位置,如果不存在通過下面程序安裝
[root@mini syslinux]# yum install syslinux syslinux-devel -y
[root@mini syslinux]# cp /usr/share/syslinux/pxelinux.0  /tftpboot/
#拷貝啟動引導(dǎo)文件到tftp根目錄
[root@mini tmp]# cp /mnt/images/pxeboot/vmlinuz  /tftpboot/
[root@mini tftpboot]# cp /mnt/images/pxeboot/initrd.img  /tftpboot/
#拷貝光盤中的內(nèi)核啟動文件到tftp根目錄
#創(chuàng)建引導(dǎo)菜單文件目錄,從光驅(qū)拷貝文件并重命名
[root@mini tftpboot]# mkdir pxelinux.cfg
[root@mini tftpboot]# cd pxelinux.cfg/
[root@mini pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default
[root@mini tftpboot]# tree
.
├── initrd.img
├── pxelinux.0
├── pxelinux.cfg
│   └── default
└── vmlinuz

修改引導(dǎo)文件/tftpboot/pxelinux.cfg/default

[root@mini tftpboot]# vim /tftpboot/pxelinux.cfg/default 
default linux    # 默認(rèn)加載一個菜單
#prompt 1 # 開啟會顯示命令行'boot: '提示符。prompt值為0時則不提示谢翎,將會直接啟動'default'參數(shù)中指定的內(nèi)容
timeout 10  # timeout時間是引導(dǎo)時等待用戶手動選擇的時間捍靠,設(shè)為1可直接引導(dǎo),單位為1/10秒
display boot.msg   # 菜單背景圖片森逮、標(biāo)題榨婆、顏色。
#########
label linux  # label指定在boot:提示符下輸入的關(guān)鍵字褒侧,比如boot:linux[ENTER]良风,這個會啟動label linux下標(biāo)記的kernel和initrd.img文件。
kernel vmlinuz   # 指定要啟動的內(nèi)核闷供。同樣要注意路徑烟央,默認(rèn)是/tftpboot目錄
append ks=nfs:192.168.15.150:/data/centosinstall/ks.cfg  ksdevice=eth0 initrd=initrd.img
# 指定追加給內(nèi)核的參數(shù)
##########
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append –
  • 拷貝光盤文件到/data目錄下新建的centosinstall目錄,并且利用nfs共享該目錄
[root@mini data]# mkdir centosinstall
[root@mini data]# nohup cp /mnt/*  /data/centosinstall/ -a &
#后臺拷貝
[root@mini data]# yum install nfs* -y 
#安裝NFS
[root@mini data]# vim /etc/exports 
/data/centosinstall/    *(rw,sync)
#共享目錄/data/centosinstall/
[root@mini data]#  /etc/init.d/rpcbind restart
[root@mini data]# /etc/init.d/nfs restart   
#依次重啟依賴服務(wù)rpcbind和nfs
  • 在centosinstall目錄下新建ks.cfg文件(定義硬盤分區(qū)及安裝軟件包)
    默認(rèn)記錄系統(tǒng)安裝步驟的文件/root/anaconda-ks.cfg
[root@mini data]# vim /data/centosinstall/ks.cfg
# Kickstart file automatically generated by anaconda.   #注釋語句這是kickstart自動安裝腳本
install      #開始安裝
text          #文本模式安裝
nfs --server=192.168.15.150 --dir=/data/centosinstall/  #指定nfs服務(wù)器目錄后面帶/號
key --skip   #跳過密鑰
lang zh_CN.UTF-8  #字符集
keyboard us
network --device eth0 --bootproto=dhcp --noipv6 #網(wǎng)卡dhcp自動獲取
rootpw 123456  #root密碼
firewall --disabled  #禁用防火墻
authconfig --enableshadow --enablemd5
selinux --disabled  #禁止selinux
timezone Asia/Shanghai   #時區(qū)
bootloader --location=mbr --driveorder=sda --append="rhgb quiet" #引導(dǎo)方式mbr,安裝到硬盤sda,打印默認(rèn)信息
clearpart --all --initlabel  #初始化所有磁盤分區(qū)
part /boot --fstype ext3 --size=200  # /boot分配200M
part swap --size=1024     #swap交換分區(qū)1G
part / --fstype ext3 --size=80000  #根分區(qū)8G
part /data --fstype ext3 --size=200 --grow #data分區(qū)占剩余所有空間
reboot  #重啟
%packages  #定義安裝軟件包,可以去/root/anaconda-ks.cfg復(fù)制光盤系統(tǒng)安裝的包
@base
@core
@chinese-support
@compat-libraries
@core
@debugging
@development
@java-platform
@perl-runtime
@server-policy
@workstation-policy
yum-plugin-aliases
tboot
nss_db
linuxptp
rsyslog-gssapi
udftools
rsyslog-relp
audispd-plugins
mtools
yum-plugin-versionlock
sox
dumpet
gpm
yum-plugin-tmprepo
pax
python-dmidecode
uuidd
yum-presto
oddjob
wodim
volume_key
squashfs-tools
star
kernel-doc
tunctl
yum-plugin-downloadonly
sgpio
yum-plugin-changelog
genisoimage
brltty
yum-plugin-verify
x86info
dos2unix
cpupowerutils
unix2dos
kabi-yum-plugins
edac-utils
device-mapper-persistent-data
logwatch
rsyslog-gnutls
PyPAM
mkbootdisk
ecryptfs-utils
python-volume_key
zsh
ncurses-term
cjkuni-fonts-ghostscript
glibc-utils
systemtap-client
memtest86+
gdb-gdbserver
ps_mem
lslk
flightrecorder
systemtap-initscript
systemtap-sdt-devel
dejagnu
ElectricFence
ant
libstdc++-docs
gcc-gnat
expect
mod_dav_svn
perltidy
cmake
imake
babel
ksc
kdewebdev
rpmdevtools
compat-gcc-34
systemtap-server
cvs-inetd
gcc-java
compat-gcc-34-g77
jpackage-utils
bzr
mercurial
chrpath
gcc-objc
rpmlint
gcc-objc++
compat-gcc-34-c++
python-docs
nasm
icedtea-web
perl-LDAP
perl-Frontier-RPC
perl-Date-Calc
perl-suidperl
perl-Date-Manip
perl-Mozilla-LDAP
perl-DBD-SQLite
%end
[root@mini data]# chmod 777 /data/centosinstall/ks.cfg 
#更改授權(quán)
重啟所有服務(wù)
[root@mini ~]# /etc/init.d/xinetd restart       #TFTP依賴服務(wù)
[root@mini ~]#  /etc/init.d/rpcbind restart   #NFS依賴服務(wù)
[root@mini ~]# /etc/init.d/nfs restart           #NFS服務(wù)
[root@mini ~]#  /etc/init.d/dhcpd restart     #DHCP服務(wù)
#備注:/data/centosinstall/ks.cfg文件第4行配置NFS服務(wù)器的目錄最后不需帶/號否則安裝時會報錯
利用虛擬機給服務(wù)器自動安裝centos系統(tǒng)
  • 首先利用PE系統(tǒng)格式化硬盤(一般服務(wù)器都是做好raid的虛擬硬盤),如果是全新的機器只要檢查RAID是否完成,一般系統(tǒng)開機順序是先檢測硬盤再檢測網(wǎng)卡,如果手動更改啟動BOOT順序,自動化安裝重啟后會繼續(xù)循環(huán)安裝,因此最好保證啟動順序是第一硬盤,第二網(wǎng)絡(luò),否則需要再系統(tǒng)安裝完成重啟時手動操作.
  • 虛擬機開啟所有服務(wù)(xinetd/nfs/dhcp)后,網(wǎng)卡由原本的NAT模式改為橋接模式
  • 打開虛擬機的虛擬網(wǎng)絡(luò)編輯器功能,關(guān)閉DHCP分配地址功能,并將橋接模式下的網(wǎng)卡改為物理網(wǎng)卡(筆記本一般都橋接到無線網(wǎng)卡上)
  • 修改筆記本物理網(wǎng)卡的IP地址,同時利用交換機將筆記本,服務(wù)器連接在統(tǒng)一個局域網(wǎng)中
  • 啟動服務(wù)器等待系統(tǒng)安裝完成即可
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末歪脏,一起剝皮案震驚了整個濱河市疑俭,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌婿失,老刑警劉巖钞艇,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異豪硅,居然都是意外死亡哩照,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進(jìn)店門懒浮,熙熙樓的掌柜王于貴愁眉苦臉地迎上來飘弧,“玉大人,你說我怎么就攤上這事∶心粒” “怎么了蹋岩?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長学少。 經(jīng)常有香客問我,道長秧骑,這世上最難降的妖魔是什么版确? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮乎折,結(jié)果婚禮上绒疗,老公的妹妹穿的比我還像新娘。我一直安慰自己骂澄,他們只是感情好吓蘑,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著坟冲,像睡著了一般磨镶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上健提,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天琳猫,我揣著相機與錄音,去河邊找鬼私痹。 笑死脐嫂,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的紊遵。 我是一名探鬼主播账千,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼暗膜!你這毒婦竟也來了匀奏?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤桦山,失蹤者是張志新(化名)和其女友劉穎攒射,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體恒水,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡会放,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钉凌。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片咧最。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矢沿,到底是詐尸還是另有隱情滥搭,我是刑警寧澤,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布捣鲸,位于F島的核電站瑟匆,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏栽惶。R本人自食惡果不足惜愁溜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望外厂。 院中可真熱鬧冕象,春花似錦、人聲如沸汁蝶。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽掖棉。三九已至墓律,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間啊片,已是汗流浹背只锻。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留紫谷,地道東北人齐饮。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像笤昨,于是被迫代替她去往敵國和親祖驱。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348