通过安装及配置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. Dynamics CRM证书更换

    Dynamics CRM产品一般有两种认证方式.第一种是基于声明的内部访问也就是无证书单纯用账号密码验证.第二种就是联合身份认证,需要安装网站证书. 对于联合身份认证的情况因为需要安装证书,而且证书是 ...

  2. (五)Struts2处理结果管理

    当Action处理完用户请求时,处理结果应该通过视图资源实现,但将哪个视图呈现给浏览者呢.由<result.../>来决定 Action处理完用户请求后,返回一个普通字符串.整个普通字符串 ...

  3. 算法:第一节课Master定理

    1.ctex:要求用Tex编辑器进行作业的书写 2.与东大本科有差距,还需要多点努力才行. 3. 4.考试不考概念 5. 6.时间复杂度和空间复杂度 7.算法好坏的评价标准 8.基本运算 9.时间复杂 ...

  4. Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明

    Android平台OpenGL ES/Assimp/OpenCV/GLM集成说明 本文代码见: https://github.com/jiangxincode/OpenGLDemo 集成Assimp ...

  5. 为什么要进行系统拆分?如何进行系统拆分?拆分后不用dubbo可以吗?

    分布式系统,我用一句话给你解释一下,实在没时间多唠了,就是原来20万行代码的系统,现在拆分成20个小系统,每个小系统1万行代码.原本代码之间直接就是基于spring调用,现在拆分开来了,20个小系统部 ...

  6. Spring(11) - Introductions进行类扩展方法

    Introductions(引用),在 Aspect 中称为类型间的声明,使切面能够声明被通知的对象(拦截的对象)实现给定的接口,并提供该接口的实现. 简单点说可以将一个类的实现方法复制到未实现的类中 ...

  7. vue中利用.env文件存储全局环境变量,以及配置vue启动和打包命令

    目录 1,前言 2,.env文件的作用 3,配置.env文件 4,配置启动命令 5,获取.env中的全局变量 5,实际用处 1,前言 分享一下vue项目中利用.env文件存储全局环境变量,以及利于项目 ...

  8. 算法tip:栈的可生成性问题

    算法tip:栈的可生成性问题 问题描述 给定 pushed 和 popped 两个序列,每个序列中的 值都不重复,判断它们是否可以在最初空栈上进行推入 push 和弹出 pop 操作.(LeetCod ...

  9. Bootstrap自适应各种设备

    <!DOCTYPE html><html><head> <title>Bootstrap 实例 - 手机.平板电脑.台式电脑</title> ...

  10. UVA10294项链和手镯(等价类计数问题)

    题意:       给你一串珠子(连接成了一个环),共有n个珠子组成,你有t种颜色,现在你来给这个珠子染色,问染成项链有多少种方法?染成手镯有多少种方法?在项链里,经过顺时针旋转后相同的算一个,在手镯 ...