pxe+kickstart無人值守安裝linux作業系統

wang_0720發表於2013-11-05
     工作中往往需要給多臺機器批次安裝系統,如果手動安裝不僅浪費時間還很累人。有個pxe+kickstart就可以自動化的批次安裝,既節省了時間也省去了重複的手動操作,大大的提高了工作效率。本文將對使用pxe kickstart安裝配置做詳細的說明。假設網路卡支援PXE,實際上現在大多數網路卡都支援pxe。
一 安裝軟體
需要安裝以下軟體,可以用rpm安裝,這些包在系統盤裡都能找到
vsftpd
tftp-server
xinetd
system-config-kickstart
dhcp
libdhcp4client
libdhcp
dhcp-devel
libdhcp4client-devel
libdhcp-devel
二 服務配置
需要的服務有vsftp tftp dhcp,下面將對這些服務一一的進行配置
1 ftp配置
安裝完vsftpd,用預設的配置就可以,確保匿名使用者能登入。在此不作詳細介紹
2 tftp配置
安裝tftp-server後在/etc/xinetd.d/下會有tftp檔案,按照下面的配置修改,注意修改紅色字型部分。
cat /etc/xinetd.d/tftp
service tftp
{
 
       disable = no
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /tftpboot
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}
3 dhcp配置
安裝好dhcp後,複製/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample到/etc下,並改名為dhcpd.conf,具體配置可以參考下文。
cp /usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample /etc/dhcpd.conf
cat /etc/dhcpd.conf
ddns-update-style interim;
ignore client-updates;
subnet 192.168.151.0 netmask 255.255.255.0 {
    option routers            192.168.151.90;
    option subnet-mask        255.255.255.0;
    next-server 192.168.151.90; #該處指定的是tftp 伺服器的ip
    filename    "pxelinux.0"; #pxe獲得IP地址後的引導檔案
    option domain-name-servers    202.96.209.133;
    option time-offset        -18000;    # Eastern Standard Time
    range dynamic-bootp 192.168.151.91 192.168.151.99;
    default-lease-time 21600;
    max-lease-time 43200;
}
三 製作相關檔案
1 掛載linux系統光碟並將光碟中的相關檔案複製到對應目錄下。
mkdir /media
mount /dev/hdc on /media
2 複製檔案到對應目錄
mkdir /tftpboot/pxelinux.cfg
cp /usr/lib/syslinux/pxelinux.0 /tftpboot
cp /media/images/pxeboot/initrd.img /tftpboot
cp /media/images/pxeboot/vmlinuz /tftpboot
cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
3 編輯 /tftpboot/pxelinux.cfg/default
/tftpboot/pxelinux.cfg/default預設沒有寫許可權,要給予寫許可權
chmod +w /tftpboot/pxelinux.cfg/default
編輯後的default檔案如下
cat /tftpboot/pxelinux.cfg/default
default linux
prompt 1
timeout 60
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
  kernel vmlinuz
#ks.cfg為kickstart配置檔案,當有多張網路卡時用ksdevice指定從哪張網路卡啟動網路安裝,後面會介紹ks.cfg檔案的製作方法
  append linux ks=ftp://192.168.151.90/pub/ks.cfg initrd=initrd.img ksdevice=eth0
label memtest86
  kernel memtest
  append -
4 ks.cfg檔案配置
該檔案是kickstart的配置檔案,可以用各種文字編輯器修改該檔案,也可以用system-config-kickstart編譯工具來修改kickstart檔案,同樣也可以參照 anaconda-ks.cfg檔案。anaconda-ks.cfg在linux系統/root下可以找到,把修改好的ks.cfg放到ftp下。
cat /var/ftp/pub/ks.cfg
text
auth --useshadow --enablemd5
bootloader --append="rhgb quiet" --location=mbr --driveorder=hda
zerombr
clearpart --linux --drives=hda
graphical
firewall --disabled
firstboot --disable
keyboard us
#很重要,跳過序列化輸入
key --skip
lang en_US
logging --level=info
url --url=ftp://192.168.151.90/pub/OS
#dhcp獲取ip
network --bootproto=dhcp --device=eth0
reboot
#root密碼,md5值,本例為123456的md5值
rootpw --iscrypted $1$9UyMJMtm$ulLMj23O8TseWqLraUx49.
selinux --disabled
skipx
timezone --utc Asia/Shanghai
install
clearpart --linux --drives=hda
part /boot --fstype ext3 --size=100 --ondisk=hda
part /  --fstype ext3   --size=50000    --ondisk=hda
part swap       --size=1000      --ondisk=hda
#part pv.2 --size=0 --grow --ondisk=hda
#volgroup VolGroup00 --pesize=32768 pv.2
#logvol / --fstype ext3 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
#logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=1000 --grow --maxsize=2048
#安裝系統軟體包
%packages
@admin-tools
@base
@chinese-support
@core
@development-libs
@development-tools
@dialup
@editors
@gnome-desktop
@gnome-software-development
@games
@graphical-internet
@graphics
@java
@java-development
@kde-software-development
@legacy-software-development
@legacy-software-support
@openfabrics-enterprise-distribution
@printing
@ruby
@sound-and-video
@system-tools
@text-internet
@x-software-development
@base-x
kexec-tools
iscsi-initiator-utils
fipscheck
device-mapper-multipath
sgpio
python-dmidecode
imake
emacs
libsane-hpaio
festival
audit
mesa-libGLU-devel
xorg-x11-utils
xorg-x11-server-Xnest
xorg-x11-server-Xvfb
%post
#配置ip
ipaddr=`ifconfig eth0|grep -w inet|sed -e 's/^.*addr://' -e 's/Bcast:.*$//'`
sed -i "/BOOTPROTO/ s/dhcp/static/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/NOBOOT/ s/no/yes/" /etc/sysconfig/network-scripts/ifcfg-eth0
sed -i "/DHCPCLASS=/d" /etc/sysconfig/network-scripts/ifcfg-eth0
echo "IPADDR=${ipaddr}" >>/etc/sysconfig/network-scripts/ifcfg-eth0
echo "NETMASK=255.255.255.0" >>/etc/sysconfig/network-scripts/ifcfg-eth0
#關閉無用服務
for server in `ls /etc/rc3.d/S*`;do
        curserver=`echo ${server}|cut -c 15-`
        echo ${curserver}
        case ${curserver} in
                        crond|irqbalance|microcode_ctl|network|random|sshd|syslog)
                        echo "basic services,skip"
                        ;;
                        *)
                        echo "set ${curserver} off"
                        chkconfig --level 2345 ${curserver} off
                        service ${curserver} stop
                        ;;
        esac
done
5 複製系統映象檔案
將/media下所有的檔案複製到/var/ftp/pub/OS
mkdir /var/ftp/pub/OS
cp -r /media/* /var/ftp/pub/OS
到此pxe+kickstart安裝配置工作基本結束,下面我們來重啟一些服務
四 服務重啟生效
service xinetd restart
service vsftpd restart
service dhcpd restart
五 裸機安裝linux系統
裸機開啟電源,等待即可完成安裝,無需人工干預

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27181165/viewspace-775736/,如需轉載,請註明出處,否則將追究法律責任。

相關文章