超好懂的PXE+Kickstart批量安裝CentOS6.2教程(山寨版)

原文題目:

超好懂的PXE+Kickstart批量安裝RHEL5教程。大家應該能搜着。(csdn不能添加此鏈接?!)

 

對原文做的修改:

1 一些路徑錯誤等;

2 CentOS6.2差異;

修改均以紅字標明。

 

試驗環境:

服務器環境:

    虛擬機 vmware workstation 8

    操作系統 Centos-6.2 -x86_64-bin-DVD1.iso

    分發給客戶機的操作系統同上 

客戶機:

    Dell Optiplex 390

 

kickstart 服務器啓動的checklist

1 httpd 是否啓動  service httpd status (http是本操作流程共享文件的方式,其它方式沒有驗證

2 dhcpd 是否啓動 service dhcpd status

3 tftp 是否啓動

     netstat -a | grep tftp

    顯示結果爲

    udp 0 0 *:tftp *:*

    表明服務已經開啓

4 iptables是否關閉 service iptables status

下面紅字沒有驗證

禁止防火牆在系統啓動時啓動

chkconfig iptables off       禁止在當前運行級上啓動


/sbin/chkconfig --level 2345 iptables off    禁止在運行級2345上啓動

 

5  SeLinux是否關閉

查看SELinux命令:getenforce;
關閉SELinux命令:setenforce 0。

 

==========================================================================

 

本文記錄了用Kickstart實現無人值守安裝,搭建RHCE實驗室環境的詳細步驟。文中使用的環境爲CentOS6.2。文章作者撫琴煮酒(Andrew Yu)是經驗豐富的Linux/Unix系統工程師,並曾經擔任過一段時間的RHCE講師的工作。

原理和概念

什麼是PXE

嚴格來說,PXE 並不是一種安裝方式,而是一種引導的方式。進行 PXE 安裝的必要條件是要安裝的計算機中包含一個 PXE 支持的網卡(NIC),即網卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment,直譯爲預啓動執行環境)協議使計算機可以通過網絡啓動。協議分爲 client 和 server 端,PXE client 在網卡的 ROM 中,當計算機引導時,BIOS 把 PXE client 調入內存執行,由 PXE client 將放置在遠端的文件通過網絡下載到本地運行。運行 PXE 協議需要設置 DHCP 服務器和 TFTP 服務器。DHCP 服務器用來給 PXE client(將要安裝系統的主機)分配一個 IP 地址,由於是給 PXE client 分配 IP 地址,所以在配置 DHCP 服務器時需要增加相應的 PXE 設置。此外,在 PXE client 的 ROM 中,已經存在了 TFTP Client。PXE Client 通過 TFTP 協議到 TFTP Server 上下載所需的文件。

什麼是KickStart

KickStart是一種無人職守安裝方式。KickStart的工作原理是通過記錄典型的安裝過程中所需人工干預填寫的各種參數,並生成一個名爲ks.cfg的文件;在其後的安裝過程中(不只侷限於生成KickStart安裝文件的機器)當出現要求填寫參數的情況時,安裝程序會首先去查找KickStart生成的文件,當找到合適的參數時,就採用找到的參數,當沒有找到合適的參數時,才需要安裝者手工干預。這樣,如果KickStart文件涵蓋了安裝過程中出現的所有需要填寫的參數時,安裝者完全可以只告訴安裝程序從何處取ks.cfg文件,然後去忙自己的事情。等安裝完畢,安裝程序會根據ks.cfg中設置的重啓選項來重啓系統,並結束安裝。

PXE + KickStart安裝的條件

執行 PXE + KickStart安裝需要的設備爲:

  1. DHCP 服務器
  2. TFTP 服務器
  3. KickStart所生成的ks.cfg配置文件
  4. 一臺存放系統安裝文件的服務器,如 NFS、HTTP 或 FTP 服務器
  5. 帶有一個 PXE 支持網卡的將安裝的主機

安裝的步驟

一、安裝httpd

yum -y install httpd* (CentOS6.2 缺省已經安裝,但是沒有啓動。啓動命令: service httpd start)

