自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用PXE+Apache+Kickstart無人值守安裝CentOS5.8

原創(chuàng)
系統(tǒng) Linux
現(xiàn)階段,由于需要大規(guī)模應(yīng)用CentOS5.8 x86_64系統(tǒng)用于集群環(huán)境,機器數(shù)量比較多,所以需要批量自動化無人值守安裝系統(tǒng),作者余洪春(撫琴煮酒)嘗試使用RHEL5+PXE+DHCP+Apache+Kickstart安裝了RHCE5.1 i386實驗室環(huán)境,并取得了成功,這樣可以避免了重復(fù)性勞動,提高工作效率。

  【51CTO專稿】因為之前的工作需要搭建紅帽實驗室環(huán)境,由于機器數(shù)量比較多,所以需要批量自動化無人值守安裝系統(tǒng),所以我嘗試使用RHEL5+PXE+DHCP+Apache+Kickstart安裝了RHCE5.1 i386實驗室環(huán)境,并取得了成功,不過過程比較漫長,所以我特地記錄下PXE+DHCP+Apache+Kickstart無人值守安裝的過程。另外,我在博客發(fā)表了相應(yīng)的文章,很多熱心的讀者根據(jù)文章內(nèi)容已成功批量安裝了紅帽RHEL系統(tǒng)或CentOS5.x,并提出了許多寶貴的意見,在這里表示感謝。現(xiàn)階段,由于需要大規(guī)模應(yīng)用CentOS5.8 x86_64系統(tǒng)用于集群環(huán)境,所以將此方法主要用于在公司內(nèi)網(wǎng)批量安裝新服務(wù)器系統(tǒng),這極大地簡化了用光盤重復(fù)安裝CentOS5.8 x86_64的過程,再加上分布式自動化運維工具puppet進行批量部署,達到了自動化運維的目的,避免了重復(fù)性勞動,極大的提高了工作效率。

  首先,我們來介紹一下與之相關(guān)的原理和概念。

  1. 什么是PXE

  嚴(yán)格來說,PXE 并不是一種安裝方式,而是一種引導(dǎo)方式。進行 PXE 安裝的必要條件是在要安裝的計算機中必須包含一個 PXE 支持的網(wǎng)卡(NIC),即網(wǎng)卡中必須要有 PXE Client。PXE (Pre-boot Execution Environment)協(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 將放置在遠端的文件通過網(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 上下載所需的文件了。

  2. 什么是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é)束安裝。

  3. PXE + Kickstart的安裝條件和詳細步驟

  執(zhí)行 PXE + Kickstart安裝需要的設(shè)備為:

  • DHCP 服務(wù)器。
  • TFTP 服務(wù)器。
  • Kickstart所生成的ks.cfg配置文件。
  • 一臺存放系統(tǒng)安裝文件的服務(wù)器,如 NFS、HTTP 或 FTP 服務(wù)器。
  • 一個帶有 PXE 支持網(wǎng)卡的主機。

  系統(tǒng)環(huán)境介紹如下:

  服務(wù)器系統(tǒng)為CentOS5.6 x86_64,IP為192.168.11.29(此服務(wù)器并非一定要限定為CentOS5.8 x86_64系統(tǒng)),由于是最小化安裝的,我們在后面要用到system-config-kickstart工具,它必須依賴于X windows,所以我們要提前安裝好X windows及gnome并重啟系統(tǒng),步驟如下所示:

  先裝X windows和GNOME桌面環(huán)境,命令如下所示:

yum -y groupinstall 'X Window System'
yum -y groupinstall 'GNOME Desktop Environment'

  然后修改/etc/inittab文件并重啟服務(wù)器,使其運行在圖形模式下,主要修改文件內(nèi)容如下所示:

id:5:initdefault:

  重啟服務(wù)器命令如下:

reboot

#p#

  完成上述的準(zhǔn)備工作后,PXE+DHCP+Apache+Kickstart無人值守安裝CentOS5.8安裝的步驟如下:

 ?。?)我們先下載CentOS5.8 x86_64光盤至/usr/local/src下,并掛載至/mnt/cdrom目錄下,并確認系統(tǒng)已安裝好httpd服務(wù),如下:

cd /usr/local/src
wget http://mirror.neu.edu.cn/CentOS/5.8/isos/x86_64/CentOS-5.8-x86_64-bin-DVD-1of2.iso
mkdir -p /mnt/cdrom

  接下來我們掛載光盤ISO文件至/mnt/cdrom目錄下,如下命令:

mount -o loop CentOS-5.8-x86_64-bin-DVD-1of2.iso /mnt/cdrom

  CetnOS5.x x86_64系列已默認安裝Apache,我們可以用命令看下其版本號,如下所示:

rpm -q httpd

  命令顯示結(jié)果如下所示:

httpd-2.2.3-65.el5.CentOS

  (2)接下來我們復(fù)制光盤下的所有內(nèi)容(文件和文件夾)到/var/html/www(此目錄為Apache默認DocumentRoot目錄)下,無論是紅帽系統(tǒng)還是CentOS 5.x系統(tǒng),如果是最小化安裝,基本上第一張DVD光盤文件就夠了,復(fù)制命令如下所示:

cp -rf   /mnt/cdrom  /var/html/www

  (3)安裝 tftp-server,并啟用tftp服務(wù),同時啟動xinetd進程,步驟如下所示。

  1.我們用命令安裝tftp-server,命令如下:

yum -y install tftp-server

   2.接著修改/etc/xinetd.d/tftp文件,將disable的值由yes變?yōu)閚o,內(nèi)容如下所示:

service tftp
{
 socket_type  = dgram
 protocol  = udp
 wait   = yes
 user   = root
 server   = /usr/sbin/in.tftpd
 server_args  = -s /tftpboot
 disable   = no
 per_source  = 11
 cps   = 100 2
 flags   = IPv4

  3.接著重啟xinetd進程,命令如下所示:

service xinetd restart

 ?。?)配置支持PXE的啟動程序(注意:前面已經(jīng)將CentOS5.8 x86_64第一張光盤的內(nèi)容復(fù)制到/var/www/html目錄中了,所以需要的文件只需要從/var/www/html目錄中復(fù)制就行了)。

  a) 建立tftpboot文件夾,如下所示,若該文件夾已經(jīng)存在則不用建立。

mkdir -p /tftpboot

  b) 復(fù)制pxelinux.0文件至tftpboot文件夾中,如下所示。

cp /usr/lib/syslinux/pxelinux.0 /tftpboot

  c) 把DVD光盤上的/image/pxeboot/initrd.img和vmlinux復(fù)制到/tftpboot/中,如下所示。

