pxe服务器镜像文件,PXE+dhcp+tftp+http+kickstart 批量网络安装服务器

服务列表

dhcp:分配IP地址,指定启动文件和tftp服务地址 tftp-server:传输引导文件 http:将光盘iso镜像发布

pxelinux.0 :系统pxe的启动文件通过安装syslinux包获得 ks.cfg:通过/root/anaconda-ks.cfg定制自己的参数,如果有图形界面可以安装kickstart 生成自动化文件

查看分配的地址,我这里启动是vm分配的ip,可以停掉vm dhcp。生产环境可以根据mac和先后顺序找到主机并进行ssh登录。

cat /var/lib/dhcpd/dhcpd.leases

#客户端IP地址记录

效果图

停留界面

56d21597f7b4dad5a87d705691089146.png

安装过程

a983663f6ace72b6ababe7acf78c62f5.png

启动主机

d930539fcf4b80e9bdd73099a95878a9.png

脚本

#!/bin/bash

# --------------------------------------------------

#发布者:以谁为师

#Email:admin@attacker.club

#网站:ops.attacker.club

#Description:Centos服务器初始化

# --------------------------------------------------

mkdir -p /pxe/iso >/dev/nell 2>&1

####---- 挂载镜像 ----####

mount /dev/cdrom /pxe/iso >/dev/nell 2>&1

#镜像挂载

if [ ! -d /pxe/iso/Packages ]; then

echo

echo -e "\033[41;36m mount failed ! CD-ROM is not detected !\033[0m"

echo

exit

fi

####---- 设置ip和网段变量 ----####

read -p "Please enter the IP address": IPADDR

mask=$(echo $IPADDR| cut -d '.' -f 1-3)

####---- 本地yum库 ----####

mv /etc/yum.repos.d/*repo .

cat > /etc/yum.repos.d/local.repo<

[base]

baseurl=file:///pxe/iso

enable=1

gpgcheck=0

EOF

yum clean all

####---- yum安装所有服务 ----####

yum install dhcp tftp-server httpd syslinux net-tools -y

mv *repo /etc/yum.repos.d/ >/dev/nell 2>&1

rm /etc/yum.repos.d/local.repo -rf

#恢复原来的yum库配置

yum clean all

subnet=$(ifconfig |grep $IPADDR| awk '{print $4}')

router=$(route |grep default|awk '{print $2}')

####---- dhcp配置 ----####

cat >/etc/dhcp/dhcpd.conf<

subnet $mask.0 netmask $subnet {

range dynamic-bootp $mask.10 $mask.60;

option routers $router;

filename "pxelinux.0";

next-server $IPADDR;

}

EOF

####---- tftpd配置 ----####

sed -i 's#/var/lib/tftpboot#/pxe/tftpboot#g' /etc/xinetd.d/tftp

sed -i 's/disable.*$/disable = no/g' /etc/xinetd.d/tftp

mkdir /pxe/tftpboot >/dev/nell 2>&1

cp /usr/share/syslinux/pxelinux.0 /pxe/tftpboot/

cp /pxe/iso/isolinux/vmlinuz /pxe/tftpboot/

cp /pxe/iso/isolinux/initrd.img /pxe/tftpboot/

cp /pxe/iso/isolinux/boot* /pxe/tftpboot/

cp /pxe/iso/isolinux/vesamenu.c32 /pxe/tftpboot/

mkdir /pxe/tftpboot/pxelinux.cfg >/dev/nell 2>&1

cat >/pxe/tftpboot/pxelinux.cfg/default<

default vesamenu.c32

timeout 6000

#timeout -1 停留界面

display boot.msg

menu background splash.jpg

label localhost

menu label ^Local Boot

menu default

localboot 0x80

label linux

menu label ^Install Centos 7

kernel vmlinuz

append initrd=initrd.img ks=http://$IPADDR/ks.cfg

EOF

chmod o+rwx /pxe/tftpboot/ -R

####---- http配置 ----####

sed -i 's#/var/www/html#/pxe#g' /etc/httpd/conf/httpd.conf

####---- ks.cfg自动脚本 ----####

cat >/pxe/ks.cfg<

text

url --url http://$IPADDR/iso

firstboot --enable

ignoredisk --only-use=sda

keyboard --vckeymap=us --xlayouts='us'

lang en_US.UTF-8

network --bootproto=dhcp --device=eno16777736 --ipv6=auto --activate

network --hostname=www.to-share.net

rootpw 123456

#root password

timezone Asia/Shanghai --isUtc

bootloader --location=mbr --boot-drive=sda

autopart --type=lvm

clearpart --all --initlabel

reboot

#安装软件包

%packages

[@core](https://my.oschina.net/u/614730)

net-tools

%end

#安装结束后执行脚本

%post --interpreter=/bin/bash

chmod +x /etc/rc.local

echo /root/echo_ip.sh >> /etc/rc.local

cat >/root/echo_ip.sh<

#!/bin/bash

network_dir=/etc/sysconfig/network-scripts/ifcfg-eno16777736

echo >/etc/issue

echo "Server IP: \$(ip add |grep global |head -1|awk '{print \$2}'|cut -d / -f 1)" >>/etc/issue

echo >>/etc/issue

sed -i 's#none#static#g' \$network_dir

echo "IPADDR=\$(ip add |grep global |head -1|awk '{print \$2}'|cut -d / -f 1)" >> \$network_dir

echo "NETMASK=$subnet" >> \$network_dir

echo "GATEWAY=$router" >> \$network_dir

echo "DNS1=223.5.5.5" >> \$network_dir

echo "DNS2=114.114.114.114" >> \$network_dir

echo >>/etc/issue

sed -i '14d' /etc/rc.local

sed -i '14d' /etc/rc.d/rc.local

#删除14行

reboot

Local-IP

chmod +x /root/echo_ip.sh

#/root/echo_ip.sh

%end

EOF

####---- 启动服务 ----####

service xinetd restart >/dev/nell 2>&1

service dhcpd restart >/dev/nell 2>&1

service httpd restart >/dev/nell 2>&1

service iptables stop >/dev/nell 2>&1

systemctl stop firewalld >/dev/nell 2>&1

setenforce 0

echo

echo -e "\t\t\t\t\033[3;032m[OK]\033[0m\n"

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值