二、掛載CentOS6.2的DVD光盤,並複製第一張光盤下的所有內容(文件和文件夾)到/var/html/www下(應該是:到/var/wwwhtml/

注:試驗中掛載真正的光盤時,總是掛不上。後來把光盤製作成iso,在虛擬機上作爲光驅,才掛載成功。

mount -t iso9660  /dev/cdrom  /mnt/cdrom
cp –rf   /mnt/cdrom/*   /var/www/html/
三、安裝 tftp-server,並啓用tftp服務,重啓xinetd進程
注:tftp服務器安裝,本博客已有另文專述
rpm -ivh tftp-server-0.39-1.i386.rpm
vi /etc/xinetd.d/tftp
# default: off
# description: The tftp server serves files using the trivial file transfer \
#    protocol.   The tftp protocol is often used to boot diskless \
#    workstations, download configuration files to network-aware printers, \
#    and to start the installation process for some operating systems.
service tftp
{
       socket_type          = dgram
       protocol             = udp
       wait                    = yes
       user                    = root
       server                = /usr/sbin/in.tftpd
       server_args          = -s /var/lib/tftpboot
       disable                 = no #disable的直由yes變爲no
       per_source              = 11
       cps                   = 100 2
       flags                = IPv4
}
service xinetd restart

四、配置支持PXE啓動

注意我已經把第一張光盤的內容複製到/var/www/html目錄中了,所以所需要的文件我只需要從/var/www/html目錄中複製就行了,但在描述的時候,我還是表明了文件的真實的位置,比如在DVD光盤的哪個中,只是文件我是從/var/www/html目錄中複製而已,大家也可學我樣偷懶

1、進入tftpboot文件夾,沒有就建一個,有了就不用建了。

cd /var/lib/tftpboot/

2、把pxelinux.0複製到/tftpboot/中

cd  /usr/share/syslinux (注:這個目錄與redhat5不同。)

cp pxelinux.0 /var/lib/tftpboot
cp vesamenu.c32 /var/lib/tftpboot (注:原文沒有拷貝此文件,但試驗中發現需要)

3、把Linux第一張安裝光盤上/image/pxeboot/initrd.img和vmlinux複製到/tftpboot/中

cp /var/www/html/image/pxeboot/initrd.img   /var/lib/tftpboot
      cp /var/www/html/image/pxeboot/vmlinux   /var/lib/tftpboot

4、 複製第一張安裝光盤上的isolinux/*.msg到/tftpboot/中

cp /var/www/html/isolinux/*.msg   /var/lib/tftpboot

5、 在tftpboot中新建一個pxelinux.cfg目錄

mkdir pxelinux.cfg

6、 把Linux第一張安裝光盤上isolinux目錄中的isolinux.cfg複製到pxelinux.cfg目錄中,並同時更改文件名稱爲default

cd pxelinux.cfg
cp /var/www/html/isolinux/isolinux.cfg   /var/lib/tftpboot/pxelinux.cfg/default

7、 在上一步中,我們暫時不要修改default文件。其實到達這一步驟的時候,我都就可以通過網絡引導了,通過網絡引導之後接下了就可以手動安裝了,但是這裏面我們討論的是無人值守安裝,而所謂無人值守安裝就是在從引導到安裝都不需要手動指定,一氣呵成。我們接下來繼續講解。

六、安裝dhcp服務,同時修改配置

注:dhcp服務安裝本博客已有另文專述。

1、 安裝

rpm -ivh dhcp-3.0.1-12_EL.i386.rpm (注意: centos 下的包名不同)

2、 複製配置模板文件到指定的目錄中,並重命名

cp /usr/share/doc/dhcp-3.0.1/dhcpd.conf.sample /etc/dhcpd.conf

3、 修改配置文件,添加一行:filename "/pxelinux.0",其他的修改自己完成就行了。這文件的位置一定要注意,不然會失敗,切記

[root@localhost isolinux]# vim /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
next-server 192.168.1.14;     #PXE服務器IP地址
filename "/pxelinux.0";           #注意此行的位置,寫在subnet下面的話會失敗                                                                           

subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway
           option routers                    192.168.1.254;
           option subnet-mask                  255.255.255.0;

           option nis-domain                 "example.com";
           option domain-name                  "example.com";
           option domain-name-servers        192.168.1.254;
       
           option time-offset                  -18000; # Eastern Standard Time
#        option ntp-servers                  192.168.1.1;
#        option netbios-name-servers         192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless
# -- you understand Netbios very well
#        option netbios-node-type 2;

           range dynamic-bootp 192.168.1.128 192.168.1.254;
           default-lease-time 21600;
           max-lease-time 43200;

           # we want the nameserver to appear at a fixed address
           #host ns {
            #        next-server marvin.redhat.com;
            #         hardware ethernet 12:34:56:78:AB:CD;
            #         fixed-address 192.168.1.110;
           #}
}

4、 啓動dhcp服務

service dhcp start

七、 安裝kickstart並進行配置

首先安裝Kickstart:(注:kickstart安裝時需要安裝較多關聯包,所以使用YUM本地安裝,另文專述

rpm -ivh system-config-kickstart-2.5.16-2.noarch.rpm  (注意: centos 下的包名不同)

在gnome環境下配置kickstart的指令如下:

system-config-kickstart(Centos6.2, 在菜單中選擇

之後的配置步驟如下:(注:可參考此文:www.linuxso.com/linuxrumen/23808.html有詳細設置的圖。試驗中依據此文。)

  1. 基本配置,按自己需求來就好
  2. 安裝方法,選擇httpd安裝,切記不要輸入任何的帳號,我們採用的匿名安裝
  3. 引導安裝程序選項,不需要做更改
  4. 分區信息,創建三個分區
  5. 網絡配置,我使用的靜態分配地址(動態同樣如此) (DHCP)
  6. 顯示配置,按自己需求來就好
  7. 軟件包的選擇,我選擇了Kernel Developent和Development Tools安裝(但千萬不要選擇這兩個軟件包,不然的話在安裝的時候會報錯的)(centos虛擬機安裝時不能選擇。)
  8. 其他的都是默認設置,沒有做修改
  9. 生成文件ks.cfg,保存到/var/www/html下

八、修改/var/www/html/ks.cfg文件,指定讀取ks.cfg的方法(ks=http://192.168.1.40/ks.cfg)

(注意,以下兩圖片爲試驗成功的真實文件截圖,下面文字部分並沒有使用)

 

 

vi /var/www/html/ks.cfg
 
 
auth --useshadow --enablemd5
key --skip #這行一定要,跳過註冊號輸入,不然會失敗(centOs下此行不需要)
bootloader --location=mbr
clearpart –all –initlabel
text
firewall --disabled
firstboot --disable
keyboard us
lang en_US
logging --level=info
url --url=http://192.168.1.14/
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
rootpw --iscrypted $1$HEJKfwF9$r1l0JoPz74ToF9NbE3Qs1
selinux --disabled
timezone --isUtc Asia/Shanghai
intall
xconfig --defaultdesktop=GNOME -depth=8 --resolution=640x480
part swap --bytes-per-inode=4096 --fstype="swap" --size=512
part /boot --bytes-per-inode=4096 --fstype-"ext3" --size=200
part / --bytes-per-inode=4096 --fstype="ext3" --grow --size=1
%packages
@cluster-storage
@mysql
@development-libs
@editors
@text-internet
@x-software-development
@virtualization
@legacy-network-server
@dns-server
@gnome-desktop
@dialup
@core
@base
@ftp-server
@network-server
@clustering
@java-development
@base-x
@chinese-support
@web-server
@smb-server
@printing
@admin-tools
@development-tools
@graphical-internet
kmod-gnbd-xen
kmod-gfs-xen
perl-Convert-ASN1
perl-Crypt-SSLeay
mesa-libGLU-devel
tftp-server
kexec-tools
bridge-utils
device-mapper-multipath
ypserv
openldap-servers
vnc-server
dhcp
xorg-x11-server-Xnest
xort-x11-server-Xvfb
imake
gcc-objc
expect

最後,重新引導安裝就可以了。以上是我的配置步驟,如果沒有出入的話,是一定可以成功的!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章