用系统为centos6的主机,搭建PXE服务器,实现批量安装centos6,7系统
1. iptables -F
setenforce 0 临时关掉selinux,清掉防火墙
永久生效更改配置文件:vim /etc/sysconfig/selinux
chkconfig iptables off
2. yum -y install httpd dhcp tftp-server
安装http服务用于构建镜像文件的yum仓库
安装dhcp服务,搭建dhcp服务器,为客户端分配ip地址
安装tftp服务,搭建tftp服务器,准备系统启动的引导文件,如pxelinux.0 menu32 内核以及,磁盘映像文件
3. 构建yum仓库
service httpd start 开启http服务
ss -tnlp |grep -w 80 查看80服务的端口是否打开
echo 'test' > /var/www/html/index.html 用浏览器打开httpd服务器的ip地址,测试能否打开
mkdir -p /var/www/html/centos/7/os/x86_64
mkdir -p /var/www/html/centos/6/os/x86_64
该虚拟机可以添加两个光盘驱动,分别将对应的镜像文件,一一挂载到上面两个相对应的目录
mount /dev/sr0 /var/www/html/centos/7/os/x86_64
mount /dev/sr1 /var/www/html/centos/7/os/x86_64
到此,镜像文件的yum仓库已经构建好了,可以打开网页,测试一下。
http://192.168.190.146/centos/6/os/x86_64/
http://192.168.190.146/centos/7/os/x86_64/6
生产环境中,http服务器要保证有足够的容量存放,镜像文件,或者创建软连接到存储上。
4. 准备ks引导文件
在6上面使用服务器(安装了图形化),使用system-config-kickstart 命令可以编辑ks文件,设定分区大小,密码,要安装的包组,初始化环境脚本,等等最后保存为ks6.cfg文件。
同理,在7的服务器上面使用同样的命令制作ks.cfg文件。在编辑时,无法选择rpm包组,解决方法为:将本机的本地仓库文件名,即【base】更改为 【development】后,再次执行 system-config-kickstart 即可 ksvalidator ks7.cfg 检查ks文件的语法
将准备好的ks文件,放到pxe服务器的/var/www/html/,下面
5. 搭建tftp服务器
tftp 为非独立服务,centos6上面由Xinetd服务监听端口69 centos7上面由systemd监听
service xinetd start
chkconfig tftp on 开启tftp服务
ss -unlp |grep -w 69 查看69端口是否开启
7. 准备系统引导文件
一般的系统引导文件放在tftp服务器的工作目录 /var/lib/tftpboot/
[root@centos6 tftpboot]#tree
.
├── kernel6
│ ├── initrd.img
│ └── vmlinuz
├── kernel7
│ ├── initrd.img
│ └── vmlinuz
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
└── default
准备好相应的启动文件。
cp /var/www/html/centos/7/os/x86_64/isolinux/initrd.img .
cp /var/www/html/centos/7/os/x86_64/isolinux/vmlinuz .
cp /var/www/html/centos/6/os/x86_64/isolinux/{initrd.img,vmlinuz} .
rpm -ql syslinux 查找引导文件,没有需要安装 syslinux
pxelinux.0 menu32 两个文件复制到工作目录下
mkdir pxelinux.cfg
复制光盘镜像里面的isolinux.cfg 重命名为default文件
编辑default文件
default menu.c32
timeout 600label local
menu label Boot from ^local drive
menu default
localboot 0xffff
menu title http://192/168.190.146/
label linux
menu label ^AutoInstall CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.img ks=http://192.168.190.146/ksdir/ks7.cfglabel manual
menu label ^Manual install CentOS 7
kernel kernel7/vmlinuz
append initrd=kernel7/initrd.imginst.repo=http://192.168.190.146/centos/7/os/x86_64/
label linux
menu label ^AutoInstall CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img ks=http://192.168.190.146/ksdir/ks6.cfg
label manual
menu label ^Manual install CentOS 6
kernel kernel6/vmlinuz
append initrd=kernel6/initrd.img
repo=http://192.168.190.146/centos/6/os/x86_64/
7. 搭建dhcp服务器
首先要配置dhcp服务的配置文件,否则启动dhcp服务会失败
vim /etc/dhcp/dhcpd.conf
cp /usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf
直接用dhcp的模板配置文件覆盖原来的配置文件,在基础上进行修改
vim /etc/dhcp/dhcpd.conf

