RHEL6 无人值守搭建脚本
#!/bin/bash # by wu 2012-07-28 # RHEL6 unattended deployment,用于RHEL6无人值守搭建.v1.0 # 有不足的地方还请见谅 #搭建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 mkdir /var/ftp/iso &>/dev/null mount /dev/cdrom /var/ftp/iso &>/dev/null #拷贝系统引导文件 cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/ cp -r /var/ftp/iso/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 #设置开机启动 chkconfig tftp on chkconfig dhcpd on chkconfig vsftpd on #刷新服务 service xinetd restart &>/dev/null service dhcpd restart &>/dev/null service vsftpd restart &>/dev/null