RHEL6 无人值守搭建脚本:
#!/bin/bash
# by kumu 2012-07-28
# RHEL6 unattended deployment,用于RHEL6无人值守搭建.v0.1
# 有不足的地方还请见谅
#搭建yum
Yum_build()
{
yum clean all &>/dev/null
num_list=$(yum list | wc -l)
yum clean all &>/dev/null
if [[ $num_list < 2000 ]];then
mount /dev/cdrom /mnt
if [ -d /etc/yum.repos.d/bak ];then
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
else
mkdir /etc/yum.repos.d/bak
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/bak
fi
cat << EOF > /etc/yum.repos.d/base.repo
[base]
name=base
baseurl=file:///mnt
enabled=1
gpgcheck=0
EOF
else
echo "yum is ok!"
fi
}
Check_rpm()
{
Packages=(dhcp tftp-server vsftpd syslinux)
for i in ${Packages[@]}
do
if ! rpm -q $i &> /dev/null;then
yum install $i -y &>/dev/null
fi
done
}
#dhcp服务搭建以及网络安装引导文件
dhcp_build()
{
read -p "输入所在subnet、netmask、broadcast、gateway: " subnet netmask broadcast gateway
read -p "输入next-server地址: " next_server
read -p "提供IP的范围start_ip end_ip: " start_ip end_ip
cat << EOF >/etc/dhcp/dhcpd.conf
subnet $subnet netmask $netmask {
range $start_ip $end_ip;
option routers $gateway;
option broadcast-address $broadcast;
default-lease-time 600;
max-lease-time 7200;
filename "pxelinux.0";
next-server $next_server;
}
EOF
cat << EOF >/var/lib/tftpboot/pxelinux.cfg/default
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title Welcome to Red Hat Enterprise Linux 6.2!
menu color border 0 #ffffffff #00000000
menu color sel 7 #ffffffff #ff000000
menu color title 0 #ffffffff #00000000
menu color tabmsg 0 #ffffffff #00000000
menu color unsel 0 #ffffffff #00000000
menu color hotsel 0 #ff000000 #ffffffff
menu color hotkey 7 #ffffffff #ff000000
menu color scrollbar 0 #ffffffff #00000000
label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append ks=ftp://$next_server/ks.cfg initrd=initrd.img
EOF
}
#无人值守配置文件
ks_cfg()
{
read -p "请输入无人值守ftp地址: " ftp
cat <<EOF >/var/ftp/ks.cfg
firewall --disabled
install
url --url="ftp://$ftp/iso"
rootpw --iscrypted $1$A9aGh0yl$ahDdo0eAvQFAplXTeBkX//
auth --useshadow --passalgo=sha512
text
firstboot --disable
keyboard us
lang zh_CN
selinux --disabled
logging --level=info
reboot
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on
bootloader --location=mbr
zerombr
clearpart --all --initlabel
part /boot --asprimary --fstype="ext4" --size=200
part swap --asprimary --fstype="swap" --size=2048
part / --asprimary --fstype="ext4" --size=100000
%packages
@additional-devel
@backup-client
@base
@basic-desktop
@chinese-support
@client-mgmt-tools
@compat-libraries
@console-internet
@debugging
@desktop-debugging
@desktop-platform
@desktop-platform-devel
@development
@dial-up
@directory-client
@eclipse
@emacs
@fonts
@general-desktop
@graphical-admin-tools
@graphics
@hardware-monitoring
@infiniband
@input-methods
@internet-browser
@java-platform
@kde-desktop
@large-systems
@legacy-unix
@legacy-x
@mainframe-access
@network-file-system-client
@network-tools
@performance
@perl-runtime
@remote-desktop-clients
@scientific
@security-tools
@server-platform-devel
@smart-card
@storage-client-fcoe
@storage-client-iscsi
@storage-client-multipath
@system-management
@system-management-messaging-client
@system-management-messaging-server
@system-management-snmp
@system-management-wbem
@technical-writing
@tex
@x11
hmaccalc
%end
EOF
}
#调用函数
Yum_build
Check_rpm
#拷贝系统引导文件
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -r /mnt/isolinux/* /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg &>/dev/null
mv /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#调用函数
dhcp_build
ks_cfg
mkdir /var/ftp/iso &>/dev/null
mount /dev/cdrom /var/ftp/iso &>/dev/null
#设置开机启动
chkconfig tftp on
chkconfig dhcpd on
chkconfig vsftpd on
#刷新服务
service xinetd restart &>/dev/null
service dhcpd restart &>/dev/null
service vsftpd restart &>/dev/null