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. IDEA重写toString()模板,转成json格式

    1.类中Alt + Insert,弹出下框 2.点击新增 public java.lang.String toString() { final java.lang.StringBuilder sb = ...

  2. Sicily 1388. Quicksum

    http://soj.me/1388 又一道字符串的水题.... #include <iostream> #include <cstring> using namespace ...

  3. Android 应用程序之间内容分享详解(二)

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/9428613 Android 应用程序之间内容分享详解(一) 之前给大家分享了你开发的应 ...

  4. linux中断

    [一].中断底半部 1. 软中断    --->>>  执行在中断上下文  --->>>  会被中断打断,不会被软中断或进程打断  --->>> ...

  5. Context Application 使用总结 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  6. Could not load file or assembly 'System.Data.SQLite' or one of its dependencies. An attempt was made to load a program

    今天同事在一个服务器(winserver 2008 x64)上新建了一个IIS(7) 网站,但是报了如下错误: Could not load file or assembly 'System.Data ...

  7. Spring Boot Maven Plugin打包异常及三种解决方法:Unable to find main class

    [背景]spring-boot项目,打包成可执行jar,项目内有两个带有main方法的类并且都使用了@SpringBootApplication注解(或者另一种情形:你有两个main方法并且所在类都没 ...

  8. MFC如何制作字体选择对话框

    MFC封装类:CFontDialog 核心代码如下: void CGraphicView::OnFont() { CFontDialog dlg; if( IDOK == dlg.DoModal() ...

  9. Python 中parse.quote类似JavaScript encodeURI() 函数

    from urllib import parse jsRet = 'roleO%2f'print(parse.unquote(jsRet))print(parse.quote(jsRet))输出: r ...

  10. Android -- View流程

    在自定义view中打log,view的显示共有三种,visible.invisible和gone,分别看一下log: gone onVisibilityChanged construct 2 para ...