通过安装及配置DHCP,tftp-server,xinetd,httpd,syslinux来实现批量安装Linux系统

#!/bin/bash
#检查环境
se_state=`getenforce`
if [ $se_state != "Disabled" ];then
setenforce 0
sed -i 's/=enforcing/=disabled/g' /etc/selinux/config
fi
systemctl start firewalld
systemctl enable firewalld &> /dev/null
#检查yum源
mo_point=`ls / |grep local_dvd`
if [ -z $mo_point ];then
mkdir /local_dvd
mount /dev/cdrom /local_dvd
#echo "/dev/sr0 /local_dvd iso9660 defaults 0 0 " >> /etc/fstab
mkdir /etc/yum.repos.d/old
mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/old
echo "[local]
name=local
baseurl=file:///local_dvd
enabled=1
gpgcheck=0" >> /etc/yum.repos.d/local.repo
yum clean all
yum makecache
fi
#安装服务
yum -y install dhcp tftp-server xinetd httpd syslinux
#配置DHCP
IP=`ifconfig |grep -w inet |grep broad |awk '{print $2}'`
NETM=`ifconfig |grep -w netmask |grep broad |awk '{print $4}'`
NETW=`echo $IP |awk -F. '{print $1"."$2"."$3}'`
echo "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 $NETW.0 netmask $NETM {
range $NETW.10 $NETW.200;
option routers $IP;
filename \"pxelinux.0\";
next-server $IP;
}" > /etc/dhcp/dhcpd.conf
#配置tftp
mkdir /tftpboot
sed -i '13s/\/var\/lib//g' /etc/xinetd.d/tftp
sed -i '14s/yes/no/g' /etc/xinetd.d/tftp
#配置httpd,挂载系统光盘
mkdir /var/www/html/http_iso
mount /dev/cdrom /var/www/html/http_iso
#echo "/dev/cdrom /var/www/html/http_iso iso9660 defaults 0 0 " >> /etc/fstab
#拷贝引导程序到tftp目录下
cp /var/www/html/http_iso/isolinux/vmlinuz /tftpboot
cp /var/www/html/http_iso/isolinux/initrd.img /tftpboot
mkdir /tftpboot/pxelinux.cfg
cp /var/www/html/http_iso/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
cp /usr/share/syslinux/pxelinux.0 /tftpboot
#修改默认启动程序
sed -i '1s/vesamenu.c32/ks/g' /tftpboot/pxelinux.cfg/default
sed -i 120d /tftpboot/pxelinux.cfg/default
echo "label ks
menu label ^Install CentOS 7
kernel vmlinuz
append initrd=initrd.img method=http://$IP/http_iso ks=http://$IP/ks.cfg devfs=nomount
menu end " >> /tftpboot/pxelinux.cfg/default
#拷贝ks文件到httpd工作目录下
cp ~/anaconda-ks.cfg /var/www/html/ks.cfg
#给ks文件增加可读权限
chmod a+r /var/www/html/ks.cfg
#修改ks文件的系统安装方式
sed -i '1,10s/cdrom/install/g' /var/www/html/ks.cfg
sed -i 5a"url --url=\"http://$IP/http_iso\"" /var/www/html/ks.cfg
#启动服务
systemctl restart dhcpd httpd xinetd
#systemctl enable dhcpd httpd xinetd
#添加防火墙
firewall-cmd --add-port=67/udp --permanent
firewall-cmd --add-port=69/udp --permanent
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload

