#! /bin/bash
echo “本脚本必须在ROOT用户下执行,系统media下有RHEL-6.6\ Server.x86_64/目录和tmp目录下有/tmp/rhel-server-5.4-i386-dvd.iso 才能完美执行”
ls /media/RHEL-6.6\ Server.x86_64/ &> /dev/null
if [ $? -ne 0 ] ;then
echo “/media/RHEL-6.6\ Server.x86_64/文件不存在”
exit
fi
ls /tmp/rhel-server-5.4-i386-dvd.iso &> /dev/null
if [ $? -ne 0 ] ;then
echo "/tmp/rhel-server-5.4-i386-dvd.iso文件不存在"
exit
fi
#
echo “\))))安装系统((((/”
echo 关闭防火墙 安全linux
service iptables stop &> /dev/null
/usr/sbin/setenforce 0 &> /dev/null
cat /etc/selinux/config |sed -n ‘s/SELINUX=enforcing/SELINUX=disabled/gp’ &> /dev/null
[ $? -ne 0 ] && echo “失败”
echo “配置本地源”
mkdir -p /iso
mount -o loop /dev/cdrom /iso
echo “/dev/cdrom /iso iso9660 ro,loop 0 0” >> /etc/fstab
rm -fr /etc/yum.repos.d/*
cat > /etc/yum.repos.d/iso.repo << EOT
[base]
baseurl=file:///iso gpgcheck=0 EOT yum clean all &> /dev/null
yum makecache &> /dev/null
[ $? -ne 0 ] && echo “失败”
echo “配置网卡及主机名”
cat >/etc/sysconfig/network-scripts/ifcfg-eth0 << EOT DEVICE=eth0 TYPE=Ethernet ONBOOT=yes NM_CONTROLLED=no BOOTPROTO=none IPADDR=192.168.1.254 NETMASK=255.255.255.0 GATEWAY=192.168.1.2 EOT echo “NETWORKING=yes” > /etc/sysconfig/network
echo “HOSTNAME=pxe.uplooking.edu” >>/etc/sysconfig/network
service network restart &> /dev/null
[ $? -ne 0 ] && echo “失败”
echo “配置6版本源”
mkdir -p /var/ftp/pub/rhel6u5/dvd
mount -o loop /dev/cdrom /var/ftp/pub/rhel6u5/dvd
echo "/dev/cdrom /var/ftp/pub/rhel6u5/dvd iso9660 ro,loop 0 0 " >> /etc/fstab
mount -a &> /dev/null
yum clean all &> /dev/null
yum repolist &> /dev/null
[ $? -ne 0 ] && echo "失败"
echo “配置5版本源”
mkdir -p /var/ftp/pub/rhel5u4/dvd
mount -o loop /tmp/rhel-server-5.4-i386-dvd.iso /var/ftp/pub/rhel5u4/dvd
echo “/tmp/rhel-server-5.4-i386-dvd.iso /var/ftp/pub/rhel5u4/dvd iso9660 ro,loop 0 0 ” >> /etc/fstab
[ $? -ne 0 ] && echo “失败”
echo “装ftp”
yum -y install vsftpd &> /dev/null
service vsftpd start &> /dev/null
chkconfig vsftpd on &> /dev/null
wget ftp://192.168.1.254:pub/rhel5u4/dvd/GPL &> /dev/null && echo YES
[ $? -ne 0 ] && echo “失败”
echo “装http”
yum -y install httpd &> /dev/null
ln -s /var/ftp/pub/rhel6u5/dvd/ /var/www/html/rhel6u5
service httpd start &> /dev/null
chkconfig httpd on &> /dev/null
wget http://192.168.1.254/rhel6u5/media.repo &> /dev/null && echo “HTTP搭建成功”
[ $? -ne 0 ] && echo “失败”
echo “装rpcbind”
yum install -y rpcbind nfs-utils &> /dev/null
echo “/var/ftp/pub/rhel6u5/dvd *(ro,sync)” > /etc/exports
[ $? -ne 0 ] && echo “1失败”
echo “/var/ftp/pub/rhel5u4/dvd *(ro,sync)” > /etc/exports
[ $? -ne 0 ] && echo “2失败”
service rpcbind restart &> /dev/null
service nfs start &> /dev/null
chkconfig nfs on &> /dev/null
chkconfig rpcbind on &> /dev/null
echo “装dhcp”
yum -y install dhcp &> /dev/null
cat > /etc/dhcp/dhcpd.conf <<EOT
option domain-name “uplooking.edu”;
option domain-name-servers 192.168.1.254, 192.168.1.2;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.20;
option routers 192.168.1.2;
option broadcast-address 192.168.1.255;
server-name “192.168.1.254”;
filename “pxelinux.0”;
}
EOT
service dhcpd start &> /dev/null
[ $? -ne 0 ] && echo “1失败”
chkconfig dhcpd on &> /dev/null
yum -y install tftp-server &> /dev/null
chkconfig tftp on &> /dev/null
service xinetd start &> /dev/null
netstat -unlp |grep :69 &> /dev/null
[ $? -ne 0 ] && echo "2失败"
echo “修改default菜单及ks文件生成”
yum -y install syslinux &> /dev/null
[ $? -ne 0 ] && echo “1失败”
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[ $? -ne 0 ] && echo “2失败”
mkdir /var/lib/tftpboot/pxelinux.cfg
cp /var/www/html/rhel6u5/isolinux/vesamenu.c32 /var/lib/tftpboot/
[ $? -ne 0 ] && echo "3失败"
cp /var/www/html/rhel6u5/isolinux/splash.jpg /var/lib/tftpboot/
[ $? -ne 0 ] && echo "4失败"
mkdir /var/lib/tftpboot/rhel5u4/
cp /var/ftp/pub/rhel5u4/dvd/isolinux/initrd.img /var/lib/tftpboot/rhel5u4/
[ $? -ne 0 ] && echo "5失败"
cp /var/ftp/pub/rhel5u4/dvd/isolinux/vmlinuz /var/lib/tftpboot//rhel5u4/
[ $? -ne 0 ] && echo "6失败"
mkdir /var/lib/tftpboot/rhel6u5/
cp /var/ftp/pub/rhel6u5/dvd/isolinux/initrd.img /var/lib/tftpboot/rhel6u5/
[ $? -ne 0 ] && echo "7失败"
cp /var/ftp/pub/rhel6u5/dvd/isolinux/vmlinuz /var/lib/tftpboot/rhel6u5/
[ $? -ne 0 ] && echo "8失败"
cat > /var/lib/tftpboot/pxelinux.cfg/default <<EOT
default vesamenu.c32
#prompt 1
timeout 600
display boot.msg
menu background splash.jpg
menu title www.uplooking.edu
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 local
menu label Boot from ^local drive
menu default
localboot 0xffff
label auto6u5
menu label ^Auto install rhel6.6
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img ks=http://192.168.1.254/rhel6u5.cfg
label auto5u4
menu label ^Auto install rhel5.4
kernel rhel5u4/vmlinuz
append initrd=rhel5u4/initrd.img ks=http://192.168.1.254/rhel5u4.cfg
label linux
menu label ^Install or upgrade an existing system
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img
label rescue
menu label ^Rescue installed system
kernel rhel6u5/vmlinuz
append initrd=rhel6u5/initrd.img rescue
EOT
cat >/var/www/html/rhel6u5.cfg <<EOT
#platform=x86, AMD64, 或 Intel EM64T
#version=DEVEL
#Firewall configuration
firewall –disabled
#Install OS instead of upgrade
install
#Use network installation
url –url=”ftp://192.168.1.254/pub/rhel6u5/dvd”
#Root password
bootloader –location=mbr –md5pass=$1$MUnByNpz$WVFU9CQ.cnLdHPjOjfKvO/
#System authorization information
auth –useshadow –passalgo=sha512
#Use text mode install
text
firstboot –disable
#System keyboard
keyboard us
#System language
lang en_US
#SELinux configuration
selinux –disabled
#Installation logging level
logging –level=info
#Reboot after installation
reboot
#System timezone
timezone –isUtc Asia/Shanghai
#Network information
network –bootproto=dhcp –device=eth0 –onboot=on
#System bootloader configuration
bootloader –append=”selinux=0″ –location=mbr –md5pass=”$1$TDnv/fVb$2IgZr5kv5sPzDRKUA/ywL0″
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart –all –initlabel
#Disk partitioning information
part /boot –fstype=”ext4″ –size=200
part / –fstype=”ext4″ –size=9000
part swap –fstype=”swap” –size=1024
%pre
part /boot –fstype=ext4 –size=200
part pv.253002 –size=10000
volgroup vol0 –pesize=4096 pv.253002
logvol / –fstype=ext4 –name=root –vgname=vol0 –size=8000
logvol swap –name=swap –vgname=vol0 –size=1996
%end
%packages
@chinese-support
%end
EOT
echo “%post” >> /var/www/html/rhel6u5.cfg
echo “cat >> /etc/yum.repos.d/dvd.repo << EOT” >>/var/www/html/rhel6u5.cfg
echo “[dvd]” >>/var/www/html/rhel6u5.cfg
echo “baseurl=ftp://192.168.1.254/pub/rhel6u5/dvd” >>/var/www/html/rhel6u5.cfg
echo “gpgcheck=0” >>/var/www/html/rhel6u5.cfg
echo “EOT”>>/var/www/html/rhel6u5.cfg
cat >/var/www/html/rhel5u4.cfg <<EOT
#platform=x86, AMD64, 或 Intel EM64T
key –skip
#System authorization information
auth –useshadow –enablemd5
#System bootloader configuration
bootloader –location=mbr –md5pass=$1$MUnByNpz$WVFU9CQ.cnLdHPjOjfKvO/
#Clear the Master Boot Record
zerombr
#Partition clearing information
clearpart –all –initlabel
#Use text mode install
text
#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=ftp://192.168.1.254/pub/rhel5u4/dvd
#Network information
network –bootproto=dhcp –device=eth0 –onboot=on
#Reboot after installation
reboot
#Root password
rootpw –iscrypted $1$dTFnL7xR$f6xjhRJbxoKxPt69HLv2V0
#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=800×600 –startxonboot
#Disk partitioning information
part /boot –bytes-per-inode=4096 –fstype=”ext3″ –size=100
part / –bytes-per-inode=4096 –fstype=”ext3″ –size=15000
part swap –bytes-per-inode=4096 –fstype=”swap” –size=512
%pre
#clearpart –linux
#part /boot –fstype ext3 –size=200
#part pv.3 –size=20000
#part swap –size=1024
#volgroup vol0 –pesize=32768 pv.3
#logvol / –fstype ext3 –name=root –#vgname=vol0 –size=15000
#logvol /home –fstype ext3 –name=home –#vgname=vol0 –size=992
%post
echo “nameserver 192.168.1.254” >> /etc/reslov.conf
%packages
@gnome-desktop
@development-libs
@development-tools
@graphical-internet
@graphics
@chinese-support
@editors
EOT
echo “配置DNS”
yum -y install bind &> /dev/null
cat >/etc/named.conf << EOT
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
listen-on port 53 { 127.0.0.1; 192.168.1.254; };
directory “/var/named”;
dump-file “/var/named/data/cache_dump.db”;
statistics-file “/var/named/data/named_stats.txt”;
memstatistics-file “/var/named/data/named_mem_stats.txt”;
allow-query { localhost;192.168.1.0/24; };
recursion yes;
dnssec-enable no;
dnssec-validation no;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file “data/named.run”;
severity dynamic;
};
};
zone “.” IN {
type hint;
file “named.ca”;
};
include “/etc/named.rfc1912.zones”;
include “/etc/named.root.key”;
EOT
cat > /etc/named.rfc1912.zones <<EOT
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone “localhost” IN {
type master;
file “named.localhost”;
allow-update { none; };
};
zone “1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa” IN {
type master;
file “named.loopback”;
allow-update { none; };
};
zone “1.0.0.127.in-addr.arpa” IN {
type master;
file “named.loopback”;
allow-update { none; };
};
zone “0.in-addr.arpa” IN {
type master;
file “named.empty”;
allow-update { none; };
};
zone “uplooking.edu” IN {
type master;
file “uplooking.edu.zone”;
allow-update { none; };
};
zone “1.168.192.in-addr.arpa” IN {
type master;
file “192.168.1.rev”;
allow-update { none; };
};
EOT
#cat >/var/named/uplooking.edu.zone << EOT
echo “\$TTL 1D” >/var/named/uplooking.edu.zone
echo “@ IN SOA ns1.uplooking.edu. root.uplooking.com. ( ” >>/var/named/uplooking.edu.zone
echo ” 11 ; serial ” >>/var/named/uplooking.edu.zone
echo ” 1D ; refresh ” >>/var/named/uplooking.edu.zone
echo ” 1H ; retry ” >>/var/named/uplooking.edu.zone
echo ” 1W ; expire ” >>/var/named/uplooking.edu.zone
echo ” 3H ) ; minimum ” >>/var/named/uplooking.edu.zone
echo “@ NS ns1.uplooking.edu.” >>/var/named/uplooking.edu.zone
echo “ns1 A 192.168.1.254 ” >>/var/named/uplooking.edu.zone
#EOT
for i in {10..20}; do echo -e “desktop$i\tA\t192.168.1.$i”>> /var/named/uplooking.edu.zone ; done &> /dev/null
#cat > /var/named/192.168.1.rev <<EOT
echo “\$TTL 1D ” > /var/named/192.168.1.rev
echo “@ IN SOA ns1.uplooking.edu. root.uplooking.com. ( ” >> /var/named/192.168.1.rev
echo ” 11 ; serial ” >> /var/named/192.168.1.rev
echo ” 1D ; refresh ” >> /var/named/192.168.1.rev
echo ” 1H ; retry ” >> /var/named/192.168.1.rev
echo ” 1W ; expire ” >> /var/named/192.168.1.rev
echo ” 3H ) ; minimum ” >> /var/named/192.168.1.rev
echo “@ NS ns1.uplooking.edu. ” >> /var/named/192.168.1.rev
echo “254 PTR ns1.uplooking.edu. ” >> /var/named/192.168.1.rev
#EOT
for i in {10..20}; do echo -e “$i\tPTR\tdesktop$i.uplooking.edu.” >> /var/named/192.168.1.rev ; done &> /dev/null
chgrp named /var/named/192.168.1.rev
chgrp named /var/named/uplooking.edu.zone
named-checkconf &> /dev/null
[ $? -ne 0 ] && echo “1失败”
named-checkzone uplooking.edu /var/named/uplooking.edu.zone &> /dev/null
[ $? -ne 0 ] && echo “2失败”
named-checkzone 1.168.192.in-addr.arpa /var/named/192.168.1.rev &> /dev/null
[ $? -ne 0 ] && echo “3失败”
service named start &> /dev/null
[ $? -ne 0 ] && echo “4失败”
chkconfig named on &> /dev/null
echo “安装系统完成 请使用虚拟机测试”