一键部署pxe环境
系统:Centos6.5
环境:VMware Workstation12
#!/bin/bash
# Please prepare CentOS ISO image first
# root password:123456
# initialization
ip=192.168.126.11
dhcp_start=192.168.126.100
dhcp_end=192.168.126.200
subnet=192.168.126.0
netmask=255.255.255.0
broadcast=192.168.126.255
swap_size=2048 # Mount CentOS ISO
[ -e /dev/cdrom -a -e /dev/cdrom1 ]||{
echo "please insert iso image";exit
} mkdir -p /pxe/{centos6,centos7,ks}
mount /dev/cdrom /pxe/centos6 &>/dev/null
mount /dev/cdrom1 /pxe/centos7 &>/dev/null
echo "/dev/cdrom /pxe/centos6 iso9660 defaults 0 0" >>/etc/fstab
echo "/dev/cdrom1 /pxe/centos7 iso9660 defaults 0 0" >>/etc/fstab # Install NFS
echo "NFS Installing..."
yum install nfs-utils -y &>/dev/null
echo "/pxe/centos6 *(ro)" >> /etc/exports
echo "/pxe/centos7 *(ro)" >> /etc/exports
echo "/pxe/ks *(ro)" >> /etc/exports
service rpcbind restart &>/dev/null
service nfs restart &>/dev/null
chkconfig rpcbind on
chkconfig nfs on
[ `ps -ef|grep nfsd|wc -l` -gt 1 ]&& echo "NFS is ready!"|| {
echo "NFS error";exit
} # Install TFTP
echo "TFTP Installing..."
yum install xinetd tftp-server -y &>/dev/null
sed -i '/disable/s/yes/no/' /etc/xinetd.d/tftp
sed -i '/server_args/c\server_args = -t -s -v /var/lib/tftpboot' /etc/xinetd.d/tftp
service xinetd restart &>/dev/null
chkconfig xinetd on
[ `ss -anu|grep :69|wc -l` -gt 0 ]&& echo "TFTP is ready!"||{
echo "TFTP error";exit
} # Prepare Boot File
echo "syslinux Installing..."
yum install syslinux -y &>/dev/null
mkdir -p /var/lib/tftpboot/centos{6..7}
\cp /usr/share/syslinux/{pxelinux.0,menu.c32} /var/lib/tftpboot/
\cp /pxe/centos6/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos6
\cp /pxe/centos7/isolinux/{initrd.img,vmlinuz} /var/lib/tftpboot/centos7
mkdir -p /var/lib/tftpboot/pxelinux.cfg cat >/var/lib/tftpboot/pxelinux.cfg/default <<-EOF
default menu.c32
timeout 600
menu title Welcome to CentOS Automatic Install
label local
menu label Boot from local drive
localboot 0xffff
label centos6.5
menu label Install CentOS 6.5 Minimal
kernel centos6/vmlinuz
append initrd=centos6/initrd.img ks=nfs:$ip:/pxe/ks/centos6.cfg
label centos7.3
menu label Install CentOS 7.3 Minimal
kernel centos7/vmlinuz
append initrd=centos7/initrd.img inst.ks=nfs:$ip:/pxe/ks/centos7.cfg
EOF
echo "The boot file is ready!" # Install DHCP
echo "DHCP Installing..."
yum install dhcp -y &>/dev/null
cat >/etc/dhcp/dhcpd.conf <<-EOF
next-server $ip;
filename "/var/lib/tftpboot/pxelinux.0";
allow bootp;
allow booting;
subnet $subnet netmask $netmask {
range $dhcp_start $dhcp_end;
option domain-name-servers $ip;
option routers $ip;
option broadcast-address $broadcast;
}
EOF
service dhcpd restart &>/dev/null
chkconfig dhcpd on
[ `ss -anu|grep :67|wc -l` -gt 0 ]&& echo "DHCP is ready!"||{
echo "DHCP error";exit
} # Prepare ks file # centos6
echo "ks file preparing..."
cat > /pxe/ks/centos6.cfg <<-EOF
firewall --disabled
install
nfs --server=$ip --dir=/pxe/centos6
rootpw --iscrypted \$1\$PWGYEp1D\$UmqHNIm./L8dLSsF4owc30
auth --useshadow --passalgo=sha512
text
keyboard us
lang zh_CN
selinux --disabled
skipx
logging --level=info
reboot
timezone Asia/Shanghai
network --bootproto=dhcp --device=eth0 --onboot=on
bootloader --append="quiet" --location=mbr
zerombr
clearpart --all
part /boot --asprimary --fstype="ext4" --size=200
part pv.008002 --size=1 --grow
volgroup vg --pesize=4096 pv.008002
logvol swap --fstype=swap --name=swap --vgname=vg --size=$swap_size
logvol / --fstype=ext4 --name=root --vgname=vg --size=1 --grow
%packages --nobase
@Core
%end
%post
sed -i 's/^GSSAPIAuthentication yes/GSSAPIAuthentication no/' /etc/ssh/sshd_config
sed -i '/UseDNS/c\UseDNS no' /etc/ssh/sshd_config
%end
EOF # centos7
\cp /pxe/ks/{centos6.cfg,centos7.cfg}
sed -i '/^nfs/s/centos6/centos7/' /pxe/ks/centos7.cfg
sed -i 's/ext4/xfs/;s/--size=200/--size=500/' /pxe/ks/centos7.cfg
sed -i '$a\%addon com_redhat_kdump --disable --reserve-mb='auto'\n%end' /pxe/ks/centos7.cfg echo "ks file is ready!"
echo "Installation is complete!!!"
一键部署pxe环境的更多相关文章
- 阿里云linux centos 一键部署web环境--图文详解
一.购买阿里云服务器ECS 1,登录阿里云,选择阿里云服务器ECS 2,创建实例 或 3,选好配置 4,完成配置 注:记住用户名和密码 二.一键配置linux环境 1,下载xshell,安装成功后,建 ...
- CentOS6.5 一键部署运行环境shell脚本
################################################## # CentOS6.5 ...
- 使用vagrant一键部署本地php开发环境(一)
一:我们为什么需要用这玩意 我们在开发中经常会面临的问题:环境不一致,有人用Mac有人用Windos还有几个用linux的,而我们的服务器都是linux. 在我本地是可以的啊,我测了都,没有问题 ...
- 【转载】Centos系统快速部署LNMP环境
PHP语言在Linux系统上运行的时候,需要在Linux系统上部署相应的Nginx.MySQL.PHP等环境,只有将这些环境参数都设置好,PHP相关应用程序才可正常运行,部署环境的方法有很多种,可手动 ...
- 一键部署 Docker Datacenter ---简化docker数据中心安装步骤
DDC 简介 2016年2月下旬,Docker发布了企业级容器管理和服务部署的整体解决方案平台-Docker Datacenter,简称DDC.DDC 有三个组件构成:1. Docker Univer ...
- Jenkins实现测试环境到生产环境一键部署(Windows)
前言: 因为dotnet在发布站点后,然后再上传服务时,会因为各种的网速问题,导致站点瞬间挂掉!那么通过一键部署,先在测试站点测试好的文件,复制到正式站点上的一个缓冲区,进行预热配置,之后再本机进行文 ...
- Tomcat热部署:Maven项目一键部署到Tomcat服务器 - 支持多环境
参考:Eclipse中的Maven项目一键部署到Tomcat服务器 - 支持多环境部署 命令 debug模式设置关联源码 eclipse --> 项目右键 --> Debug As --& ...
- Centos 环境一键部署脚本(shell脚本)
谨以此文纪念吊炸天的Centos环境一键部署方案的新鲜出炉 辛苦大半年,产品准备上线了,BOSS亲自体验安装部署,看着超过200+页的安装文档直接崩溃了(需要部署23个基础服务),经历了超过3个小时的 ...
- .NET持续集成与自动化部署之路第三篇——测试环境到生产环境的一键部署策略(Windows)
Jenkins测试环境到生产环境的一键部署策略(Windows) 一.前言 前面我们已经初步实现了开发集成环境.测试环境的持续集成(自动化构建.自动化测试.自动化部署).但生产环境自动化部署迟 ...
随机推荐
- mybatis异常:Invalid bound statement (not found): com.mybatis01.dao.UserDao.select_Map;Could not find result map com.mybatis01.dao.UserDao.User
错误原因:查询结果类型错误 查询结果应该是User实体类 在光标指的地方应该为ResultType,而不是ResultMap.
- Vertical-Align你应该知道的一切
好,我们聊聊vertical-align.这个属性主要目的用于将相邻的文本与元素对齐.而实际上,verticle-algin可以在不同上下文中灵活地对齐元素,以及进行细粒度的控制,不必知道元素的大小. ...
- react系列(一)JSX语法、组件概念、生命周期介绍
JSX React中,推出了一种新的语法取名为JSX,它给了JS中写HTML标签的能力,不需要加引号.JSX的语法看起来是一种模板,然而它在编译以后,会转成JS语法,只是书写过程中的语法糖. JSX的 ...
- df du sync
df命令用来检查linux系统的磁盘空间占用情况 df [选项] -h:以容易理解的格式输出文件系统分区占用情况,如32KB,120MB,60GB -k:以KB大小单位输出文件系统分区占用情况 -m: ...
- postman中 form-data、x-www-form-urlencoded、raw、binary的区别【转】
链接:https://blog.csdn.net/wangjun5159/article/details/47781443 1.form-data: 就是http请求中的multipart/form- ...
- Spring的扩展
Spring中引用属性文件 JNDI数据源 Spring中Bean的作用域 Spring自动装配 缺点
- 高并发下,HashMap会产生哪些问题?
HashMap在高并发环境下会产生的问题 HashMap其实并不是线程安全的,在高并发的情况下,会产生并发引起的问题: 比如: HashMap死循环,造成CPU100%负载 触发fail-fast 下 ...
- 详解PreparedStatement
详解PreparedStatement /** * PrepareStatement 测试插入数据库 */ /** * 如果使用Statement,那么就必须在SQL语句中,实际地去嵌入值,比如之前的 ...
- STM32F407+STemwin学习笔记之STemwin移植
原文链接:http://www.cnblogs.com/NickQ/p/8748011.html 环境:keil5.20 STM32F407ZGT6 LCD(320*240) STemwin:S ...
- notpad++ 搭配 gcc
notpad++ 搭配 gcc GCC 是 GNU 编译器套装的简称(GNU Compiler Collection),一套编程语言编译器,以 GPL 及 LGPL 许可证所发行的自由软件,也是 GN ...