shell基础之pxe批量部署的更多相关文章

  1. PXE批量部署linux操作系统

    前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我 ...

  2. shell应用之cobbler批量部署

    如果使用的是原始源,可直接使用该脚本,如果是用的其它源且有cobbler安装包的可删除脚本中的配置yum源步骤.批量部署使用的软件有:cobbler dhcp httpd tftp-server xi ...

  3. pxe批量部署

    功能: 批量全自动安装操作系统方法: dhcp 自动分配IP tftp 微系统 用来安装系统 httpd 网络源 操作流程: #检查环境 getenforce #检查selinux systemctl ...

  4. PXE批量部署安装Linux系统

    PXE介绍 1)Preboot Excution Environment 预启动执行环境 2)Intel公司研发 3)基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映 ...

  5. pxe批量部署脚本

    #!/bin/bash #检查环境 setenforce 0 sed -i 's/=enforce/=disabled/g' /etc/selinux/config systemctl restart ...

  6. Cobbler批量部署CentOS

    简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE ...

  7. linux服务器批量部署应用系统shell脚本(Tomcat/jetty)

    linux服务器批量部署应用系统shell脚本: 1.请更换代码内的服务器地址(Tomcat或jetty服务器) serverRoot=/home/undoner/java_tool/apache-t ...

  8. shell脚本批量部署ssh

    日常运维工作中,需要给几十上百台服务器批量部署软件或者是重启服务器等操作, 这样大量重复性的工作一定很苦恼,本文给大家提供了最基本的批量操作的方法,虽然效率不高,对于初学者来说还是好理解.由于刚开始学 ...

  9. 使用 PXE+Kickstart 实现无人值守批量部署系统

    一.废话两句 在云数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常繁琐,系统安装好了后还会涉及很多配置,如果一台台来安装的话工作量非常大.(虽然有加班费,开个玩笑)为了解决这个问题,我们需 ...

随机推荐

  1. [C++]变量声明与定义的规则

    声明与定义分离 Tips:变量能且仅能被定义一次,但是可以被多次声明. 为了支持分离式编译,C++将定义和声明区分开.其中声明规定了变量的类型和名字,定义除此功能外还会申请存储空间并可能为变量赋一个初 ...

  2. JavaFX获取屏幕尺寸

    1 awt Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); double width = screenSize. ...

  3. Parentheses Balance UVA - 673

    You are given a string consisting of parentheses () and []. A string of this type is said to be corr ...

  4. 如何解压从UK biobank下载下来的tsv.bgz文件?

    今天碰到一个问题,就是从UK biobank下载下来的gwas result file是filename.tsv.bgz格式.这东西需要解压才能阅历,可是用zip或者rar都是搞不定,网上搜了一圈,说 ...

  5. 谈谈SSRF漏洞挖掘

    最近看了很多ssrf漏洞挖掘技巧和自己以往挖掘ssrf漏洞的一些技巧和经验,简单的总结下: 之前自己总结的: ssrf=服务器端请求伪造 基于服务器攻击 url链接 -->内网漫游/内网服务探测 ...

  6. 【Nacos】Springboot整合nacos配置中心(一)

    一.本地Nacos安装环境: Win7 ,JDK8 ,maven3.5 1.下载安装包 2.启动nacos服务,bin文件下下面startup.cmd 3.访问 http://localhost:88 ...

  7. Ribbon、Feign和OpenFeign的区别

    Spring Cloud 微服务架构学习记录与示例 Ribbon Ribbon 是 Netflix开源的基于HTTP和TCP等协议负载均衡组件 Ribbon 可以用来做客户端负载均衡,调用注册中心的服 ...

  8. 【CPU100%排查】CPU100%问题排查方案

    1.使用top -c 查看CPU 占用情况 ,按P(大写)可以倒序查看占CPU占用率  2.找到占用率高的进程以后,再定位到具体线程 比如 此时进程ID 14724 CPU占用高,进一步使用top - ...

  9. SpringCloud之(豪猪)Hystrix限流、熔断、降级

    Spring Cloud 微服务架构学习记录与示例 一.初识Hystrix Hystrix [hɪst'rɪks],中文含义是豪猪,因其背上长满棘刺,从而拥有了自我保护的能力.本文所说的Hystrix ...

  10. hdu4499 搜索

    题意:       给你一个棋盘,最大是5*5的,问你最多可以放多少个炮,炮和炮之间不可以相互攻击,这块只的是只能走一步,不存在两个炮中间三个棋子的情况.. 思路:    刚开始想的是把所有的空位置都 ...