前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PXE+dhcp+tftp+http+kickstart 批量网络安装服务器

PXE+dhcp+tftp+http+kickstart 批量网络安装服务器

作者头像
以谁为师
发布2019-05-28 22:54:38
1.7K0
发布2019-05-28 22:54:38
举报

PXE+dhcp+tftp+http+kickstart 批量网络安装服务器

转发之前写的pxe安装服务器:http://www.attacker.club/article/125

服务列表

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

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

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

代码语言:javascript
复制
cat /var/lib/dhcpd/dhcpd.leases
#客户端IP地址记录

效果图

停留界面

安装过程

启动主机

脚本

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148

#!/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<<EOF [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<<EOF 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<<EOF 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<<EOF 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<<Local-IP #!/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"

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017年7月7日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • PXE+dhcp+tftp+http+kickstart 批量网络安装服务器
  • 服务列表
  • 效果图
    • 停留界面
      • 安装过程
        • 启动主机
        • 脚本
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档