一、原理和概念:

1、PXE:

        PXE 并不是一种安装方式,而是一种引导的方式。进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。

PXE (Pre-boot Execution Environment)协议使计算机可以通过网络启动。协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。

运行 PXE 协议需要设置 DHCP 服务器 和 TFTP 服务器。DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。此外,在 PXE client 的 ROM 中,已经存在了 TFTP Client。PXE Client 通过 TFTP 协议到 TFTP Server 上下载所需的文件。

2、KickStart:

KickStart是一种无人职守安装方式。KickStart的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg的文件;在其后的安装过程中(不只局限于生成KickStart安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。

这样,如果KickStart文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中设置的重启选项来重启系统,并结束安装。

3、TFTP:

TFTP (Trivial File Transfer Protocol),中译简单文件传输协议或小型文件传输协议. 大家一定记得在2003年8月12日全球爆发冲击波(Worm.Blaster)病毒,这种病毒会监听端口69,模拟出一个TFTP服务器,并启动一个攻 击传播线程,不断地随机生成攻击地址,进行入侵。另外tftp被认为是一种不安全的协议而将其关闭,同时也是防火墙打击的对象,这也是有道理的。tftp 在嵌入式linux还是有用武之地的。需要打开防火墙,允许tftp访问网络。

二、环境准备:

1、准备2台机器:

给server 设置一个和DHCP 定义相同网段的IP(如下),然后 client 端的网卡与server的PXE网卡在一个网段

[root@192 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a1:94:0e brd ff:ff:ff:ff:ff:ff
inet 192.168.210.134/ brd 192.168.210.255 scope global dynamic ens33
valid_lft 2583725sec preferred_lft 2583725sec
inet6 fe80::d116:fe9b:ab71:9dc0/64 scope link
valid_lft forever preferred_lft forever
3: ens37: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 00:0c:29:a1:94:18 brd ff:ff:ff:ff:ff:ff
inet 10.20.0.10/ brd 10.20.0.255 scope global ens37
valid_lft forever preferred_lft forever
inet6 fe80::bad0:8718:b91:3c7c/64 scope link
valid_lft forever preferred_lft forever

服务端:    IP:192.168.210.134                     网卡模式: ens33:192.168.210.134/24     ens37(PXE网卡): 10.20.0.10/24

客户端:    IP:10.20.0.11(随机获取  )        网卡模式: 与服务端的网卡 ens37 能联通

2、执行 PXE + KickStart安装所需服务:

• DHCP 服务器用来给客户机分配IP;

• TFTP 服务器用来存放PXE的相关文件,比如:系统引导文件;

• FTP 服务器用来存放系统安装文件;

• KickStart 所生成的ks.cfg配置文件;

• 带有一个 PXE 支持网卡的将安装的主机;

三、实施过程:

1、搭建本地yum光盘源:(如果配置了网络yum,这一步可以忽略)

1.1、/etc/yum.repos.d目录下创建一个以.repo结尾的文件:

 [root@ ~]# mount /dev/sr0 /mnt/

1.2、在/etc/yum.repos.d目录下,建立一个old目录,将原有网络源移到old目录下:

[root@192 ~]# cd /etc/yum.repos.d/
[root@192 yum.repos.d]# ls
old

1.3、创建一个以.repo结尾的文件:

[root@ ~]# vim /etc/yum.repos.d/cdrom.repo
[cdrom]
name=
baseurl=file:///mnt
enabled=
gpgcheck=

1.4、为server端安装图形化软件包(不然在后期使用kickstart配置程序的时候显示为乱码):

yum groupinstall "带 GUI 的服务器" -y

2、安装FTP及TFTP服务:

2.1、安装 FTP 服务以及开启服务,设置为开机自动启动:

[root@192 ~]# yum install vsftpd -y
[root@192 ~]# systemctl start vsftpd
[root@192 ~]# systemctl enable vsftpd

2.2、安装 TFTP 服务:

[root@192 ~]# yum install tftp tftp-server xinetd -y

配置tftp服务器修改tftp配置文件,修改配置文件里面的13,14行,改成以下内容::

[root@ ~]# vim /etc/xinetd.d/tftp
server_args = -s /tftpboot
disable = no

server_args = -s /tftpboot  # 表示服务器默认的目录是 /tftpboot

其中,server_args = -s /tftpboot是tftp服务器运行时的参数。-s /tftpboot表示服务器默认的目录是 /tftpboot,当你执行put a.txt时,文件会被放到服务器的/tftpboot/a.txt,省去你敲put a /tftpboot/的麻烦。你也可以加其它服务器运行参数到这,具体可以执行man tftpd命令查阅。

-c  :上传文件时,服务器上没有。就自动创建这个文件。

默认tftp客户端,只能上传tftp服务器已经有的文件。也就是只能传上去并覆盖服务器上的原文件。如果想上传原来目录中没有的文件,需要修改tftp服务器的配置文件并重起服务。需要修改如下:

打开/etc/xinetd.d/tftp文件,在 server_args 增加-c参数,如下所示:

server_args = -s /tftpboot -c

接着启动xinetd服务,然后查看服务端口是否打开。

[root@192 ~]# systemctl start xinetd
[root@192 ~]# systemctl enable xinetd [root@192 ~]# lsof -i : #查看69端口正在被哪个进程使用
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
xinetd root 5u IPv4 0t0 UDP *:tftp

[root@192 ~]# netstat -antup | grep #这种方法,只能看到xinetd进程
udp 0.0.0.0: 0.0.0.0:* /xinetd

3、安装dhcp,修改配置文件:

3.1、安装dhcp服务:

[root@ ~]# yum install dhcp -y

3.2、配置dchp服务

[root@192 ~]# cp /usr/share/doc/dhcp-4.1./dhcpd.conf.sample /etc/dhcp/dhcpd.conf   #生成配置文件
[root@192 ~]# cp: overwrite `/etc/dhcp/dhcpd.conf'? y

给DHCP服务器添加一张网卡,ip设置为10.20.0.10(只要是1个网段都行)

[root@ ~]# ifconfig ens37 10.20.0.10/

编辑dhcp.conf文件

[root@ ~]#vi /etc/dhcp/dhcpd.conf  #将配置文件,改成如下内容:
subnet 10.20.0.0 netmask 255.255.255.0 {
range 10.20.0.100 10.20.0.200;
option domain-name-servers 10.20.0.1;
option domain-name "internal.example.org";
option routers 10.20.0.1;
option broadcast-address 10.20.0.255;
default-lease-time ;
max-lease-time ;
next-server 10.20.0.10;
filename "pxelinux.0";
}

配置完,先不启动DHCP ,等所有的软件安装好,最后来启动。

4、配置使用PXE启动所需的相关文件:

4.1、安装软件:

[root@192 ~]# yum -y install system-config-kickstart syslinux gdm

4.2、准备tftp需要共享出去的文件:

[root@192 ~]# umount /mnt/
[root@192 ~]# mount /dev/sr0 /var/ftp/pub/
[root@192 ~]# mkdir /tftpboot
[root@192 ~]# mkdir /tftpboot/pxelinux.cfg
[root@192 ~]# cp /usr/share/syslinux/pxelinux.0 /tftpboot/ #注,只有安装了system-config-kickstart软件包,才会有/usr/share/syslinux/目录及目录中的文件。
[root@192 ~]# cp /var/ftp/pub/images/pxeboot/initrd.img /tftpboot/
[root@192 ~]# cp /var/ftp/pub/images/pxeboot/vmlinuz /tftpboot/
[root@192 ~]# cp /var/ftp/pub/isolinux/isolinux.cfg /tftpboot/pxelinux.cfg/default
[root@192 ~]# chmod 644 /tftpboot/pxelinux.cfg/default

4.3、修改default,指定安装操作系统的方式和ks.cfg文件路径:

[root@192 ~]# vim /tftpboot/pxelinux.cfg/default
改:default
改为:default linux

#修改第1行,后面的linux意思是寻找下面61行的label linux 。如下:

然后修改下64行(即在后面添加inst.repo=ftp://10.20.0.10/pub inst.ks=ftp://10.20.0.10/ks.cfg)。第64行的意思是使安装程序通过FTP服务器访问kickstart文件。

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

其中第1行:default linux表示指定默认入口名称;

第2行:prompt 1中prompt用来设置是否等待用户选择,1表示等待用户控制;

第18、23、27、31行label linux表示定义的引导入口,表示系统的不同安装方式,如第18行定义的入口表示图形安装。

配置文件修改完了,要开始自动安装,安装程序必须能访问kickstart文件。

有多种方法可访问kickstart文件,其中最常用的一种方法是通过网络服务器进行,

例如:ftp服务器、WEB服务器或NFS服务器,这种方法非常易于部署,并且也使管理更改变得十分简单。也可以通过USB磁盘、CD-ROM或本地硬盘。如果USB或CD-ROM中的kickstart文件非常便于访问,只需将kickstart文件放置在用来开始安装的引导介质中。而使用DHCP服务器和TFTP及PXE配置起来更为复杂。

使安装程序指向kickstart文件的书写格式如下:

ks=ftp://server/dir/file 如:ks=ftp://ftp服务器IP/ks.cfg

ks=http://server/dir/file 如:ks=http://http服务器IP/ks.cfg

ks=nfs:server:/dir/file 如:ks=nfs:nfs服务器IP:/var/ftp/pub/ks.cfg

ks=hd:device:/dir/file 如:ks=hd:sdb1:/kickstar-files/ks.cfg

ks=cdrom:/dir/file 如:ks=cdrom:/kickstart-files/ks.cfg

以上有关default配置文件的修改就是通过ftp服务器方式来访问kickstart文件。

5、制作kickstart的无人值守安装文件:

5.1、在创建配置文件之前,我们需要更改下yum源为本地源,否则下面在选择软件包安装这一步不能选择,提示被禁止

[root@ yum.repos.d]# vim cdrom.repo
[development]
name=
baseurl=file:///var/ftp/pub
enabled=
gpgcheck=
[root@192 yum.repos.d]# yum clean all
[root@192 yum.repos.d]# yum makecache

5.2、安装system-config-kickstart软件包后,启动kickstart配置界面:

 [root@192 ~]# system-config-kickstart  #执行system-config-kickstart弹出来界面。

设置后期无人执守安装需要配置的参数:

注意:用xshell远程连接,执行上面的命令可能无法弹出选择框,需要这样解决:

1. 在Xstart 里执行:

5.3、我们设置下默认安装的语言,时区,根口令,然后勾选下面的安装后重新引导。然后选择安装方法

5.4、我们配置ftp服务器的安装方法。选择执行新安装。然后点击引导装载程序选项

5.5、配置grub相关选项

5.6、设置分区大小,注意有多块硬盘的时候要选择sda

5.7、配置网络,默认没有网络设置(可以不设置),点击添加网络,设备名称为eth0,网络类型为dhcp

5.8、验证,默认就可以了

5.9、防火墙和selinux根据自己需求选择开启或者禁用。我选择关闭selinux。启用防火墙

5.10、安装图形环境

5.11、自定义软件包。默认可能没有勾选桌面。根据自己需求勾选。 我们为了快速度演示安装,不选择安装桌面。

5.12、安装脚本:在"预安装脚本","安装后脚本"对话框中,可以分别添加在安装前、安装后自动动行的可执行语句。此项设置可以使服务器自动化配置变得更加容易。

例如:配置客户机在完成安装后自动设置YUM仓库。

写入以下脚本内容:

rm -rf /etc/yum.repos.d/*
echo '[rhel-source]
name=Red Hat Enterprise Linux $releasever - $basearch - Source
baseurl=file:///mnt/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release' > /etc/yum.repos.d/rhel6.repo

5.13、到此所有关于安装的配置已经配置完毕,保存:

点击左上角的文件选择保存,选择下保存的路径

5.14、复制ks.cfg文件到/var/ftp目录下

[root@ ~]#cp /root/ks.cfg /var/ftp

注:ks.cfg就是无人值守安装时要用的Kickstart文件。
要对应:/tftpboot/pxelinux.cfg/default文件中设置过ks=ftp://10.20.0.10/ks.cfg

5.15、重启下FTP服务

[root@ ~]# systemctl restart vsftpd

建议关闭防火墙和selinux,

如果没有关闭的话,tftp服务会有问题。

[root@xuegod63 ~]# getenforce

Disabled

设置防火墙:

#iptables -F

#service iptables save

5.16、启动 dhcp 服务,设置为开机启动

[root@ ~]# systemctl start dhcpd
[root@ ~]# systemctl enable dhcpd
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
[root@ ~]#

5.17、修改client的BIOS启动顺序为网络优先,加电后开始启动,然后就开始自动装机啦!!!

pxe+kickstart无人值守批量安装linux的更多相关文章

  1. 【Linux】使用 PXE+Kickstart 无人值守批量安装系统

    一.PXE背景知识 通过 PXE+DHCP+TFTP+VSftpd+Kickstart 服务程序搭建出无人值守安装系统,从而批量部署客户机系统. PXE(Preboot eXecute Environ ...

  2. pxe+kickstart实现无人值守批量安装linux

    pxe+kickstart实现无人值守批量安装linux 实验准备:主机myrhel2作为服务器端,新建一个没有安装操作系统的虚拟主机,而且其与服务器端在同一个网段 安装的条件: 服务器端:      ...

  3. (转)Cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  4. PXE实现无人值守批量安装服务器

    今天我们使用PXE+Kickstart+TFTP+DHCP+FTP实现无人值守安装服务器. 一.无人值守所需服务介绍: 1)PXE PXE,远程引导技术 功能:使计算机通过网络启动 硬件要求:客户端的 ...

  5. pxe+kickstart自动化批量安装系统详解-技术流ken

    前言 pxe+kickstart是一款可以实现自动化批量安装系统的服务,比较经典,下面将详细介绍此服务的安装和使用. 系统环境准备 系统版本:CentOS release 6.7 (Final) 内网 ...

  6. cobbler无人值守批量安装Linux系统

    本文目录: 1.1 pxe安装系统 1.2 cobbler基本介绍 1.3 安装和配置cobbler 1.3.1 安装cobbler 1.3.2 配置dhcp和tftp 1.4 cobbler从本地光 ...

  7. 《Linux就该这么学》培训笔记_ch19_使用PXE+Kickstart无人值守安装服务

    <Linux就该这么学>培训笔记_ch19_使用PXE+Kickstart无人值守安装服务 文章最后会post上书本的笔记照片. 文章主要内容: 无人值守系统 部署相关服务程序 配置DHC ...

  8. PXE+kickstart无人值守安装CentOS 7

    kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart无人值守安装CentOS ...

  9. (转)PXE+kickstart无人值守安装CentOS 7

    kickstart+cobbler系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 本文是PXE+kickstart无人值守安装CentOS ...

随机推荐

  1. 【Gin-API系列】Gin中间件之日志模块(四)

    日志是程序开发中必不可少的模块,同时也是日常运维定位故障的最重要环节之一.一般日志类的操作包括日志采集,日志查询,日志监控.日志统计等等.本文,我们将介绍日志模块在Gin中的使用. Golang如何打 ...

  2. 你真的会做 2 Sum 吗?| 含双重好礼

    小预告:文末有两份福利,记得看到最后哦- 2 Sum 这题是 Leetcode 的第一题,相信大部分小伙伴都听过的吧. 作为一道标着 Easy 难度的题,它真的这么简单吗? 我在之前的刷题视频里说过, ...

  3. leetcode刷题记录——哈希表

    1.两数之和 可以先对数组进行排序,然后使用双指针方法或者二分查找方法.这样做的时间复杂度为 O(NlogN),空间复杂度为 O(1). 用 HashMap 存储数组元素和索引的映射,在访问到 num ...

  4. java如何将char类型的数字转换成int型的数字,而不是Ascii

    如何把 char ‘3’ 转为 int 3, 大家应该知道,不能直接转化,那样得到是‘3’的Ascii. 如下面: public class Leet { public static void mai ...

  5. 12c RAC 用Rman 恢复到异机单实例

    准备工作 原服务器软件部署:Redhat 6.6 + Oracle 12.2.0.1 rac Oracle12c单实例安装 1.创建恢复服务器,设置大于原库数据大小的磁盘容量.设置相同的服务器主机名参 ...

  6. PowerDesigner 使用笔记

    1.将mysql数据结构导入到PowerDesigner https://blog.csdn.net/guochanof/article/details/81905616 2.设计数据库过程 http ...

  7. Alpha阶段项目复审(鸽牌开发小分队)

    团队:鸽牌开发专业小分队 项目:必备记 集合帖:集合帖 项目复审: 团队名字 项目链接 优点 缺点和bug报告 最终名次 歪瑞古德小队 海岛漂流 1.功能齐全,上手简单2.界面简洁美观3.想法新颖,可 ...

  8. 微众银行FATE联邦学习框架

    参考:https://github.com/webankfintech/fate https://www.fedai.org/#/ 一.Docker Standalone 安装 FATE $ sh b ...

  9. WPF Devexpress 控件库中ChartControl 实现股票分时走势图

    概要 从事金融行业开发 ,会接触些图表控件,这里我分享一下自己基于DevExpress.Charts.v16.2开发的股票分时走势图的经验. 附上源码:点击跳转 如果需要讨论,Q群:580749909 ...

  10. 2020,最新Model的设计-APP重构之路

    很多的app使用MVC设计模式来将“用户交互”与“数据和逻辑”分开,而model其中一个重要作用就是持久化.下文中设计的Model可能不是一个完美的,扩展性强的model范例,但在我需要重构的app中 ...