service dhcpd start 开启dhcp服务
ss -unlp |grep dhcpd 查看dhcp服务端的端口67 是否开启
到此,dhcp服务器已搭建完毕
8.新建一个虚拟机,添加仅主机模式的网卡(和服务器一定要在同一个网络)。进行测试,效果如下:
用系统为centos6的主机,搭建PXE服务器,实现批量安装centos6,7系统的更多相关文章
- Centos6.8下搭建SVN服务器
1.Centos6.8下搭建SVN服务器 Subversion是一个自由,开源的版本控制系统.Subversion将文件存放在中心版本库里.这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一 ...
- Cobbler全自动批量安装部署Linux系统
说明: Cobbler服务器系统:CentOS 5.10 64位 IP地址:192.168.21.128 需要安装部署的Linux系统: eth0(第一块网卡,用于外网)IP地址段:192.168.2 ...
- [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!
最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统免责声明一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任.二.本文档只是个人使用本文 ...
- 【Linux】使用 PXE+Kickstart 无人值守批量安装系统
一.PXE背景知识 通过 PXE+DHCP+TFTP+VSftpd+Kickstart 服务程序搭建出无人值守安装系统,从而批量部署客户机系统. PXE(Preboot eXecute Environ ...
- CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)
CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...
- [转]DNS服务器原理详解与Centos6.x下搭建DNS服务器
转自:http://blog.it985.com/8958.html DNS 数据库的记录:正解,反解, Zone 的意义 通过DNS解析过程详解这篇文章,我们知道了要想访问www.zmit.cn,最 ...
- 利用云主机搭建MySQL服务器
前言:有了一台云服务器之后,就想着如何物尽其用.利用其不关机(意外除外)的特性,我们可以在服务器上安装数据库服务,实现云数据库服务器,这样就可以随时随地的访问数据库了,不再受各种限制. 这里以MySQ ...
- centos6环境下搭建irc服务器
问题描述 有时候逛技术社区,经常会发现有个叫IRC的东西存在,想搭建下看看到底是个什么东西 说明: 操作系统环境为CentOS6.5_64 安装irc服务器 通过yum进行安装,命令如下: yum i ...
- pxe+kickstart自动化批量安装系统详解-技术流ken
前言 pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用. 系统环境准备 系统版本:CentOS release 6.7 (Final) 内网 ...
随机推荐
- JaveScript基础(1)之变量和数据类型
1.JaveScript变量的定义方式: A:隐式定义:直接给变量赋值: temp='hello'; alert(temp); PS:使用变量前要先进行初始化工作,否则会报变量未被定义的错误; B:显 ...
- spring Cloud 域名映射 ip地址实现
spring.cloud.inetutils.preferredNetworks[0]=^192\.168 eureka.instance.prefer-ip-address=true
- SSM-Spring-15:Spring中名称自动代理生成器BeanNameAutoProxyCreator
------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 名称自动代理生成器:BeanNameAutoProxyCreator 为了更好的测试,我放了俩个接口,俩个实现 ...
- Linux共享库、静态库、动态库详解
1. 介绍 使用GNU的工具我们如何在Linux下创建自己的程序函数库?一个“程序函数库”简单的说就是一个文件包含了一些编译好的代码和数据,这些编译好的代码和数据可以在事后供其他的程序使用.程序函数库 ...
- 软件配置管理及SVN的使用
一.配置管理 1. 管理整个软件生命周期中的配置项 配置项:软件生命周期中产出的各种输出成果,如需求文档.设计文档.代码.测试相关文档 2.管理配置项的变化(核心) 3.使用配置管理 ...
- vue简介
vue的介绍 vue官网说:Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计. vue的优点 1.易用 ...
- Python分词模块推荐:jieba中文分词
一.结巴中文分词采用的算法 基于Trie树结构实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图(DAG)采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合对于未登录词,采 ...
- util.go 源码阅读
} h := md5.New() baseString, _ := json.Marshal(obj) h.Write([]byte(baseString)) ...
- Go的context的问题
Go的context的问题 2017-05-29 最近被由context引发的一个bug坑得不轻,所以反思一下Go的context的问题. context是隐式的约束,没有检测 如果我们写一个函数,比 ...
- bzoj 2242 [SDOI2011]计算器 快速幂+扩展欧几里得+BSGS
1:快速幂 2:exgcd 3:exbsgs,题里说是素数,但我打的普通bsgs就wa,exbsgs就A了...... (map就是慢)..... #include<cstdio> # ...