部署pxe远程安装服务

简介:

         PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,加载安装文件或者整个系统。

搭建pxe网络体系,必须满足的条件:

  • 1.客户机的网卡支持PXE协议(集成BOOTROM芯片),且主板支持网络引导;

  • 2.网络中必须有一台DHCP服务器为客户机分配IP地址、指定引导文件的位置;

  • 3.服务器通过TFTP(简单文件传输协议)提供引导镜像文件的下载。

其中第一个条件是硬件要求,目前绝大部分服务器和PC都能够提供此支持,只需在BIOS设置中允许从Network或LAN启动即可。

 

搭建pxe远程服务器

 

实现半无人值守安装

TFTP或MTFTP协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。
 

 

1.准备安装所需软件

[root@localhost yum.repos.d]# yum -y install vsftpd tftp-server dhcp

2. 准备CentOS 7 安装源

[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# mkdir /var/ftp/centos7   
[root@localhost ~]# cp -rf /mnt/* /var/ftp/centos7/
//把光盘所有文件复制到ftp匿名访问目录中

3.启用tftp服务

配置文件位于/etc/xinetd.d/tftp下

[root@localhost ~]# vim /etc/xinetd.d/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
        disable                 = no   //改成on默认yes
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4

[root@localhost ~]# systemctl start tftp   //启动服务
[root@localhost ~]# systemctl enable tftp   //设置开机自启
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.

4.复制Linux内核和初始化镜像文件

  用PXE网络安装的Linux内核、初始化文件可以从CentOS 7系统光盘中获得,位于images/pxeboot/目录下,分别是initrd.img和vmlinuz。将这两个文件复制到TFTP服务的根目录下。

[root@localhost ~]# cd /mnt/images/pxeboot/ 
[root@localhost pxeboot]# cp vmlinuz /var/lib/tftpboot/   //系统内核文件
[root@localhost pxeboot]# cp initrd.img /var/lib/tftpboot/  //初始化镜像文件

5.准备pxe引导程序、启动菜单文件

用于PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。所以提前安装好syslinux。然后将文件pxelinux.0,复制到tftp服务的根目录下。

[root@localhost pxeboot]# yum -y install syslinux
[root@localhost pxeboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

启动菜单来指导客户机的引导过程,包括如何调用内核、如何加载初始化镜像。默认的启动菜单文件为default,应放置在tftp根目录下的pxelinux.cfg子目录下

[root@localhost pxeboot]# mkdir /var/lib/tftpboot/pxelinux.cfg
[root@localhost pxeboot]# vim /var/lib/tftpboot/pxelinux.cfg/defaul

default auto //指定默认入口名称
prompt 1  //1表示等待用户控制
label auto 
        kernel vmlinuz 
        append initrd=initrd.img method=ftp://192.168.1.1/centos7
label linux text 
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.1.1/centos7
 
label linux rescue  
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.1.1/centos

上述配置记录中定义了三个引导入口,分别是,图形安装,文本安装,救援模式,其中label:用来定义并分割启动项,kernel,append:用来定义引导参数,method:指定安装方式

5.配置DHCP服务

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf 
:r /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example

subnet 192.168.1.0 netmask 255.255.255.0 {   //网段和子网掩码
  range 192.168.1.10 192.168.1.100;   //获取范围
  option domain-name-servers 192.168.1.1;   //dns
  option domain-name "internal.example.org";  //域名
  option routers 192.168.1.1;  //网关
  default-lease-time 600;
  max-lease-time 7200;
next-server 192.168.1.1;   //指定tftp服务地址
filename "pxelinux.0";   //指定pxe引导程序的文件名称
}

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

6.验证半无人值守

部署pxe远程安装服务_第1张图片

 

 

部署pxe远程安装服务_第2张图片

 

显示上面这图表示半无人值守成功

 

实现Kickstart无人值守安装

1.安装Kickstart

[root@localhost centos7]# yum -y install system-config-kickstart

2.配置Kickstart

部署pxe远程安装服务_第3张图片

部署pxe远程安装服务_第4张图片

部署pxe远程安装服务_第5张图片

部署pxe远程安装服务_第6张图片

 

保存文件后编辑文件尾行添加

%packages
@^minimal
%end  最小安装

 

 vim ks.cfg 

%packages //添加最小安装
@^minimal
%end  

复制到centos7目录下

[root@localhost centos7]# mv ks.cfg /var/ftp/centos7/

3.添加ks引导参数,指定ks.cfg文件的URL路径

添加ks=ftp://192.168.1.1/centos7/ks.cfg路径时不需要另起一行。

[root@localhost centos7]# vim /var/lib/tftpboot/pxelinux.cfg/default 

default auto
prompt 0
label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.1.1/centos7 ks=ftp://192.168.1.1/centos7/ks.cfg

4.验证

部署pxe远程安装服务_第7张图片

到这步就实现无人值守了

你可能感兴趣的:(Linux高级管理)