cp /var/www/html/images/pxeboot/initrd.img   /tftpboot
cp /var/www/html/images/pxeboot/vmlinuz /tftpboot

  d) 復(fù)制DVD光盤上的isolinux/*.msg到/tftpboot目錄下,如下所示。

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

  e) 在tftpboot中新建一個pxelinux.cfg目錄:

mkdir pxelinux.cfg

  f) 將isolinux目錄中的isolinux.cfg復(fù)制到pxelinux.cfg目錄中,同時更改文件名稱為default,命令如下所示:

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

  g) 在上一個步驟,即第6點中,暫時不要修改default文件,進行到這一步時,雖然已經(jīng)可以通過網(wǎng)絡(luò)來引導(dǎo)并手動安裝Kickstart了,但是由于這里討論的是無人值守安裝,所以先不修改這個default文件。#p#

 ?。?)安裝dhcp服務(wù),同時修改如下配置:

yum -y install dhcp

  然后復(fù)制配置模板文件到指定的目錄中,并重新命名。

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

  接著修改/etc/dhcpd.conf配置文件,文件最后修改內(nèi)容如下所示:

ddns-update-style interim;
ignore client-updates;
next-server 192.168.11.29;
filename "/pxelinux.0";
subnet 192.168.11.0 netmask 255.255.255.0 {
option routers   192.168.11.1;
 option subnet-mask  255.255.255.0;
 option nis-domain  "cn7788.com";
 option domain-name  "cn7788.com";
 option domain-name-servers 192.168.11.252;
 option time-offset  -18000; # Eastern Standard Time
 range dynamic-bootp 192.168.11.34 192.168.11.159;
 default-lease-time 21600;
 max-lease-time 43200;
}

  最后啟動dhcp服務(wù):

service dhcpd start

  注:如果機器數(shù)量過多的話,注意dhcp服務(wù)器的地址池,不要因為耗盡IP而導(dǎo)致dhcpd服務(wù)器沒有IP地址release情況。

  (6)用yum工具自動安裝Kickstart,同時配置system-config-kickstart。

  a) 首先我們需要安裝Kickstart這個工具包,在CentOS最小化安裝系統(tǒng)時,此軟件包并沒有默認安裝,yum安裝命令如下所示:

yum -y install system-config-kickstart

  b) 在gnome環(huán)境下配置Kickstart,命令如下所示:

system-config-Kickstart

  運行上面的命令后可以對系統(tǒng)的一些基本配置進行設(shè)置,例如選擇時區(qū)、設(shè)置root的密碼等。

  c) 接下來便要進行安裝了,建議選擇httpd安裝,切記不要輸入任何賬號,而是采用匿名安裝。

  在安裝過程中,根據(jù)引導(dǎo)選擇安裝選項,不需要做更改。

  d) Kickstart會讓我們選擇需要批量安裝的CentOS5.8分區(qū)信息,按照上一節(jié)所介紹的CentOS5.5 x86_64的安裝方法,我們創(chuàng)建四個分區(qū),即/、/boot、/data和swap分區(qū)。

  e) 在進行網(wǎng)絡(luò)配置時,我使用的靜態(tài)分配地址(動態(tài)同樣如此),這里跟前面進行光盤安裝是一樣的。

  f) 設(shè)置顯示配置時可以按照我們的習(xí)慣選擇。

  g) 關(guān)于軟件包的選擇,大家可以根據(jù)實際的工作需求來選擇自己需要的軟件包,由于服務(wù)器安裝后用途都是不一樣的,建議大家這里選擇最小化安裝。

  h) 其他都選擇默認設(shè)置,不需要修改。

  i) 最后將生成的文件ks.cfg保存到/var/www/html下,此為自動化無人值守安裝的重難點,此文件稍有配置不當(dāng)?shù)脑捑蜁枰藶楦深A(yù)了,如果大家遇到問題,建議參考我下面的ks.cfg配置文件。

  (7)修改/tftpboot/pxelinux.cfg/default文件,指定讀取ks.cfg的方法,即修改文件第一行內(nèi)容,改動后文件第一行內(nèi)容如下所示:

default text ks=http://192.168.11.29/ks.cfg

  另外,也建議將timeout時間由原先的600改為1,timeout時間是引導(dǎo)時等待用戶手動選擇的時間,設(shè)為"1"可直接引導(dǎo)。

 ?。?)/var/www/html/ks.cfg文件內(nèi)容如下所示(此內(nèi)容是整個實驗過程的重難點,請關(guān)注):

#platform=x86, AMD64, or Intel EM64T
# System authorization information
auth  --useshadow  --enablemd5
# System bootloader configuration
key --skip
bootloader --location=mbr
# Partition clearing information
clearpart --none 
# Use graphical install
graphical
# Firewall configuration
firewall --disabled
# Run the Setup Agent on first boot
firstboot --disable
# System keyboard
keyboard us
# System language
lang en_US
# Installation logging level
logging --level=info
# Use network installation
url --url=http://192.168.11.29/
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
#Root password
rootpw --iscrypted $1$biw2UUzu$/ZrtUhG9gGGGJn6edgUIQ1

# SELinux configuration
selinux --disabled
# System timezone
timezone --isUtc Asia/Shanghai
# Install OS instead of upgrade
install
# X Window System configuration information
xconfig  --defaultdesktop=GNOME --depth=8 --resolution=640x480
# Disk partitioning information
bootloader --location=mbr --driveorder=sda
clearpart --all --initlabel
part / --bytes-per-inode=4096 --fstype="ext3" --size=5120
part /boot --bytes-per-inode=4096 --fstype="ext3" --size=128
part swap --bytes-per-inode=4096 --fstype="swap" --size=500
part /data --bytes-per-inode=4096 --fstype="ext3" --grow --size=1

%packages
@base
@development-libs
@development-tools

  此配置過程中的重難點我這里說明下:

  分區(qū)操作按照目前線上分區(qū)來操作,即分成/、/boot、/data及swap四個分區(qū),其中/data分區(qū)是存放數(shù)據(jù)的,我們這里用--grow --size=1參數(shù)來將其余的剩余空間全部分配給/data分區(qū)。

  key --skip如果是紅帽系統(tǒng),此選項可以跳過輸入序列號過程;如果是CentOS 5.x系列,則可以不保留此項內(nèi)容;

  reboot 此選項必須存在,也必須文中設(shè)定位置,不然kickstart顯示一條消息,并等待用戶按任意鍵后才重新引導(dǎo),此問題是很多朋友在論壇上發(fā)言提問的,我在實驗過程中也遇到此問題,建議多做幾次實驗;

  clearpart --all --initlabel此條命令必須添加,不然系統(tǒng)會讓用戶手動選擇是否清除所有數(shù)據(jù),這就需要人為干預(yù)了,從而導(dǎo)致自動化過程失??;

  其它方面選項較容易看懂,我這里就不再重復(fù)了。

 ?。?)將Kickstart需要的服務(wù)器均啟動后,此自動化安裝系統(tǒng)的過程就完成了,我們就可以在內(nèi)網(wǎng)機柜中全自動同時安裝CentOS5.8 x86_64系統(tǒng)了,服務(wù)器端啟動相應(yīng)命令如下:

Service httpd start
chkconfig httpd on
service dhcpd start
chkconfig dhcpd on
service xinetd restart

#p#

  系統(tǒng)完成最小化后安裝后,大家可以根據(jù)自己公司的實際情況來進行系統(tǒng)的優(yōu)化,此最小化優(yōu)化腳本init.sh還可以讓puppet服務(wù)器進行推送,此腳本內(nèi)容如下所示:

  1. #/bin/bash  
  2. #add the epel repo  
  3. cd /usr/local/src  
  4. wget http://mirrors.ustc.edu.cn/fedora/epel//5/x86_64/epel-release-5-4.noarch.rpm   
  5. rpm -ivh epel-release-5-4.noarch.rpm   
  6. #add the rpmforge repo  
  7. cd /usr/local/src  
  8. wget http://packages.sw.be/rpmforge-release/rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm  
  9. rpm -ivh rpmforge-release-0.5.2-2.el5.rf.x86_64.rpm 
  10.  
  11. #yum install sysstat   
  12. yum -y install gcc gcc-c++ vim-enhanced unzip unrar sysstat   
  13.  
  14. #set the ntp  
  15. yum -y install ntp  
  16. echo "01 01 * * * /usr/sbin/ntpdate ntp.api.bz  >> /dev/null 2>&1" >> /etc/crontab  
  17. ntpdate ntp.api.bz  
  18. service crond restart  
  19.  
  20. #set the file limit   
  21. ulimit -SHn 65535   
  22. echo "ulimit -SHn 65535" >> /etc/rc.local  
  23. cat >> /etc/security/limits.conf << EOF 
  24. *           soft   nofile       60000  
  25. *           hard   nofile       65535  
  26. EOF  
  27.  
  28. #tune kernel parametres  
  29. cat >> /etc/sysctl.conf << EOF 
  30. net.ipv4.tcp_syncookies = 1 
  31. net.ipv4.tcp_syn_retries = 1 
  32. net.ipv4.tcp_tw_recycle = 1 
  33. net.ipv4.tcp_tw_reuse = 1 
  34. net.ipv4.tcp_fin_timeout = 1 
  35. net.ipv4.tcp_keepalive_time = 1200 
  36. net.ipv4.ip_local_port_range = 1024 65535  
  37. EOF  
  38. /sbin/sysctl -p  
  39.  
  40. #set the control-alt-delete to guard against the misuse  
  41. sed -i 's@ca::ctrlaltdel:/sbin/shutdown -t3 -r now@#ca::ctrlaltdel:/sbin/shutdown -t3 -r now@' /etc/inittab   
  42.  
  43. #disable selinux  
  44. sed -i 's@SELINUX=enforcing@SELINUX=disabled@' /etc/selinux/config  
  45.  
  46. #ssh setting   
  47. sed -i -e '74 s/^/#/' -i -e '76 s/^/#/' /etc/ssh/sshd_config   
  48. sed -i 's@#UseDNS yes@UseDNS no@' /etc/ssh/sshd_config  
  49. service sshd restart  
  50.  
  51. #disable ipv6  
  52. echo "alias net-pf-10 off" >> /etc/modprobe.conf  
  53. echo "alias ipv6 off" >> /etc/modprobe.conf  
  54. echo "install ipv6 /bin/true" >> /etc/modprobe.conf   
  55. echo "IPV6INIT=no>> /etc/sysconfig/network  
  56. sed -i 's@NETWORKING_IPV6=yes@NETWORKING_IPV6=no@'  /etc/sysconfig/network   
  57. chkconfig ip6tables off   
  58.  
  59. #vim setting   
  60. echo "syntax on" >> /root/.vimrc   
  61. echo "set nohlsearch" >> /root/.vimrc   
  62.  
  63. #chkconfig off services  
  64. chkconfig bluetooth off   
  65. chkconfig sendmail off   
  66. chkconfig kudzu off   
  67. chkconfig nfslock off   
  68. chkconfig portmap off   
  69. chkconfig iptables off   
  70. chkconfig autofs off   
  71. chkconfig yum-updatesd off   
  72.  
  73. #reboot system   
  74. Reboot 

  注意:

  #tune kernel parametres為內(nèi)核優(yōu)化部分,在這里我只做了基礎(chǔ)處理,大家有需求可以自行修改,記住:一切以系統(tǒng)穩(wěn)定為原則。

  #vim setting選項為vim的個性化配置,如果想vim語法高亮,則必須安裝vim-enhanced包,另外,vim在使用搜索功能,搜索選中內(nèi)容為高亮,感覺不是特別舒服,所以我這里用了set nohlsearch選項,如果大家不介意此項功能,則不需要添加此語句;

  #disable ipv6選項我在測試時發(fā)現(xiàn),在CentOS5.8 x86_64系統(tǒng)下,如果不添加install ipv6 /bin/true此語句到/etc/modprobe.conf文件里,是關(guān)閉不了ipv6選項的,而測試的CentOS5.5 | 5.6不添加此句均可以順利關(guān)閉ipv6,這點請大家注意,當(dāng)然了,最后要reboot系統(tǒng)讓此配置生效。

  引申:相信大家的開發(fā)環(huán)境應(yīng)該有不少Xen虛擬機,雖然Xen有自身的模板文件操作,但我們也可以利用Kickstart的方式快速無人值守安裝Xen虛擬機系統(tǒng),命令如下所示:

virt-install  -n vm4  -r 300  -f /data/vm/vm4.img -s 8 -p -l
http://192.168.11.29 -x ks=http://192.168.11.29/ks.cfg

  由于Xen結(jié)合Kickstart并不是本文檔的重點內(nèi)容,有興趣的朋友可以可以自行研究;另外有一點請大家一定要注意:

由于此安裝方法太智能化,在網(wǎng)絡(luò)引導(dǎo)成功以后會自動清除硬盤數(shù)據(jù)并重新安裝新的系統(tǒng),所以建議大家將此工作區(qū)域和網(wǎng)段獨立出來,或者在進行完安裝工作以后就停用Kickstart服務(wù)器,以免對正常工作的服務(wù)器造成不必要的麻煩。

由于個人能力有限,鑒于工作環(huán)境的嚴(yán)謹(jǐn)性,歡迎大家我上述文檔中一切錯誤和不合理之處,歡迎來信與我交流,個人郵箱yuhongchun027@163.com。

作者簡介:

  余洪春(撫琴煮酒),英文名Andrew.Yu。

 個人博客地址:http://andrewyu.blog.51cto.com/

 Sina微博地址:http://weibo.com/yuhongchun027。

責(zé)任編輯:黃丹 來源: 51CTO.com
相關(guān)推薦

2010-09-01 11:43:06

KickstartPXE無人值守

2010-05-27 13:29:08

RHEL 5.4無人值守安裝

2011-07-29 11:24:12

SQL Server

2010-12-15 10:33:16

RHEL 6無人值守

2010-04-22 09:53:41

RHEL5無人值守安裝

2012-05-17 10:32:20

無人值守

2015-05-25 19:34:06

KickstartCentOS

2011-07-07 14:18:11

活動目錄返回代碼

2013-09-02 14:22:51

CentOS 5.8Varnish

2021-07-08 09:00:00

數(shù)據(jù)中心機器人技術(shù)

2009-01-04 17:28:11

2020-05-28 09:16:05

UbuntuLinux

2017-08-15 11:58:15

LinuxCentOSApache Hado

2010-01-14 15:56:29

2010-01-14 16:53:40

CentOS Apac

2010-01-14 13:47:30

CentOS extm

2013-04-23 16:48:55

GPT分區(qū)CentOS

2014-02-10 15:30:10

PXEUEFI PXE遠程安裝

2010-06-01 09:51:11

點贊
收藏

51CTO技術(shù)棧公眾號