通过安装及配置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. Java8中的Stream流式操作 - 入门篇

    作者:汤圆 个人博客:javalover.cc 前言 之前总是朋友朋友的叫,感觉有套近乎的嫌疑,所以后面还是给大家改个称呼吧 因为大家是来看东西的,所以暂且叫做官人吧(灵感来自于民间流传的四大名著之一 ...

  2. Docker工具的使用

    初识 Docker jdk的版本问题,环境造成的问题很常见,称为代码的水土不服 把环境和代码一起传过去 软件跨环境迁移的问题就解决了 Docker 是一个开源的应用容器引擎 诞生于 2013 年初,基 ...

  3. 逆向初级-PE(五)

    5.1.PE文件结构 1.什么是可执行文件? 可执行文件(executable fle)指的是可以由操作系统进行加载执行的文件. 可执行文件的格式: Windows平台: PE(Portable Ex ...

  4. Java中常见方法详解合集(方法的定义及语法结构)

    Java的方法定义 1.方法的定义 方法是控制对象的动作行为方式与准则,在Java中方法位于类体下又有另一种含义. 普通的方法在类中称为"实例方法",因为方法的调用需要创建对象,而 ...

  5. Weekly Contest 137

    1046. Last Stone Weight We have a collection of rocks, each rock has a positive integer weight. Each ...

  6. Property Distribution(DFS)

    Property Distribution タナカ氏が HW アールの果樹園を残して亡くなりました.果樹園は東西南北方向に H×W の区画に分けられ.区画ごとにリンゴ.カキ.ミカンが植えられています. ...

  7. 1.1.08- Python变量的关联,绑定,引用

    Python中关联.绑定,引用的含义: 在Python中,变量没有类型 关联/绑定/引用都是指变量和一个对象的关联关系. 在交互模式下查看变量的绑定关系: >>>help(" ...

  8. Sass中连体符(&)的运用

    在CSS中,这种想法是无法实现的,但在Sass中,可以轻松的通过连体符&来实现.这也是我们今天要说的. 我们先来回忆一下,CSS中常见的一组样式: /*页面中链接的颜色*/ a {clolor ...

  9. WSL2+Ubuntu配置Java Maven Hadoop Spark环境

    所需文件: 更新日期为2021/5/8: Linux 内核更新包 JDK1.8 maven3.8.1 hadoop3.3.0 spark3.1.1 WSL?WSL2? WSL是适用于 Linux 的 ...

  10. NumPy中文文档搬砖(划掉)学习笔记(1)

    原文地址 前言 况下加速Python中的操作运行时.适用于快速数值运算的一个选项是NumPy,它当之无愧地将自己称为使用Python进行科学计算的基本软件包. 当然,很少有人将50微秒(百万分之五十秒 ...