用系统为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) 内网 ...
随机推荐
- 虚拟机中克隆后使用eth0
1.修改主机名 vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=mini1 1.修改ip地址以及udev记录网络规则的脚本 在CentOS中,ude ...
- Selenium2Lib库之输入常用关键字实战
4.1 Input Text关键字 按F5 查看Input Text关键字的说明,如下图: Input Text 关键字用于向文本框输入内容,需要传2个参数(文本框的元素定位和输入的值). 项目例子: ...
- 如何查看chrome浏览器已保存的密码
该方法是针对在chrome中已经存储了登陆密码的情况. chrome版本是 66.0.3359.139(正式版本) (64 位),不知道哪天会改了这个bug. 一般来说,我们登陆chrome浏览器已经 ...
- JSON Patch
1.前言 可以这么说的是,任何一种非强制性约束同时也没有"标杆"工具支持的开发风格或协议(仅靠文档是远远不够的),最终的实现上都会被程序员冠上"务实"的名头,而 ...
- vue 路由嵌套高亮问题
正常路由嵌套是没有问题的,但是如果你已经在当前主路由页面了,然后再次点击主路由就会出现页面数据空白的情况 看代码: //主路由通过v-for循环出来 <div class="list- ...
- PAT1049:Counting Ones
1049. Counting Ones (30) 时间限制 100 ms 内存限制 65536 kB 代码长度限制 16000 B 判题程序 Standard 作者 CHEN, Yue The tas ...
- 文字分列 CSS属性
column 这里有一系列新的CSS属性,可以帮助你很轻松的实现文字的多列布局.让我们瞧瞧: .three-column { padding: 1em; -moz-column-count: 3; - ...
- jQuery学习之旅 Item6 好用的each()
1.javascript 函数的调用方式 首先来研究一下jquery的each()方法的源码,在这之前,先要回顾一下javascript函数具体调用样式: 普通函数调用 setName(); 可以作为 ...
- HTML5 CSS3 专题 : 拖放 (Drag and Drop)
转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/31413767 本来准备写一个支持多图片拖拽上传的例子,但是为了更好的理解,先介绍 ...
- MyEclipse代码提示设置
(一)普通代码提示 1. 打开MyEclipse ,然后"window"→"Preferences" 2. 选择"java",展开,&quo ...