linux系统PXE+Kickstart自动安装系统
一、PXE
PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端基本软件设置,从而引导预先安装在服务器中的终端操作系统。
二、PXE工作流程
①PXE Client从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;
②DHCP服务器返回分配给客户机的IP以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上);
③PXE Client向本网络中的TFTP服务器索取pxelinux.0文件;
④PXE Client取得pxelinux.0文件后执行该文件;
⑤根据pxelinux.0的执行结果,通过TFTP服务器加载内核和文件系统;
⑥进入安装画面,此时可以通过选择HTTP、FTP、NFS方式之一进行安装;
示意图:
三、Kickstart
Kickstart是一种无人值守的安装方式,它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,就需要安装者手工干预。因此,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么就可以实现完全自动安装了。
四、演练测试
演练环境
VMware Workstation 12
CentOS 6.5
LAN区段 #注:关闭VM网络的DHCP功能,会有影响
DHCP/TFTP/NFS IP:192.168.157.129
Iptables & SElinux off
预备
1、配置YUM源(本演练使用系统镜像做YUM仓)
① 挂载光盘
[root]# mount /dev/cdrom /mnt
[root]# echo ‘/dev/cdrom /mnt iso9660 defaults 0 0’ >> /etc/fstab ##开机自动挂载
② 配置YUM
[root]# cat /etc/yum.repos.d/iso.repo
[iso]
name=iso
baseurl=file:///mnt
enabled=1
gpgcheck=0
2、配置DHCP
①安装
[root]# yum –y install dhcp
②修改配置文件(注意分号等格式问题)
[root]# cat /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
filename "pxelinux.0";
next-server 192.168.157.129; #TFTP Server的IP地址
subnet 192.168.157.0 netmask 255.255.255.0 { #所属网段掩码
option routers 192.168.157.2; #路由器IP,可写网管IP
option subnet-mask 255.255.255.0;
range 192.168.157.200 192.168.157.230; #IP地址池
default-lease-time 21600;
max-lease-time 43200;
}
③启动DHCP服务
[root]# /etc/init.d/dhcpd start
[root]# chkconfig dhcpd on
3、配置NFS Server共享文件
①安装NFS Server
[root]# yum –y install nfs-utils
②创建共享目录,存放镜像文件
[root]# mkdir /dvd
[root]# cp –r /mnt/* /dvd
[root]# cat /etc/exports #共享目录
/dvd *(rw)
③启动NFS服务,检查文件共享
[root]# /etc/init.d/rpcbind start #要先启动rpcbind否则会有异常,详因可查阅NFS工作原理
[root]# /etc/init.d/nfs start
[root]# showmount –e
Export list for example.com
/dvd *
4、配置TFTP服务器
①安装
[root]# yum –y install tftp-server
②修改配置文件
[root]# vim /etc/xinetd.d/tftp
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
per_source = 11
cps = 100 2
flags = IPv4
}
③启动服务
[root]# /etc/init.d/xinetd start
[root]# chkconfig xinetd on
5、配置PXE启动所需要的文件
①安装syslinux
[root]# yum –y install syslinux
注:syslinux是一个功能强大的引导加载程序,而且兼容各种介质。Syslinux是一个小型的linux操作系统,它的目的是简化首次安装linux的时间,并建立修护后其他特殊用途的启动盘。
③ 拷贝相关文件到/var/lib/tftpboot/下
[root]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/
[root]# cp /dvd/images/pxeboot/initrd.img /var/lib/tftpboot/
[root]# cp /dvd/images/pxeboot/vmlinuz /var/lib/tftpboot/
[root]# cp /dvd/isolinux/*.msg /var/lib/tftpboot/
④ 创建及配置相关文件
[root]# mkdir -p /var/lib/tftpboot/pxelinux.cfg
[root]# cp /dvd/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default
[root]# chmod u+w /var/lib/tftpboot/pxelinux.cfg/default
[root]# vim /var/lib/tftpboot/pxelinux.cfg/default
default ks
prompt 1
timeout 6
display boot.msg
F1 boot.msg
F2 options.msg
F3 general.msg
F4 param.msg
F5 rescue.msg
label linux
kernel vmlinuz
append initrd=initrd.img
label text
kernel vmlinuz
append initrd=initrd.img text
label ks
kernel vmlinuz
append ks=nfs:192.168.157.129:/dvd/ks.cfg initrd=initrd.img
label local
localboot 1
label memtest86
kernel memtest
append -
6、生成ks.cfg文件
ks.cfg是kickstart安装配置文件,系统就是安装ks.cfg来安装。
①安装kickstart
[root]# yum –y install system-config-kickstart
②启动图形化kickstart生成ks.cfg
[root]# system-config-kickstart
保存在/root/下,同目录下还有个anaconda-ks.cfg文件,将此文件中软件安装脚本拷贝到ks.cfg中(即%packages到%end)
最后将ks.cfg文件拷贝到共享目录下即可/dvd
下面就可以开启一台虚拟机安装验证配置了
linux系统PXE+Kickstart自动安装系统的更多相关文章
- CentOS 7.2 下 PXE+kickstart 自动安装系统
一.简单概述 1.1 Kickstart 概述 对于网络安装系统,在linux 下面最熟悉的应该就是 Kickstart 以及 cobbler.写这篇文章的目的在于我公司目前使用的就是 Kicksta ...
- 使用PXE+Kickstart无人值守安装系统
PXE预启动执行环境(即Preboot execute environment) 是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用,用于在无人值守安装系统服务中引导客户机安装服 ...
- centos7/rhel7下配置PXE+Kickstart自动安装linux系统
应用场景:临时安装一个系统或者批量安装linux系统,无需人工介入选择下一步,减少在安装系统上的时间浪费,提高工作效率. DHCP + TFTP + Syslinux + FTP + Kickstar ...
- PXE+Kickstart无人值守安装系统re
PXE(Preboot Excute Environment)预启动执行环境,可以让计算机通过网络启动系统,主要用于无人值守安装系统中引导客户端主机安装Linux操作系统. 由于之前有过使用cobbl ...
- Linux部署之批量自动安装系统之Kickstart篇
1. 安装 2. 在桌面环境下啊配置 3. Kickstart之基本配置 4. Kickstart之安装方法 5. ...
- PXE+kickstart自动安装ubuntu14.04
本文参考了诸多文章,先感谢这些文章的作者. 使用pxe安装系统需要安装dhcp,tftp,http等服务(当然也可以使用其他文件共享方式比如nfs,ftp). 实验环境: 1. vmware 12 2 ...
- PXE+Kickstart 自动安装CentOS系统
PXE (preboot execcute environment) 依赖服务 dhcp tftp file server (yum repository) 准备TFTP服务器 如何配置TFTP服务 ...
- CentOS7.2下PXE+kickstart自动化安装系统
一.实验环境 操作系统:CentOS Linux release 7.2.1511 (Core) 网卡地址:192.168.100.147/24 光盘镜像:CentOS-7-x86_64-Minima ...
- Linux部署之批量自动安装系统之测试篇
1. 客户端从网络启动如下 2. 复制vesamenu.c32文件可解决上面的问题 3. 客户端再次启动 4. 选择第一个进 ...
随机推荐
- laravel/lumen 单元测试
Testing Introduction Application Testing Interacting With Your Application Testing JSON APIs Session ...
- Intellij IDEA +MAVEN+Jetty实现Mybatis的HelloWorld
1 maven配置:pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="ht ...
- 解决Shiro注解无效的问题
当Shiro集成到Spring mvc中,却发现shiro的权限注解不起作用,官方的配置是要支持注解,只需要将以下代码加到spring 配置文件中即可: <bean class="or ...
- 消息摘要算法-MAC算法系列
一.简述 mac(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥.因此MAC算法也经常被称作HMA ...
- Eclipse IDE for Java EE Developers 与 Eclipse Classic(Eclipse Standard)区别
Eclipse下载官网:http://www.eclipse.org/downloads/ 版本: 1.Eclipse classic(Eclipse Standard):Eclipse的标准版; 2 ...
- JVM体系结构与工作方式
JVM全程是java virtual machine(java虚拟机). 以计算为中心来看计算机的体系结构可以分为以下几个部分: 1.指令集:这个计算机所能识别的机器语言的命令集合; 2.计算单元:能 ...
- 设置树莓派3 B+的静态IP
修改/etc/dhcpcd.conf 文件 sudo vim /etc/dhcpcd.conf interface eth0 static ip_address= static routers=192 ...
- jquery 获取元素在浏览器中的绝对位置
代码详解 1,获取对象(自定义调整打开新窗口参照元素) var obj = $("#oButton"); 实例中我获取的对象是弹出窗口按钮,这样创建的新窗口就会根椐按钮的位置进行调 ...
- linux备份mysq脚本
filename=`date +%Y%m%d_%H%M%S`database=finebwservername=officialcreatefilename=${servername}_${datab ...
- mint安装相关数据库lib
sudo apt-get install libmysqlclient-dev sudo apt-get install sqlite3 libsqlite3-dev