shell基础之pxe批量部署
通过安装及配置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批量部署的更多相关文章
- PXE批量部署linux操作系统
前言 在实际生产环境中,有时候我们会碰到为几十上百甚至上千台服务器安装Linux操作系统的需求,如果我们还是常规的去使用移动介质逐台安装,显然是一件低效又令人抓狂的事情,那要安装到何年何月啊?这对于我 ...
- shell应用之cobbler批量部署
如果使用的是原始源,可直接使用该脚本,如果是用的其它源且有cobbler安装包的可删除脚本中的配置yum源步骤.批量部署使用的软件有:cobbler dhcp httpd tftp-server xi ...
- pxe批量部署
功能: 批量全自动安装操作系统方法: dhcp 自动分配IP tftp 微系统 用来安装系统 httpd 网络源 操作流程: #检查环境 getenforce #检查selinux systemctl ...
- PXE批量部署安装Linux系统
PXE介绍 1)Preboot Excution Environment 预启动执行环境 2)Intel公司研发 3)基于Client/Server的网络模式,支持远程主机通过网络从远端服务器下载映 ...
- pxe批量部署脚本
#!/bin/bash #检查环境 setenforce 0 sed -i 's/=enforce/=disabled/g' /etc/selinux/config systemctl restart ...
- Cobbler批量部署CentOS
简介 Cobbler是一个快速网络安装linux的服务,而且在经过调整也可以支持网络安装windows.该工具使用python开发,小巧轻便(才15k行python代码),使用简单的命令即可完成PXE ...
- linux服务器批量部署应用系统shell脚本(Tomcat/jetty)
linux服务器批量部署应用系统shell脚本: 1.请更换代码内的服务器地址(Tomcat或jetty服务器) serverRoot=/home/undoner/java_tool/apache-t ...
- shell脚本批量部署ssh
日常运维工作中,需要给几十上百台服务器批量部署软件或者是重启服务器等操作, 这样大量重复性的工作一定很苦恼,本文给大家提供了最基本的批量操作的方法,虽然效率不高,对于初学者来说还是好理解.由于刚开始学 ...
- 使用 PXE+Kickstart 实现无人值守批量部署系统
一.废话两句 在云数据中心,一次几十台甚至几百台服务器上线,系统安装将变得非常繁琐,系统安装好了后还会涉及很多配置,如果一台台来安装的话工作量非常大.(虽然有加班费,开个玩笑)为了解决这个问题,我们需 ...
随机推荐
- OOUnit1Summary
一.前三次作业内容分析 前言 第一单元的作业以表达式求导为主题,分三次要求逐步增加,难度逐步提高.这三次作业下来,本人既有收获,也有遗憾,因此通过接下来的内容对我这三次作业进行分析和总结,希望能能为我 ...
- Flowable与springBoot项目整合及出现的问题
Flowable与springBoot项目整合及出现的问题 单纯地将Flowable和springBoot整合,使用mysql作为数据库,整合中踩了两个坑,见文末. 在pom中添加依赖 <?xm ...
- Nodejs入门(二)
Nodejs基础api 1.path path模块提供了很多实用的工具函数,用于处理文件与目录的路径,下面是它的api: normalize 方法可以输出规范格式的path字符串 join 方法用于拼 ...
- 消息中间件-RabbitMQ集群和高可用
多机多节点集群部署 一. 环境准备 准备三台安装好RabbitMQ 的机器,安装方法见 安装步骤 10.10.1.41 10.10.1.42 10.10.1.43 提示:如果使用虚拟机,可以在一台VM ...
- Kubernetes Secrets
Secrets 背景信息 Kubernetes版本 [09:08:04 yhf@test ~]$ kubectl version Client Version: version.Info{Major: ...
- java面试系列<4>——IO
面试系列--javaIO 一.概述 java的IO主要分为以下几类: 磁盘操作:File 字节操作:InputStream 和 OutputStream 字符操作:Reader 和 Writer 对象 ...
- commons-pool2 池化技术探究
一.前言 我们经常会接触各种池化的技术或者概念,包括对象池.连接池.线程池等,池化技术最大的好处就是实现对象的重复利用,尤其是创建和使用大对象或者宝贵资源(HTTP连接对象,MySQL连接对象)等方面 ...
- BLE广播信道空中包详解
广播信道空中包 在学习BLE的过程中,对于广播信道的空中包有许多混淆的地方,包括各个空中包的用途,帧格式等.现在想把他们做一个总结和归纳. BLE广播信道中的空中包分为有以下几种: 可连接非定向广播 ...
- 2020北航OO第三单元总结
2020北航OO第三单元总结 本单元要求是根据JML规格完善代码,初看是一个简单的代码照搬实现的东西,但最后才发现由于CPU时间的限制,还考察了大量优化策略及数据结构中关于图的知识,是一次非常注重细节 ...
- 支持rotate和大小限制的golang log库
支持大小限制和rotate的log库,还是很有必要的,前者让你不再操心磁盘被吃光,后者让查日志更方便. 但是在golang中没有太好的实现,看过一些开源的和自行实现的,都有几个不满意的地方,比如: 没 ...