echo pxe一键部署-by-sakura
echo 密码123123
#!/bin/bash
read -p "请输入服务端ip,如192.168.6.13: " SIP
read -p "请输入服务端网段,如192.168.6.0: " GBY
read -p "请输入服务端网关,如192.168.6.1: " GW
read -p "请输入DHCP资源池起始地址,如192.168.6.66: " DHCP1
read -p "请输入DHCP资源池结束地址,如192.168.6.99: " DHCP2
echo 请等待嗷~~~~~
sleep 1
yum -y install httpd dhcp tftp-server tftp syslinux
#dhcp 配置
cat <<EOF> /etc/dhcp/dhcpd.conf
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
log-facility local7;
subnet 192.168.180.0 netmask 255.255.255.0 {
range 192.168.180.100 192.168.180.150;
option domain-name-servers 8.8.8.8;
option routers 192.168.180.2;
default-lease-time 600;
max-lease-time 7200;
next-server 192.168.180.12;
filename "pxelinux.0";
}
EOF
#替换变量
sed -i "7s/192.168.180.0/$GBY/g" /etc/dhcp/dhcpd.conf
sed -i "8s/192.168.180.100/$DHCP1/g" /etc/dhcp/dhcpd.conf
sed -i "8s/192.168.180.150/$DHCP2/g" /etc/dhcp/dhcpd.conf
sed -i "10s/192.168.180.2/$GW/g" /etc/dhcp/dhcpd.conf
sed -i "13s/192.168.180.12/$SIP/g" /etc/dhcp/dhcpd.conf
#
systemctl start dhcpd
systemctl enable dhcpd
#镜像源配置
mkdir /var/www/html/centos7
mount /dev/sr0 /var/www/html/centos7/
#http配置
systemctl start httpd
systemctl enable httpd
#ftp配置
sed -i '/disable/ s/yes/no/g' /etc/xinetd.d/tftp
systemctl start tftp.socket
systemctl enable tftp.socket
systemctl start tftp
systemctl enable tftp
#编写引导安装相关文件,放到指定位置
cp -a /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
cp -a /var/www/html/centos7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/
cp -a /var/www/html/centos7/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/
mkdir /var/lib/tftpboot/pxelinux.cfg/
cp -a /var/www/html/centos7/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
#改IP
sed -i '2s/600/50/g' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '62s/7/7 by sakura /g' /var/lib/tftpboot/pxelinux.cfg/default
sed -i '62a \ menu default' /var/lib/tftpboot/pxelinux.cfg/default
sed -i "65c \ append initrd=initrd.img inst.repo=http://$SIP/centos7 inst.ks=http://$SIP/ks_config/centos7.cfg" /var/lib/tftpboot/pxelinux.cfg/default
sed -i '69c \ #menu default' /var/lib/tftpboot/pxelinux.cfg/default
#创建并编写无人值守安装模板文件 ip
mkdir /var/www/html/ks_config
cat <<EOF>/var/www/html/ks_config/centos7.cfg
#version=DEVEL
auth --enableshadow --passalgo=sha512
url --url=http://192.168.180.12/centos7/
graphical
firstboot --enable
ignoredisk --only-use=sda
keyboard --vckeymap=us --xlayouts='us'
lang en_US.UTF-8
network --bootproto=dhcp --device=ens33 --onboot=on --ipv6=auto --no-activate
network --hostname=localhost.localdomain
rootpw --iscrypted \$6\$LO0oxqvmJfQOFW7p\$cgV.4sVUp7UgEDSwUToHSIhRCmX4ETF2S/CoRmhnf.NHkCJvS1.Or8HENDSPkCrfnCgUlnVdxNWR0iK20GZF70
firewall --disabled
selinux --disabled
services --disabled="chronyd"
timezone Asia/Shanghai --isUtc --nontp
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
clearpart --none --initlabel
part /boot --fstype="xfs" --ondisk=sda --size=1024
part swap --fstype="swap" --ondisk=sda --size=2048
part / --fstype="xfs" --ondisk=sda --grow --size=1
%packages
@^minimal
%end
reboot
EOF
sed -i "3s/192.168.180.12/$SIP/g" /var/www/html/ks_config/centos7.cfg
echo 配置完成
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。