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. PHP: Short URL Algorithm Implementation

    1.http://www.snippetit.com/2009/04/php-short-url-algorithm-implementation/ The following code is wri ...

  2. ArcEngine C++ 10 程序的运行环境,ArcEngine RT的授权

    以前我一直以为 必须安装 Arcgis Desktop才可以授权,发现我错了,原来是这个样子的. 一.安装License manager,并授权许可server.txt 当然这个license也可以安 ...

  3. Java NIO Channel to Channel Transfers

    In Java NIO you can transfer data directly from one channel to another, if one of the channels is a ...

  4. hdu 3660 Alice and Bob's Trip(树形DP)

    Alice and Bob's Trip Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  5. Linux下的串口编程实例

    //串口相关的头文件  #include<stdio.h>      /*标准输入输出定义*/  #include<stdlib.h>     /*标准函数库定义*/  #in ...

  6. ds18b20驱动及应用程序

    ---------------------------------------------------------------------------------------------------- ...

  7. Linux下安装nmap扫描工具

    NMAP是一款流行的网络扫描和嗅探工具,被广泛应用在黑客领域做漏洞探测以及安全扫描,更多的nmap是一个好用的网络工具,在生产和开发中也经常用到,主要做端口开放性检测和局域网信息的查看收集等,不同Li ...

  8. MFC中位图的显示

    分析: 首先,我们要明确一点,窗口的绘制包括两个步骤,首先:擦除窗口背景,然后再对窗口重新进行绘制:当擦除窗口背景时,程序会发生一个WM_ERASEBKGND消息,因此可以在此响应函数中完成位图的显示 ...

  9. Swift编程语言学习1.7——断言

    断言 可选能够让你推断值是否存在,你能够在代码中优雅地处理值缺失的情况.然而,在某些情况下,假设值缺失或者值并不满足特定的条件,你的代码可能并不须要继续执行.这时.你能够在你的代码中触发一个断言(as ...

  10. 【Java】Java-XML解析利器-SAX-高性能-易用

    Java-XML解析利器-SAX-高性能-易用 java xml 大_百度搜索 (3)java处理比较大的xml文件 - SegmentFault How to read UTF-8 XML file ...