Redhat或Fedora下實(shí)現(xiàn)網(wǎng)絡(luò)無人值守安裝

字號:

Redhat或Fedora下實(shí)現(xiàn)網(wǎng)絡(luò)無人值守安裝(Kickstart)
    需求分析:公司業(yè)務(wù)擴(kuò)展,需要新建立一個辦公局域網(wǎng),新機(jī)已經(jīng)購置且配置不一(網(wǎng)卡支持網(wǎng)絡(luò)啟動功能)。為了追求穩(wěn)定性,領(lǐng)導(dǎo)決定全部采用Redhat操作系統(tǒng)。如果采用常規(guī)的安裝方法即耗時又繁瑣,稍有不慎,還容易系統(tǒng)配置出現(xiàn)差異。也不利于以后的管理。
    引用概念:為了滿足這種需求,Red Hat 發(fā)展出kickstart 的安裝方式。配合服務(wù)器的lftp、DHCP服務(wù)它可以實(shí)現(xiàn)客戶機(jī)的無人值守的自動網(wǎng)絡(luò)安裝。這部分我們實(shí)戰(zhàn)Kickstart 的實(shí)現(xiàn)。
    網(wǎng)絡(luò)結(jié)構(gòu)
    局域網(wǎng)的IP網(wǎng)段為192.168.1.0
    共享服務(wù)器A,IP為192.168.1.254
    簡單配置情況:
    配置一個yum源,并可以通過ftp://192.168.1.254/pub/redhat訪問;
    安裝并配置Kickstart程序。
    安裝服務(wù)器B,IP為192.168.1.253
    簡單配置情況:
    配置DHCP服務(wù),為局域網(wǎng)中的*機(jī)提供IP地址,并說明啟動所需的文件;
    配置tftp服務(wù),允許客戶機(jī)下載啟動映象文件。
    操作步驟:
    一、在A機(jī)配置FTP服務(wù)和yum源
    安裝FTP服務(wù)
    [root@localhost Server]# rpm -ivh vsftpd-2.0.5-10.el5.i386.rpm
    啟動服務(wù)
    [root@localhost Server]# service vsftpd start
    為 vsftpd 啟動 vsftpd: [確定]
    配置yum源
    通過光盤或其它途徑安裝yum和createpreo軟件
    [root@localhost Server]# rpm -ivh yum-utils-1.0.4-3.el5.noarch.rpm rpm
    [root@localhost Server]# rpm -ivh createrepo-0.4.4-2.fc6.noarch.rpm
    將安裝光盤中的內(nèi)容完整復(fù)制到ftp公共目錄下,并修改yum的配置文件,方便起見我們用腳本實(shí)現(xiàn)yum數(shù)據(jù)庫的更新
    #!/bin/bash
    cd /var/ftp/pub/redhat
    rm -rf Server/.olddata/
    rm -rf VT/.olddata/
    rm -rf Cluster/.olddata/
    rm -rf ClusterStorage/.olddata/
    for i in `find | grep “xml$” | grep “comps”`;do createrepo -g ${i#./*/} ${i%/*/*.xml}; done
    exit 0
    二、在B機(jī)上配置tftp服務(wù)
    [root@localhost Server]# rpm -ivh tftp-server-0.42-3.1.i386.rpm
    確保服務(wù)是啟用狀態(tài)
    [root@localhost Server]# chkconfig –list |grep tftp
    tftp: 關(guān)閉
    [root@localhost Server]# chkconfig tftp on
    [root@localhost Server]# chkconfig –list |grep tftp
    tftp: 啟用
    重新加載管理tftp服務(wù)的xinetd守護(hù)進(jìn)程
    [root@localhost Server]# service xinetd restart
    停止 xinetd: [確定]
    啟動 xinetd: [確定]
    三、在B機(jī)上配置PEXlinux
    拷貝支持PEX啟動方式的bootloader到/tftpboot目錄下
    [root@localhost tftpboot]# cp -p /usr/lib/syslinux/pxelinux.0 /tftpboot
    拷貝微型內(nèi)核到/tftpboot下
    [root@localhost redhat]# cp /var/ftp/pub/redhat/isolinux/* /tftpboot/
    在tftpboot目錄下建立一個目錄單獨(dú)存啟動syslinux配置文件
    [root@localhost tftpboot]# mkdir pxelinux.cfg
    修改模板isolinux.cfg的配置文件,并使它生效
    [root@localhost tftpboot]# cp isolinux.cfg default.cfg
    如果需要自定義啟動微型內(nèi)核時輸入的文本和響應(yīng)的操作請編輯default.cfg?!efault linux
    prompt 1
    timeout 600
    display boot.msg
    F1 boot.msg
    F2 options.msg
    F3 general.msg
    F4 param.msg
    F5 rescue.msg
    label linux
    kernel vmlinuz
    append initrd=initrd.img
    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 -
    四、在B機(jī)上配置DHCP服務(wù)
    重點(diǎn)是在常規(guī)配置好的DHCP配置文件中增加兩行next-server 192.168.1.253; #TFTPServer的IP
    filename “pxelinux.0″;#pxelinux loader文件位置
    五、最核心的步驟:創(chuàng)建kickstart腳本
    由于創(chuàng)建Kickstart配置腳本要用到本機(jī)的Yum源,我們?yōu)榱朔奖闫鹨姡诎惭b有yum源的服務(wù)機(jī)A上配置。
    安裝kickstart配置程序
    [root@localhost Server]# rpm -ivh system-config-kickstart-2.6.19.1-1.el5.noarch.rpm
    安裝簡易操作工具
    [root@localhost Server]# rpm -ivh pykickstart-0.43-1.el5.noarch.rpm
    現(xiàn)在我們可以在圖形下創(chuàng)建ks腳本了。
    最后要做的是把ks.cfg腳本放置到可以任意的可以匿名訪問的服務(wù)器上,我把它放到A機(jī)上的FTP目錄下,/var/ftp/pub下。
    五、測試
    現(xiàn)在就可以進(jìn)行測試了,當(dāng)然如果你愿意的話還可以在ks.cfg腳本中增加安裝完成后的執(zhí)行的shell命令。詳情請查看下一頁附錄一。
    在BIOS或手動設(shè)置客戶機(jī)從LAN啟動,客戶機(jī)會從tftp服務(wù)器上加載啟動的微型內(nèi)核,默認(rèn)在default.cfg未做修改情況下,我們可以通過在開始的boot:提示處輸入boot: linux ks=ftp://192.168.1.254/pub/ks.cfg來要求電腦執(zhí)行Kickstart安裝。
    我們在這里要說明一點(diǎn)對于ks.cfg配置文件的位置,可以有多種形式獲取,FTP,HTTP,NFS,都是有效的。如下:
    boot: linux ks=http:server:/path
    如果你愿意的話,我們也可以修改default.cfg文件,直接把ks.cfg的地址添加到其中,例如:
    label ks
    kernel vmlinuz
    append ks initrd=initrd.img
    這幾行我們可以改寫成
    label ks
    kernel vmlinuz
    append ks initrd=initrd.img ks=tfp://192.168.254/ks.cfg
    這樣我們輸入linux ks就自動從tfp://192.168.254/ks.cfg下載配置文件;
    甚至于我們可以設(shè)備默認(rèn)不輸入內(nèi)容時操作:
    接下來就喝杯茶休息一下吧。
    ks.cfg 文件由三個部份皆組成:
    command 區(qū)段—此部份包含了必要安裝選項
    packages 區(qū)段—列出欲安裝套件
    %pre and %post 區(qū)段
    command 區(qū)段  ■lang(必要):安裝時所使用的語言
    例如:安裝過程中選用中文語言,lang zh_TW.Big5
    ■langsupport (必要):指定系統(tǒng)使用的語言。假如你安裝一至多國語系,你必需使用默認(rèn)選項去指定默認(rèn)語言。語法為:
    例如:langsupport –default en_US.UTF-8 zh_TW.Big5 en_US.UTF-8
    ■鍵盤(必要):設(shè)置系統(tǒng)鍵盤的種類。語法為:keyboard us
    ■鼠標(biāo)(必要):設(shè)置鼠標(biāo)。語法為:
    mouse- -device=ttvS0(鼠標(biāo)識別裝置位置)- - emulthree(仿真三個按鍵)generics/2(定義鼠標(biāo)種類)
    ■timezone(必要) 設(shè)置系統(tǒng)時區(qū)。
    timezone Asia/Taipei (指定你的時區(qū)位置)
    ■設(shè)置系統(tǒng)鍵盤的種類。語法為:keyboard us
    ■鼠標(biāo)(必要):設(shè)置鼠標(biāo)。語法為:
    mouse- -device=ttvS0(鼠標(biāo)識別裝置位置)- - emulthree(仿真三個按鍵)generics/2(定義鼠標(biāo)種類)
    ■xconfig(非必要):在安裝過程中手動設(shè)置X,假如你不想安裝X,你不應(yīng)該使用此選項。命令的格式為:
    ■xconfig- - card(顯示卡類別)- - videoram(指定顯示卡記憶容量)- - hsync(指定屏幕水平掃描頻率)- -
    vsync(指定屏幕垂直掃描頻率)- - resolution(指定屏幕分辨率) - - depth(指定X 窗口系統(tǒng)彩度)- -
    startxonboot (假如你想在系統(tǒng)開機(jī)時激活X 時使用)- - defaultdesktop gnome(或kde)(指定默認(rèn)桌面)。
    ■install (非必要):告知系統(tǒng)安裝一個新的安裝。這是默認(rèn)模式,因此一個新的安裝不需再選用這個命令。接著您必需指定安裝方式,可以是cdrom、harddrive、nfs 或url。
    ■cdrom
    ■harddrive—partition=your partition –dir=/your directory path
    – partition = 來源分區(qū)
    – dir = Red Hat 子目錄
    (請確定你所鍵入來源分區(qū)和子目錄信息的正確性)。
    ■nfs – server—your server –dir=/your directory path
    – server = 指定安裝來源服務(wù)器
    – dir = Red Hat 子目錄
    (請確定你所鍵入來源分區(qū)和子目錄信息的正確性)。
    ■url – url http://your server/dir
    使用HTTP 進(jìn)行安裝
    ■url – url ftp://your username:password@your server/dir
    使用FTP 進(jìn)行安裝
    ■rootpw (必要) 設(shè)置一組系統(tǒng)root 密碼。
    rootpw - - iscrypted (表示密碼已被加密) password
    ■firewall(非必要) 提供安全性等級來保護(hù)系統(tǒng)。
    ■authconfig (必要) 設(shè)置系統(tǒng)認(rèn)證選項。命令格式:
    - -enablemd5 (使用md5 編碼使用者密碼)
    - -enableshadow (使用shadow 密碼)
    ■bootloader (必要) 指定開機(jī)管理程序的位置和傳遞任何kernel 選項。默認(rèn)開機(jī)管理程序為GRUB,但是你也能選擇LILO 開機(jī)管理程序來取代GRUB。命令格式為:
    - - location=mbr (指定開機(jī)管理程序的位置)
    - -append=(指定要傳遞的核心參數(shù))。
    - -useLilo (使用LILO 為開機(jī)管理程序)。
    ■clearpart (非必要)告知系統(tǒng)移除系統(tǒng)上的分區(qū)。你可以使用clearpart 移除Linux 分區(qū)以及移除所有的分區(qū),或者你也能指定你想要移除分區(qū)的磁碟機(jī)。命令格式為:
    – linux (移除所有Linux 分區(qū))
    - - all (移除系統(tǒng)上所有的分區(qū))
    – drives = (指定要移除分區(qū)的磁盤驅(qū)動器)
    ■Part (必要) 安裝時是必要的,升級時請忽略。使用這個命令你能為系統(tǒng)建立分區(qū)。
    package 區(qū)段安裝一個新的系統(tǒng),你必需選擇你想安裝的套件。選擇欲安裝的套件是使用%packages 命令。套件可分為單一套件或者是套件組。你能在第一片Red Hat安裝光盤下的/base/comps.xml 尋找群組套件清單。通常,只需列出套件組不需要列出單一套件。注意!默認(rèn)之下core 和base 群組是被選取的,所以也不需要在 %packages 這個區(qū)段下去指定它們。
    如同利用ksconfig 所產(chǎn)生出來的ks.cfg %packages 區(qū)段中套件組是一行指定一個,以@節(jié)號開頭,后面加上一格空白接下來是完整群組名稱就如同comps.xml 文件所指定。如果個別單一套件并列出該單一套件名,不加上額外的字符。
    套件組是一行指定一個,以@節(jié)號開頭,后面加上一格空白接下來是完整群組名稱就如同comps.xml 文件所指定。如果是個別單一套件則列出該單一套件名,前面不需加上額外的字符。
    %package 有三個選項可以設(shè)置:
    ◆- -resolvedeps
    決解自動相依性問題及安裝套件。建意選項,在安裝中由于沒使用自動決解相依性,若有相依性問題可能會造成中止安裝并且做提示響應(yīng)。
    ◆- -ignoredeps
    你選擇安裝套某套件但乎略它的相依性,可能造成此套件無法運(yùn)作,尤其是此套件需要其它相依的套件。
    ◆—ignoremissing
    標(biāo)示忽視安裝遺失套件及群組并且也不做提示響應(yīng)。
    %pre and %post 區(qū)段%pre 區(qū)段內(nèi)可填入在開始安裝操作系統(tǒng)需要先執(zhí)行的工作。%post 命令傳遞到系統(tǒng)上執(zhí)行必須在Kickstart 安裝完成后。能有效的執(zhí)行命令去安裝其它的軟件或者設(shè)置系統(tǒng)信息。