pxe+kickstart自动化批量安装系统详解-技术流ken
前言
pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用。
系统环境准备
系统版本:CentOS release 6.7 (Final)
内网IP:192.168.232.8/24 #用来对内通信,提供pxe+kickstart服务
外网IP:10.220.5.166/24 #连接外网
关闭安全服务
[root@ken ~]# cat /etc/redhat-release #检查系统版本
CentOS release 6.7 (Final)
[root@ken ~]# service iptables stop #关闭防火墙
[root@ken ~]# setenforce #关闭selinux
下载所需程序
[root@localhost ~]# yum install syslinux dhcp tftp-server xinetd httpd -y
配置dhcp
[root@ken ~]# vim /etc/dhcp/dhcpd.conf
subnet 192.168.232.0 netmask 255.255.255.0 {
range 192.168.232.10 192.168.232.20;
option domain-name-servers 8.8.8.8;
option routers 192.168.232.8;
default-lease-time ;
max-lease-time ;
next-server 192.168.232.8;
filename "pxelinux.0";
}
[root@ken ~]# service dhcpd restart #重启dhcpd服务,使之配置生效
Starting dhcpd: [ OK ]
配置tftp
[root@ken ~]# vim /etc/xinetd.d/tftp # default: off
# description: The tftp server serves files using the trivial file transfer \
# protocol. The tftp protocol is often used to boot diskless \
# workstations, download configuration files to network-aware printers, \
# and to start the installation process for some operating systems.
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no #把yes修改为no,即启动tftp服务
per_source =
cps =
flags = IPv4
}
[root@ken ~]# service xinetd restart #重启xinetd,使之配置生效
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ] [root@ken ~]# chkconfig xinetd on #把xinetd加入系统启动项,实现开机自动启动
[root@ken ~]# chkconfig --list | grep tftp #检查确认tftp是否已经成功开启
tftp: on
复制开机文件到/var/lib/tftpboot
挂载光盘
[root@localhost ~]# mount /dev/cdrom /mnt
进入到tftp的主目录下
[root@localhost ~]# cd /var/lib/tftpboot/
复制images下的虚根文件及内核文件
[root@localhost tftpboot]# cp /mnt/images/pxeboot/vmlinuz ./
[root@localhost tftpboot]# cp /mnt/images/pxeboot/initrd.img ./
复制isolinux下面开机所需的文件
[root@localhost tftpboot]# cp /mnt/isolinux/boot.msg ./
[root@localhost tftpboot]# cp /mnt/isolinux/vesamenu.c32 ./
[root@localhost tftpboot]# cp /mnt/isolinux/splash.jpg ./
创建目录pxelinux.cfg
[root@localhost tftpboot]# mkdir pxelinux.cfg
复制pxelinux.cfg到刚创建的目录之下并改名为default
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# cp /mnt/isolinux/isolinux.cfg ./default
配置default文件
default linux #更改为linux
#prompt
timeout 10 #时间改短 display boot.msg menu background splash.jpg
menu title Welcome to CentOS 6.7!
default linux
#prompt
timeout display boot.msg menu background splash.jpg
menu title Welcome to CentOS 6.7!
menu color border #ffffffff #
menu color sel #ffffffff #ff000000
menu color title #ffffffff #
menu color tabmsg #ffffffff #
menu color unsel #ffffffff #
menu color hotsel #ff000000 #ffffffff
menu color hotkey #ffffffff #ff000000
menu color scrollbar #ffffffff # label linux
menu label ^Install or upgrade an existing system
menu default
kernel vmlinuz
append initrd=initrd.img ks=http://192.168.232.8/ks/ks6.cfg #指定ks文件位置
label vesa
menu label Install system with ^basic video driver
kernel vmlinuz
append initrd=initrd.img nomodeset
label rescue
menu label ^Rescue installed system
kernel vmlinuz
append initrd=initrd.img rescue
label local
menu label Boot from ^local drive
localboot 0xffff
label memtest86
menu label ^Memory test
kernel memtest
append -
复制syslinux提供的pxelinux.0文件到该目录下
[root@localhost pxelinux.cfg]# cd ..
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux. ./
查看该目录下文件,总共有7个文件和目录
[root@localhost tftpboot]# ls
boot.msg initrd.img pxelinux. pxelinux.cfg splash.jpg vesamenu.c32 vmlinuz
[root@localhost tftpboot]# ls |wc -l
把光盘挂载到httpd的网站根目录之下
[root@localhost tftpboot]# cd /var/www/html/
[root@localhost html]# mkdir installtree
[root@localhost html]# mount /dev/cdrom /var/www/html/installtree/
把ks文件复制到网站根目录之下
[root@localhost html]# mkdir ks
[root@localhost ks]# ls
ks6.cfg
[root@localhost ks]# chmod +r ks6.cfg #对ks文件添加读权限
配置ks文件
# Kickstart file automatically generated by anaconda. #version=DEVEL
install
url --url=http://192.168.232.8/installtree
lang en_US.UTF-
keyboard us
network --onboot yes --device eth0 --bootproto dhcp --noipv6
rootpw o #新装机密码为o
reboot
firewall --service=ssh
authconfig --enableshadow --passalgo=sha512
selinux --disabled
timezone --utc Asia/Shanghai
bootloader --location=mbr --driveorder=sda --append="crashkernel=auto rhgb quiet"
# The following is the partition information you requested
# Note that any partitions you deleted are not expressed
# here so unless you clear all partitions first, this is
# not guaranteed to work
clearpart --all
zerombr
part /boot --fstype=ext4 --size=
part pv. --grow --size=
volgroup VolGroup --pesize= pv.
logvol / --fstype=ext4 --name=lv_root --vgname=VolGroup --grow --size= --maxsize=
logvol swap --name=lv_swap --vgname=VolGroup --grow --size= --maxsize= repo --name="CentOS" --baseurl=http://192.168.232.8/installtree --cost=100 %packages
@core
@server-policy
@workstation-policy
%end
重启各项服务
[root@localhost ks]# service httpd restart
[root@localhost ks]# service xinetd restart
[root@localhost ks]# service dhcpd restart
开启新的虚拟机进行测试
新的虚拟机需要和服务器在同一个虚拟网络。

