PXE预启动执行环境(即Preboot execute environment)

是一种能够让计算机通过网络启动的引导方式,只要网卡支持PXE协议即可使用,用于在无人值守安装系统服务中引导客户机安装服务。Kickstart是一种无人值守的安装方式,工作原理就是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中出现需要填写参数时则自动匹配Kickstart生成的文件,所以只要Kickstart文件包含了安装过程中所有需要人工填写的参数,那么理论上来讲运维人员就完全不需要再进行手工操作,喝着咖啡等待系统安装完毕即可。

VirtualBox关闭DHCP功能。

准备一台服务器作为PXE服务器,并部属相关程序

1、安装所需的软件包

# yum install xinetd dhcp tftp-server httpd syslinux system-config-kickstart

2、配置:dhcp

DHCP动态主机地址管理服务程序用于为客户主机网卡分配可用的IP地址,这是服务端与客户端主机进行文件传输的基础。

# vi /etc/dhcp/dhcpd.conf

subnet 192.168.100.0  netmask 255.255.255.0 {
   range 192.168.100.50 192.168.100.60;
   option domain-name-servers 192.168.100.111;
   option domain-name "rusky.com";
   option routers 192.168.100.100;
   option broadcast-address 192.168.100.255;
   default-lease-time 3600;
   max-lease-time 7200;
   next-server   192.168.100.111; 
   filename      "/pxelinux.0";
}

#最后两行作用是让客户端主机网卡获取到IP地址后主动去到next-server服务器获取引导驱动文件pxelinux.0,自动进行下一步的安装过程。

[root@localhost ~]# systemctl restart dhcpd.service
[root@localhost ~]# netstat -antulp | grep dhcpd
udp        0      0 0.0.0.0:20108           0.0.0.0:*                           5195/dhcpd         
udp        0      0 0.0.0.0:67              0.0.0.0:*                           5195/dhcpd         
udp6       0      0 :::52427                :::*                                5195/dhcpd

3、配置TFTP

vsftpd是一款功能丰富的文件传输服务程序,需要用户使用匿名、本地甚至虚拟用户来进行访问验证,但当前的客户端主机连系统都没有安装,如何进行登录验证呢?而TFTP是一种基于UDP协议的简单文件传输协议,用户不需要进行验证即可获取到所需的文件资源,因此接下来配置TFTP服务程序来为用户提供引导及驱动文件吧~当客户端有了基本的驱动程序后再通过vsftpd服务程序把完整的光盘镜像文件传送过去。

TFTP是一种非常精简的文件传输服务程序,它的运行和关闭时由xinted网络守护进程服务来进行统一管理的,平时xinetd服务程序会同时监听很多个系统的端口号,然后根据用户请求的端口号来调取对应的服务程序来响应用户的请求。如果咱们需要开启TFTP服务程序的话,就把xinetd服务程序对应的配置文件中disable参数改成no就可以了,意思是不要禁用TFTP服务程序,那也就是开启它了。配置文件修改好后保存退出,然后记得把xinetd服务程序重启一下,然后加入到开机启动项中(红帽RHEL7系统中xinetd服务程序默认已经启用,因此此时执行命令没有输出信息是正常情况)。

TFTP服务程序默认会占用服务器 udp 协议的69端口号,所以在生产环境中还要记得在firewalld防火墙管理工具中写入一下永久生效的允许策略,让客户端主机能够顺利的获取到引导文件。

配置文件都在/etc/xinetd.d目录下

[root@localhost ~]# cd /etc/xinetd.d/

[root@localhost xinetd.d]# ll

total 4

-rw-r--r--. 1 root root 518 Mar  2  2016 tftp

[root@localhost xinetd.d]# vi 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   #默认到该目录去找pxelinux.0等启动相关的文件
         disable                 = no
         per_source              = 11
         cps                     = 100 2
         flags                   = IPv4

}

[root@localhost ~]# systemctl restart xinetd.service

[root@localhost ~]# netstat -antulp | grep :69

udp        0      0 0.0.0.0:69              0.0.0.0:*                           5945/xinetd        

udp6       0      0 :::69                   :::*                                1/systemd          

[root@localhost ~]#

4、SysLinux

SYSLinux是用于提供引导加载的服务程序,与其说SYSLinux说一个服务程序,不如说更需要里面的引导文件,安装好SYSLinux服务程序软件包后就会在/usr/share/syslinux目录中出现很多的引导文件。

把SYSLinux提供的引导文件pxelinux.0 复制到TFTP服务程序的默认目录中,这样用户就可以在无系统的情况下顺利的获取到引导文件了。

