1、測試環境
操做系統:RHEL6.3_X64java
vmware下兩臺虛擬機node
2、測試過程python
一、DHCP服務器的搭建
[root@rhel6 ~]# yum –y install dhcp
[root@rhel6 ~]# rpm -ql dhcp
/etc/dhcp
/etc/dhcp/dhcpd.conf //配置文件,修改前要作好備份工做
/etc/dhcp/dhcpd6.conf
/etc/openldap/schema/dhcp.schema
/etc/portreserve/dhcpd
/etc/rc.d/init.d/dhcpd
/etc/rc.d/init.d/dhcpd6
/etc/rc.d/init.d/dhcrelay
/etc/sysconfig/dhcpd
/etc/sysconfig/dhcpd6
/etc/sysconfig/dhcrelay
/usr/bin/omshell
/usr/sbin/dhcpd
/usr/sbin/dhcrelay
/usr/share/doc/dhcp-4.1.1
/usr/share/doc/dhcp-4.1.1/3.0b1-lease-convert
/usr/share/doc/dhcp-4.1.1/IANA-arp-parameters
/usr/share/doc/dhcp-4.1.1/README.ldap
/usr/share/doc/dhcp-4.1.1/api+protocol
/usr/share/doc/dhcp-4.1.1/dhclient-tz-exithook.sh
/usr/share/doc/dhcp-4.1.1/dhcpd-conf-to-ldap
/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample //配置例子,通常咱們參考它來進行配置
/usr/share/doc/dhcp-4.1.1/dhcpd6.conf.sample
/usr/share/doc/dhcp-4.1.1/draft-ietf-dhc-ldap-schema-01.txt
/usr/share/doc/dhcp-4.1.1/ms2isc
/usr/share/doc/dhcp-4.1.1/ms2isc/Registry.perlmodule
/usr/share/doc/dhcp-4.1.1/ms2isc/ms2isc.pl
/usr/share/doc/dhcp-4.1.1/ms2isc/readme.txt
/usr/share/doc/dhcp-4.1.1/sethostname.sh
/usr/share/doc/dhcp-4.1.1/solaris.init
/usr/share/man/man1/omshell.1.gz
/usr/share/man/man5/dhcpd.conf.5.gz
/usr/share/man/man5/dhcpd.leases.5.gz
/usr/share/man/man8/dhcpd.8.gz
/usr/share/man/man8/dhcrelay.8.gz
/var/lib/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leaseslinux
[root@rhel6 ~]# vim /etc/dhcp/dhcpd.conf
簡單的配置文件以下:
subnet 10.0.0.0 netmask 255.255.255.0 {
range dynamic-bootp 10.0.0.188 10.0.0.222; //指定dhcp範圍
option routers 10.0.0.200;
next-server 10.0.0.100;
filename="pxelinux.0"; //也能夠寫在全局變量裏面
}c++
二、FTP服務器的配置
[root@rhel6 ~]# yum -y install vsftpd
[root@rhel6 ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
[root@rhel6 ~]# /etc/init.d/vsftpd restart
[root@rhel6 ~]# chmod 777 /var/ftp/pub
而後將光盤中的內容所有拷貝到/var/ftp/pub目錄下web
三、TFTP服務器
[root@rhel6 ~]# yum -y install tftp-server
[root@rhel6 ~]# vim /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /tftpboot //修改目錄位置
disable = no //啓用tftp服務
per_source = 11
cps = 100 2
flags = IPv4
}
[root@rhel6 ~]# /etc/init.d/xinetd restart
Stopping xinetd: [ OK ]
Starting xinetd: [ OK ]shell
四、配置PXE的支持
[root@rhel6 ftp]# mkdir -p /tftpboot/pxelinux.cfg
[root@rhel6 ftp]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/
[root@rhel6 ftp]# cp /media/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@rhel6 ftp]# cp /media/p_w_picpaths/pxeboot/initrd.img /tftpboot/
[root@rhel6 ftp]# cp /media/p_w_picpaths/pxeboot/vmlinuz /tftpboot/
[root@rhel6 ftp]# chmod 644 /tftpboot/pxelinux.cfg/default
[root@rhel6 ~]# vim /tftpboot/pxelinux.cfg/default
修改下列行爲:
append initrd=initrd.img ks=ftp://10.0.0.100/ks.cfgvim
五、Kickstart配置文件的設置
用yum工具自動安裝Kickstart,同時配置system-config-kickstart。api
a) 首先咱們須要安裝Kickstart這個工具包,在CentOS最小化安裝系統時,此軟件包並無默認安裝,yum安裝命令以下所示:
[root@rhel6 ~]# yum –y install system-config-kickstart ruby
b) 在gnome環境下配置Kickstart,命令以下所示:
[root@rhel6 ~]# system-config-kickstart
###############下面的配置文件是重點###################
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Firewall configuration
firewall --disabled
# System bootloader configuration
key --skip
# Install OS instead of upgrade
install
# Use network installation
url --url="ftp://10.0.0.100/pub"
# Root password
rootpw --iscrypted $1$FJgYYvFn$V3FLAATh6MiLnmtTrOlxp0
# System authorization information
auth --useshadow --passalgo=sha512
# Use graphical install
graphical
firstboot --disable
# System keyboard
keyboard us
# System language
lang zh_CN
# SELinux configuration
selinux --disabled
# Installation logging level
logging --level=info
# System timezone
timezone Asia/Shanghai
# Network information
network --bootproto=dhcp --device=eth0 --onboot=on
reboot
# System bootloader configuration
bootloader --location=mbr
# Clear the Master Boot Record
zerombr //這一項很是重要,否則系統會讓用戶手動選擇是否清除全部數據,這就須要人爲干預了
# Partition clearing information
clearpart --all
# Disk partitioning information
part /boot --fstype="ext4" --size=200
part /tmp --fstype="ext4" --size=2048
part swap --fstype="swap" --size=2048
part / --fstype="ext4" --size=10240
%packages
@additional-devel
@base
@basic-desktop
@chinese-support
@console-internet
@debugging
@desktop-platform-devel
@development
@dial-up
@directory-client
@eclipse
@fonts
@hardware-monitoring
@infiniband
@input-methods
@internet-browser
@java-platform
@large-systems
@legacy-unix
@mainframe-access
@network-file-system-client
@network-tools
@performance
@perl-runtime
@print-client
@ruby-runtime
@scientific
@security-tools
@server-platform-devel
@smart-card
@storage-client-fcoe
@storage-client-iscsi
@storage-client-multipath
@x11
ElectricFence
NetworkManager-openswan
PyQt4-devel
SDL-devel
aide
amtu
ant
arptables_jf
arpwatch
atlas
authd
babel
bitmap-fixed-fonts
bitmap-lucida-typewriter-fonts
bzr
cachefilesd
certmonger
chrpath
cjkuni-fonts-ghostscript
cjkuni-fonts-ghostscript
cmake
compat-dapl
compat-gcc-34
compat-gcc-34-c++
compat-gcc-34-g77
compat-openmpi
compat-openmpi-psm
cups-devel
cups-lpd
dejagnu
desktop-file-utils
dropwatch
dump
e2fsprogs-devel
ebtables
eclipse-mylyn-cdt
eclipse-mylyn-pde
eclipse-mylyn-trac
eclipse-mylyn-webtasks
eclipse-mylyn-wikitext
eclipse-pde
eclipse-subclipse-graph
edac-utils
edac-utils
efax
expat-devel
expect
fetchmail
fftw
fftw-devel
fftw-static
finger
finger-server
flightrecorder
freeglut-devel
ftp
fuse-devel
gcc-gnat
gcc-java
gcc-objc
gcc-objc++
gdb-gdbserver
glade3
glibc-utils
gmp-devel
gnome-common
gnome-devel-docs
gnutls-devel
gsl
gsl-devel
gsl-static
gstreamer-plugins-base-devel
gtk2-devel-docs
hesinfo
hmaccalc
hplip
hplip-gui
httpd-devel
hunspell-devel
i2c-tools
icedtea-web
imake
infiniband-diags
ipset
iptables-devel
iptraf
iptstate
irssi
isdn4k-utils
jpackage-utils
junit
jwhois
kdebase-devel
kdebase-workspace-devel
kdegraphics-devel
kdelibs-apidocs
kdelibs-devel
kdemultimedia-devel
kdenetwork-devel
kdepim-devel
kdepimlibs-devel
kdesdk
kdesdk-devel
kdewebdev
krb5-appl-clients
krb5-appl-servers
krb5-pkinit-openssl
krb5-workstation
ksh
lapack
ldapjdk
lftp
libXau-devel
libXaw-devel
libXinerama-devel
libXmu-devel
libXpm-devel
libXrandr-devel
libaio-devel
libblkid-devel
libbonobo-devel
libcap-devel
libdrm-devel
libgcrypt-devel
libglade2-devel
libgnomeui-devel
libgudev1-devel
libhugetlbfs-devel
libibcommon
libibverbs-devel
libnl-devel
libstdc++-docs
libtiff-devel
libtopology-devel
libudev-devel
libusb-devel
libuuid-devel
libxslt-devel
lksctp-tools
lm_sensors
lslk
memtest86+
mercurial
mipv6-daemon
mksh
mod_dav_svn
mpich2
mpitests-mvapich
mpitests-mvapich2
mpitests-openmpi
mrtg
mstflint
mutt
mvapich
mvapich-psm-devel
mvapich-psm-static
mvapich2
mvapich2-psm-devel
nasm
ncompress
net-snmp-devel
netlabel_tools
nmap
nscd
nss-pam-ldapd
numactl-devel
numpy
opencryptoki
openldap-clients
openmotif-devel
openmpi
openmpi-devel
openscap
openscap-utils
opensm
oprofile-jit
pam_krb5
pam_ldap
papi
papi-devel
pcre-devel
perftest
perl-DBD-SQLite
perl-Date-Calc
perl-Date-Manip
perl-Frontier-RPC
perl-LDAP
perl-Mozilla-LDAP
perl-Test-Pod
perl-Test-Pod-Coverage
perl-suidperl
perltidy
popt-devel
pptp
python-docs
qperf
qt-doc
rp-pppoe
rpmdevtools
rpmlint
rsh
rsh-server
ruby-irb
rusers
rusers-server
rwho
sabayon-apply
samba-winbind
sane-backends-devel
sdparm
sg3_utils
srptools
startup-notification-devel
stunnel
systemtap-client
systemtap-initscript
systemtap-sdt-devel
systemtap-server
talk
talk-server
tcl-devel
tcp_wrappers
tcp_wrappers-devel
telnet
telnet-server
tftp
tigervnc-server
tk-devel
tpm-tools
trousers
tuned
tuned-utils
unique-devel
unixODBC-devel
wireshark
x3270-text
xguest
xorg-x11-proto-devel
xz-devel
%end
###############上面的配置文件是重點###################
下面是rhel5.8_x64的一個ks.cfg文件
--
#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
--
3、注意事項
a、--grow --size=1參數來將其他的剩餘空間所有分配給/data分區;
b、key --skip若是是紅帽系統,此選項能夠跳過輸入序列號過程;若是是CentOS 5.x系列,則能夠不保留此項內容;
c、reboot 此選項必須存在,也必須文中設定位置,否則kickstart顯示一條消息,並等待用戶按任意鍵後才從新引導。
這裏只測試了最基本的無人職守功能,還有不少地方須要進一步進行測試與完善