一键部署pxe环境

系统:Centos6.5

环境:VMware Workstation12

#!/bin/bash
# Please prepare CentOS ISO image first
# root password:123456
# initialization
ip=192.168.126.11
dhcp_start=192.168.126.100
dhcp_end=192.168.126.200
subnet=192.168.126.0
netmask=255.255.255.0
broadcast=192.168.126.255
swap_size=2048


# Mount CentOS ISO
[ -e /dev/cdrom -a -e /dev/cdrom1 ]||{
echo "please insert iso image";exit
}

mkdir -p /pxe/{centos6,centos7,ks}
mount /dev/cdrom  /pxe/centos6 &>/dev/null
mount /dev/cdrom1 /pxe/centos7 &>/dev/null
echo "/dev/cdrom   /pxe/centos6  iso9660  defaults 0 0" >>/etc/fstab
echo "/dev/cdrom1  /pxe/centos7  iso9660  defaults 0 0" >>/etc/fstab

# Install NFS
echo "NFS Installing..."
yum install nfs-utils -y &>/dev/null
echo "/pxe/centos6 *(ro)" >> /etc/exports
echo "/pxe/centos7 *(ro)" >> /etc/exports
echo "/pxe/ks *(ro)" >> /etc/exports
service rpcbind restart &>/dev/null
service nfs restart &>/dev/null
chkconfig rpcbind on
chkconfig nfs on
[ `ps -ef|grep nfsd|wc -l` -gt 1 ]&& echo "NFS is ready!"|| {
 echo "NFS error";exit
}

# Install TFTP
echo "TFTP Installing..."
yum install xinetd tftp-server -y &>/dev/null
sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp
sed -i '/server_args/c\server_args	= -t -s -v /var/lib/tftpboot' /etc/xinetd.d/tftp
service xinetd restart &>/dev/null
chkconfig xinetd on
[ `ss -anu|grep :69|wc -l` -gt 0 ]&& echo "TFTP is ready!"||{
echo "TFTP error";exit
}

# Prepare Boot File
echo "syslinux Installing..."
yum install syslinux -y &>/dev/null
mkdir -p /var/lib/tftpboot/centos{6..7}
\cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
\cp /pxe/centos6/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos6
\cp /pxe/centos7/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos7
mkdir -p /var/lib/tftpboot/pxelinux.cfg

cat >/var/lib/tftpboot/pxelinux.cfg/default <<-EOF
default menu.c32
timeout 600
menu title Welcome to CentOS Automatic Install
label local
  menu label Boot from local drive
  localboot 0xffff
label centos6.5
  menu label Install CentOS 6.5 Minimal
  kernel centos6/vmlinuz
  append initrd=centos6/initrd.img ks=nfs:$ip:/pxe/ks/centos6.cfg
label centos7.3
  menu label Install CentOS 7.3 Minimal
  kernel centos7/vmlinuz
  append initrd=centos7/initrd.img inst.ks=nfs:$ip:/pxe/ks/centos7.cfg
EOF
echo "The boot file is ready!"

# Install DHCP
echo "DHCP Installing..."
yum install dhcp -y &>/dev/null
cat >/etc/dhcp/dhcpd.conf <<-EOF
next-server $ip;
filename "/var/lib/tftpboot/pxelinux.0";
allow bootp;
allow booting;
subnet $subnet netmask $netmask {
  range $dhcp_start $dhcp_end;
  option domain-name-servers $ip;
  option routers $ip;
  option broadcast-address $broadcast;
}
EOF
service dhcpd restart &>/dev/null
chkconfig dhcpd on
[ `ss -anu|grep :67|wc -l` -gt 0 ]&& echo "DHCP is ready!"||{
echo "DHCP error";exit
}

# Prepare ks file

# centos6 
echo "ks file preparing..."
cat > /pxe/ks/centos6.cfg <<-EOF
firewall --disabled
install
nfs --server=$ip --dir=/pxe/centos6
rootpw --iscrypted \$1\$PWGYEp1D\$UmqHNIm./L8dLSsF4owc30
auth  --useshadow  --passalgo=sha512
text
keyboard us
lang zh_CN
selinux --disabled
skipx
logging --level=info
reboot
timezone  Asia/Shanghai
network  --bootproto=dhcp --device=eth0 --onboot=on
bootloader --append="quiet" --location=mbr
zerombr
clearpart --all  
part /boot --asprimary --fstype="ext4" --size=200      
part pv.008002 --size=1 --grow
volgroup vg --pesize=4096 pv.008002
logvol swap --fstype=swap --name=swap --vgname=vg --size=$swap_size
logvol / --fstype=ext4 --name=root --vgname=vg --size=1 --grow
%packages --nobase
@Core
%end
%post
sed -i 's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i '/UseDNS/c\UseDNS no' /etc/ssh/sshd_config
%end
EOF

# centos7
\cp /pxe/ks/{centos6.cfg,centos7.cfg}
sed -i '/^nfs/s/centos6/centos7/' /pxe/ks/centos7.cfg
sed -i 's/ext4/xfs/;s/--size=200/--size=500/' /pxe/ks/centos7.cfg
sed -i '$a\%addon com_redhat_kdump --disable --reserve-mb='auto'\n%end' /pxe/ks/centos7.cfg 

echo "ks file is ready!"
echo "Installation is complete!!!"

 

转载于:https://www.cnblogs.com/fcing/p/9348019.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值