开始安装软件包 
安装完成

pxe+kickstart自动化批量安装系统详解-技术流ken的更多相关文章
- 实战!基于lamp安装wordpress详解-技术流ken
简介 LAMP 是Linux Apache MySQL PHP的简写,其实就是把Apache, MySQL以及PHP安装在Linux系统上,组成一个环境来运行动态的脚本文件.现在基于lamp搭建wor ...
- cobbler批量安装系统使用详解-技术流ken
前言 cobbler是一个可以实现批量安装系统的Linux应用程序.它有别于pxe+kickstart,cobbler可以实现同个服务器批量安装不同操作系统版本. 系统环境准备及其下载cobbler ...
- 【Linux】使用 PXE+Kickstart 无人值守批量安装系统
一.PXE背景知识 通过 PXE+DHCP+TFTP+VSftpd+Kickstart 服务程序搭建出无人值守安装系统,从而批量部署客户机系统. PXE(Preboot eXecute Environ ...
- KVM虚拟化使用详解--技术流ken
KVM介绍 Kernel-based Virtual Machine的简称,是一个开源的系统虚拟化模块,自Linux 2.6.20之后集成在Linux的各个主要发行版本中. KVM的虚拟化需要硬件支持 ...
- MySQL系列详解三:MySQL中各类日志详解-技术流ken
前言 日志文件记录了MySQL数据库的各种类型的活动,MySQL数据库中常见的日志文件有 查询日志,慢查询日志,错误日志,二进制日志,中继日志 .下面分别对他们进行介绍. 查询日志 1.查看查询日志变 ...
- iptables实战案例详解-技术流ken
简介 关于iptables的介绍网上有很多的资料,大家可以自己找一些关于iptables的工作原理,以及四表五链的简介,对于学习iptables将会事半功倍.本博文将会例举几个工作中常用的iptabl ...
- grafana使用详解--技术流ken
grafana简介 Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知.它主要有以下六大特点: 1.展示方式:快速灵活的客户端图表,面板插件有 ...
- systemd服务详解-技术流ken
简介 在centos5中生成和管理用户空间中的进程以及完成系统的初始化使用的是init,并且是依次启动.在centos6中则是使用的upstart,在一定程度上实现了并行启动,但是仍然存在依赖关系,到 ...
- linux四剑客-grep/find/sed/awk/详解-技术流ken
四剑客简介 相信接触过linux的大家应该都学过或者听过四剑客,即sed,grep,find,awk,有人对其望而生畏,有人对其爱不释手.参数太多,变化形式太多,使用超级灵活,让一部分人难以适从继而望 ...
随机推荐
- Exp 8 Web基础
Exp 8 Web基础 20154305 齐帅 一.实践要求: (1).Web前端HTML 能正常安装.启停Apache.理解HTML,理解表单,理解GET与POST方法,编写一个含有表单的HTML. ...
- [f]聊天的时间格式化
代码如下: 参数: t: 时间戳, type:返回格式(1:IM界面,其他:会话列表) function formartTime(t, type) { var oldtime = new Date(t ...
- jQuery的基本选择器
<script type="text/javascript"> //演示jQuery的基本选择器 $(function () { //通过ID var obj1 = $ ...
- 关于select的使用感受~大坑~select不能添加点击事件触发~
这是一个坑,把我摔惨了! select+option是浏览器自带的下拉选项框,样式及其丑,还好现在有很多框架都相应做了些美化,select 元素是一种表单控件,可用于在表单中接受用户输入. 还有一个重 ...
- Java学习之JDBC 2019/3/10
Java学习之JDBC 大部分的程序都是用来通过处理数据来达到人们预期的效果,数据是粮食,没有数据操作的程序就像helloworld程序一样没有用处.因此数据库操作是重中之重,是程序发挥功能的基石,j ...
- shell指令(一)
ubuntu桌面窗口下进入shell窗口:Ctrl + Alt + F2~F6: 退出shell窗口:Ctrl + Alt + F7:从UI中进入UI命令窗口,Ctrl + Alt +T shell ...
- Python学习笔记-基础2
1.列表list 列表是最常用的Python数据类型,它可以作为一个方括号内的逗号分隔值出现. 1.定义列表 names = ["Ronaldo","Messi" ...
- iOS开发之Alamofire源码解析
今天博客中的Alamofire源码的版本是以3.4版本为例.上篇博客系统的对NSURLSession相关的东西进行了详细的解析,详情请看<详解NSURLSession>,为了就是给本篇博客 ...
- Spark机器学习解析下集
上次我们讲过<Spark机器学习(上)>,本文是Spark机器学习的下部分,请点击回顾上部分,再更好地理解本文. 1.机器学习的常见算法 常见的机器学习算法有:l 构造条件概率:回归分 ...
- 两张图彻底搞懂MyBatis的Mapper原理!
作者:肥朝 简单使用 这是一个简单的Mybatis保存对象的例子 1@Test 2public void testSave() throws Exception { 3 //创建sessionFact ...