5、拷贝相关文件到/var/lib/tftpboot目录

[root@localhost ~]# ll /var/lib/tftpboot/

total 0

[root@localhost ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

[root@localhost ~]# cp /mnt/isolinux/* /var/lib/tftpboot/   #在挂载的系统光盘里,mount /dev/cdrom /mnt目录下。

[root@localhost ~]# cp /mnt/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default #从系统光盘中把开机选项菜单复制到这里目录中命名为default,这个文件就是开机时候的选项菜单

[root@pxeserver pxelinux.cfg]# ll

total 4

-r--r--r--. 1 root root 3166 Nov 15 00:03 default

[root@pxeserver pxelinux.cfg]# chmod 644 /var/lib/tftpboot/pxelinux.cfg/default

[root@localhost ~]# ll /var/lib/tftpboot/

total 108984

-r--r--r--. 1 root root     2048 Nov 15 00:02 boot.cat

-r--r--r--. 1 root root       84 Nov 15 00:02 boot.msg

-r--r--r--. 1 root root      321 Nov 15 00:02 grub.conf

-r--r--r--. 1 root root 49763300 Nov 15 00:02 initrd.img

-r--r--r--. 1 root root    24576 Nov 15 00:02 isolinux.bin

-r--r--r--. 1 root root     3166 Nov 15 00:02 isolinux.cfg

-r--r--r--. 1 root root   190896 Nov 15 00:02 memtest

-rw-r--r--. 1 root root    26826 Nov 14 23:59 pxelinux.0

drwxr-xr-x. 2 root root       21 Nov 15 00:03 pxelinux.cfg

-r--r--r--. 1 root root      186 Nov 15 00:02 splash.png

-r--r--r--. 1 root root     2438 Nov 15 00:02 TRANS.TBL

-r--r--r--. 1 root root 55528012 Nov 15 00:02 upgrade.img

-r--r--r--. 1 root root   153104 Nov 15 00:02 vesamenu.c32

-r-xr-xr-x. 1 root root  5875184 Nov 15 00:02 vmlinuz

[root@localhost ~]#

6、修改default配置文件

[root@localhost pxelinux.cfg]# vi default

default linux #默认为vesamenu.c32,表示从光盘启动,这里修改为Linux,表示从label linux 标签内容启动。

timeout 600

label linux
   menu label ^Install Red Hat Enterprise Linux 7.4
   kernel vmlinuz
   append initrd=initrd.img ks=http://192.168.100.111/ks.cfg inst.repo=http://192.168.100.111/cdrom quiet

#把默认的光盘镜像安装方式修改成httpd(也可以用ftp)网络文件传输方式,指定好光盘镜像的获取网址以及ks应答文件的获取路径

7、创建KickStart应用文件ks.cfg

这个文件可以直接修改/root/anaconda-ks.cfg 文件。但是建议system-config-kickstart图形界面来生成这个文件。

#system-config-kickstart

注意上面的配置文件default里:inst.repo=http://192.168.100.111/cdrom

是在apache默认目录下的cdrom目录下。所以后边还得在/var/www/html目录下创建cdrom目录,并且mount /dev/cdrom /var/www/html/cdrom目录。

认证方式,如果没有,可以不用选择。

建议把防火墙和Selinux关闭。

RHEL7+的包选项有bug,选择不了,只能后边再手动修改生成的文件。

安装前和安装后需要执行的脚本,如果没有需要,可以不写。

最后将ks.cfg文件保存到/var/www/html目录下。

append initrd=initrd.img ks=192.168.100.111/ks.cfg

注意配置文件default里我们修改的这一行,我们把ks.cfg文件指定到apache的默认目录/var/www/html目录,所以这一步保存文件时也必须保存到该目录下。

手动修改ks.cfg文件:把上面“Package selection”那一步选择不了的包添加进来。

从/root/anaconda-ks.cfg这个文件里去copy。

# vi /var/www/html/ks.cfg

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part /boot --fstype="xfs" --size=200

part swap --fstype="swap" --size=2048

part / --fstype="xfs" --size=10240

%packages

@^graphical-server-environment

@base

@compat-libraries

@core

@desktop-debugging

@development

@dial-up

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@hardware-monitoring

@input-methods

@internet-browser

@multimedia

@print-client

@x11

%end

%post

useradd lxjtest

echo lxjtest | passwd --stdin lxjtest

%end

[root@localhost ~]# mkdir /var/www/html/cdrom

[root@localhost ~]# mount /dev/cdrom /var/www/html/cdrom/

mount: /dev/sr0 is write-protected, mounting read-only

[root@localhost ~]# systemctl restart httpd

[root@localhost ~]#

8、自动部署客户机

按照上面的配置方法成功部署各个相关服务程序后,咱们就可以开始用PXE+Kickstart无人值守安装系统啦,参考下面步骤建立虚拟主机时一定要把客户端网卡模式设定成与服务端一致的仅主机模式,否则两台服务器根本不能通信,也就肯定不能自动化安装系统了。

连接方式为host-only,跟PXE-SERVER服务器连接到同一块虚拟网卡上。

启动顺序勾选“网络”

然后就到下面的图形界面了,整个过程会自动完成系统安装,安装完成后会自动重启。

r

问题:在测试的过程中,如上图,在“NO disk selected”停住了。不知道啥原因,system-config-kickstart图形界面配置的过程中也没有这项。在对比/root/anaconda-ks.cfg文件时也没找到问题。

使用PXE+Kickstart无人值守安装系统的更多相关文章

  1. PXE+Kickstart无人值守安装系统re

    PXE(Preboot Excute Environment)预启动执行环境,可以让计算机通过网络启动系统,主要用于无人值守安装系统中引导客户端主机安装Linux操作系统. 由于之前有过使用cobbl ...

  2. KickStart 无人值守安装系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  3. [转]CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  4. CentOS6 PXE+Kickstart无人值守安装

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  5. CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  6. CentOS 6.6下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  7. 【转载】CentOS 6.4下PXE+Kickstart无人值守安装操作系统

    [转载]CentOS 6.4下PXE+Kickstart无人值守安装操作系统 转自:CentOS 6.4下PXE+Kickstart无人值守安装操作系统 - David_Tang - 博客园 http ...

  8. Centos下PXE+Kickstart无人值守安装操作系统

    一.简介 1.1 什么是PXE PXE(Pre-boot Execution Environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持 ...

  9. PXE+Kickstart无人值守安装操作系统

    1.PXE的工作过程: 1. PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP: 2. DHCP 服务器返回分配给客户机的IP 以及PXE文件的放置位置(该文件一般是放 ...

随机推荐

  1. 【BZOJ】【3930】【CQOI2015】选数

    数论/莫比乌斯反演/快速mu前缀和 比较容易想到令f[x]表示gcd=x的方案数,令g[x]表示x|gcd的方案数. 那么有$ g(d)=\sum_{d|n} f(n)$,根据莫比乌斯反演,有$f(d ...

  2. android 很多应用中用到的 listView + viewPager

    比如网易啊啥的, 有些界面的 listview 第一行是可以 左右滑动的 viewpager,当滑动下面listView的时候 会一起滑动上去 工程目录: 效果图:                   ...

  3. [leetcode]Surrounded Regions @ Python

    原题地址:https://oj.leetcode.com/problems/surrounded-regions/ 题意: Given a 2D board containing 'X' and 'O ...

  4. CSS-页面滑屏滚动原理

    现在的网站有的时候为了简洁就是很多的单页滑屏滚动介绍,主要呈现方式有两种,一种是整体的元素一直排列下去,假设有五个需要展示的全屏页面,那么高度是500%,只是展示100%,剩下的可以通过transfo ...

  5. Pascal's Triangle leetcode java(杨辉三角)

    题目: Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, ...

  6. HTML5 File API 全介绍

    在 HTML5 File API 出现之前,前端对于文件的操作是非常有局限性的,大多需要配合后端实现.出于安全角度考虑,从本地上传文件时,代码不可能获取文件在用户本地的地址,所以纯前端不可能完成一些类 ...

  7. Arduino教程:MPU6050的数据获取、分析与处理

    Arduino教程:MPU6050的数据获取.分析与处理 转载 摘要 MPU6050是一种非常流行的空间运动传感器芯片,可以获取器件当前的三个加速度分量和三个旋转角速度.由于其体积小巧,功能强大,精度 ...

  8. php随机生成汉字实现方法

    GB 2312-80 是中国国家标准简体中文字符集,全称<信息交换用汉字编码字符集·基本集>,由中国国家标准总局发布,1981年5月1日实施.GB2312 编码通行于中国大陆:新加坡等地也 ...

  9. Centos curl ssl 替换 NSS 为 OpenSSL

    参考:https://www.latoooo.com/xia_zhe_teng/368.htm 我的系统版本是 Centos 7 64位.为了方便,先安装常用的开发环境. yum groupinsta ...

  10. Arrow functions and the ‘this’ keyword

    原文:https://medium.freecodecamp.org/learn-es6-the-dope-way-part-ii-arrow-functions-and-the-this-keywo ...