部署 PXE 远程安装与无人值守安装服务

目录

PXE简介

实现PXE需要的硬件和软件

服务作用说明

部署PXE远程装机

1安装ftp服务,准备yum源

2安装tftp-server和xinetd软件包(tftp服务依赖于xinetd超级服务)

3修改tftp配置文件

4启动tftp服务 

5配置DHCP服务器:(pxe远程部署系统是没有IP地址的,所以需要DHCP分配)

6准备内核文件和初始化镜像文件

7准备支持PXE软件包

8准备启动菜单

9修改启动菜单

10 重启所有服务

11 客户端测试

无人值守安装

kickstart-由于下载软件包信息失败,软件包选择被禁止解决方法:

 第二种方法


PXE简介

1.1PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的,工作于C/S网络模式,支持通过网络从远端服务器下载映像,并支持通过网络启动操作系统。

1.2在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置。从而引导预先安装在服务器中的终端操作系统。

1.3PXE可以引导多种操作系统,如: windows2008/ win7/win8/linux系列系统等。PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供。

2.xinetd
支持对tcp、udp、RPC服务(但是当前对RPC的支持不够稳定)
基于时间段的访问控制
功能完备的log功能,即可以记录连接成功也可以记录连接失败的行为
能有效的防止DoS攻击(Denial of Services)
能限制同时运行的同一类型的服务器数目
能限制启动的所有服务器数目
能限制log文件大小
将某个服务绑定在特定的系统接口上,从而能实现只允许私有网络访问某项服务
能实现作为其他系统的代理。如果和ip伪装结合可以实现对内部私有网络的访问

3.1kickstart['kɪkstɑːt] 定义了Linux安装过程的配置文件,比如要在系统中使用的时区、如何对驱动器进行分区、或者应该安装哪些软件包。

3.2有了这个文件可以解放双手,让Linux安装过程按照我们预先定义的要求进行自动化安装,同时部署大量主机时十分有用。

3.3一般centos系统安装后,会在root目录下生成一个名为anaconda-ks.cfg的kickstart配置文件。

实现PXE需要的硬件和软件

硬件需求:

1.客户端需要一块支持PXE引导模块的网卡

2.客户端的主板BIOS需要支持网卡启动

软件需求:

1.PXE引导服务

2.DHCP地址分配服务

3.安装TFTP简单文件服务

4.安装FTP服务器

服务作用说明
 

1.PXE引导服务:可以给客户机提供系统启动指令,引导模块和内核模块
2.DHCP服务:客户端没有操作系统,所以无法手动配置IP地址,唯一的方式就是通过DHCP获取IP地址
3.TFTP服务:服务器给客户端传输引导模块和内核文件
4.FTP服务:服务器给客户端传输操作系统的安装文件

部署PXE远程装机

1安装ftp服务,准备yum源

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

[root@localhost ~]# systemctl restart network

[root@localhost ~]# mount /dev/cdrom /media/

[root@localhost ~]# rm -rf /etc/yum.repos.d/*

[root@localhost ~]# vim /etc/yum.repos.d/yum.repo

添加:

[yum]

name=yum

baseurl=file:///media                   //挂载镜像目录

gpgcheck=0                              //是否检查GPG密钥

enabled=1                               //是否开启yum源   

[root@localhost ~]# yum -y install vsftpd

[root@localhost ~]# mkdir /var/ftp/centos7

[root@localhost ~]# cp -rf  /media/* /var/ftp/centos7/

//复制media目录下的所有东西到centos7目录下

包含Packages和repodata目录,东西多,耐心等

2安装tftp-server和xinetd软件包(tftp服务依赖于xinetd超级服务)

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

3修改tftp配置文件

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

//把disable=yes改为disable=no

4启动tftp服务 

systemctl restart xinetd

systemctl restart tftp

5配置DHCP服务器:(pxe远程部署系统是没有IP地址的,所以需要DHCP分配)

[root@localhost ~]# yum -y install dhcp

[root@localhost ~]# cp /usr/share/doc/dhcp*/dhcpd.conf.example /etc/dhcp/dhcpd.conf

//将DHCP辅助手册复制到主配置文件

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf

在最后添加:

subnet 192.168.1.0 netmask 255.255.255.0 { //分配网段及掩码

        range 192.168.1.100 192.168.1.188; //分配地址池

        next-server 192.168.1.1; //指定TFTP的服务器地址

        filename "pxelinux.0"; //指定PXE引导启动程序的文件名

}

[root@localhost ~]# systemctl restart dhcpd

6准备内核文件和初始化镜像文件

[root@localhost ~]# cd /media/images/pxeboot/

//存放内核文件和初始化镜像文件的目录

[root@localhost pxeboot]# ls

initrd.img  TRANS.TBL  vmlinuz

//vmlinuz:linux系统内核文件     initrd.img:简化系统镜像

[root@localhost pxeboot]# cp vmlinuz initrd.img /var/lib/tftpboot

//将文件复制到tftp启动目录下

7准备支持PXE软件包

[root@localhost ~]# yum -y install syslinux

[root@localhost ~]# cd /usr/share/syslinux/

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

//将PXE网络安装引导程序复制到tftp启动目录

PXE网络安装的引导程序为pxelinux.0,由软件包syslinux提供

8准备启动菜单

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

//创建启动菜单目录

[root@localhost ~]# cp /media/isolinux/boot.msg /var/lib/tftpboot

//将启动镜像放到tftp启动目录

9修改启动菜单

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

添加:

default auto //自动选择

prompt 1 //是否等待用户控制 0为不等

timeout 600 //等待时间

display boot.msg

label auto //常规安装

kernel vmlinuz //内核为vmlinuz

append initrd=initrd.img method=ftp://192.168.1.1/centos7

//append initrd=加载镜像  initrd.img类似Windows pe系统 method=FTP镜像路径

@ 有三种安装方式 这篇文章选择的是常规安装 三种安装方式 格式如下

label auto        //常规安装
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.1.1/centos

label linux text    //文本模式安装
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.1.1/centos

label linux rescue    //系统修复
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.1.1/centos

10 重启所有服务

[root@localhost ~]# systemctl restart tftp

[root@localhost ~]# systemctl restart dhcpd

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# systemctl stop firewalld

[root@localhost ~]# setenforce 0

11 客户端测试

新建虚拟机验证 ,调节同一虚拟网卡实现dhcp广播 客户机安装时候先调节网络获取 

F10保存退出

boot:auto             //输入auto或者直接回车进入常规安装

boot:linux text       //进入文本安装模式

boot:linux rescue    //进入救援模式

 完成


无人值守安装

需求:通过kick start无人值守自动安装(需要建立在pxe远程安装上)

通过 PXE 技术远程安装期间仍需要手动选 择语言、键盘类型、指定安装源等一系列交互操作,很麻烦,所以使用kick start无人值守自动安装

 

1、准备安装应答文件
[root@localhost ~]# yum -y install system-config-kickstart
[root@localhost ~]# system-config-kickstart       //输入此命令直接打开kickstart配置程序

[root@localhost ~]# system-config-kickstart

//输入此命令直接打开kickstart配置程序

kickstart-由于下载软件包信息失败,软件包选择被禁止解决方法:

修改yum源配置文件,将yum源配置文件中的id部分修改位development后,卸载system-config-kickstart并重新安装该命令,即可出现软件包信息,


[root@node1 kk]# vim /etc/yum.repos.d/yum.repo 

[yum]    --此处修改为[development]
name=my-centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0

#只需将文件内[centos]修改位[development]即可,如下
[root@node1 kk]# cat /etc/yum.repos.d/yum.repo 
[development]
name=my-centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0

修改文件后,卸载命令system-config-kickstart并重新安装:

# 卸载命令
[root@node1 kk]# yum remove -y system-config-kickstart

#重建yum缓存
[root@node1 kk]# yum clean all
[root@node1 kk]# yum makecache

#重新安装命令
[root@node1 kk]# yum install -y system-config-kickstart

使用system-config-kickstart重新创建ks.cfg文件
 

 第二种方法

首先配置好pxe后,用yum进行安装kickstart

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

配置安装应答参数

[root@localhost ~]# system-config-kickstart

//输入此命令直接打开kickstart配置程序

也可以使用图形化打开

点击左上角的应用程序,选择系统工具,只要安装上了kickstart就可以看到

 

 

打开之后基本配置这里

修改默认语言为中文简体,键盘默认使用U.S.English,时区更改为Asia/shanghai

(需要耐心往下翻找到shanghai)然后加个r oot密码并勾选上安装后重启

 

 

然后打开安装方法

点击执行全新安装,选择ftp,写入我们的ftp服务器IP地址以及ftp目录

(部署PXE的时候就已经配置完成)

 

点击分区信息,全部保持默认直接点击最下边的添加

打开之后是这样的,需要自己手动指定挂载点、文件系统类型以及容量

分别添加/boot挂载点

 

 Swap文件系统类型,容量2048MB

 最后挂载点选择/,容量勾选使用磁盘上全部未用空间

 然后点开网络配置添加网卡,点击添加网络设备,名字为ens33,默认DHCP网络类型

 然后点击防火墙配置,将SELinux禁用掉

 最后点击左上角文件,有个保存

 

保存文件名称默认就行,记着就行,然后点击文件系统,找到/var再找到/ftp

保存到/var/ftp下,然后点击保存关闭kickstart配置程序即可

基本配置信息完成之后开始添加软件包(添加到我们刚才保存的文件/var/ftp/ks.cfg)

在添加之前我们需要了解一个配置文件,是安装操作系统时自带的

[root@localhost ~]# vim /root/anaconda-ks.cfg

这个文件总共分为三部分:

第一部分为基本配置信息

第二部分为磁盘分区信息

第三部分为软件包列表

而我们需要的就是第三部分(从%packages开始到%end结束)

%packages

@^gnome-desktop-environment

@base

@core

@desktop-debugging

@dial-up

@directory-client

@fonts

@gnome-desktop

@guest-agents

@guest-desktop-agents

@input-methods

@internet-browser

@java-platform

@multimedia

@network-file-system-client

@networkmanager-submodules

@print-client

@x11

chrony

kexec-tools

%end

%addon com_redhat_kdump --enable --reserve-mb='auto'

%end

%anaconda

pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty

pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok

pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty

%end

将软件包复制下来之后放入我们的配置文件

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

//将复制的软件包列表添加至文件最后然后保存退出

然后修改我们的启动菜单(ftp源的启动菜单)

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

修改:

Prompt 1改为prompt 0 //等待用户操作,1为开启0为关闭

将append initrd=initrd.img method=ftp://192.168.1.1/centos7

修改为append initrd=initrd.img ks=ftp://192.168.1.1/ks.cfg

最后重启ftp和tftp服务

[root@localhost ~]# systemctl restart vsftpd

[root@localhost ~]# systemctl restart tftp

客户机验证:(注意:还是2G内存以上,bios启动项把网络启动设置为第一位)

1)准备新的虚拟机

2)桥接网卡

3)启动虚拟机

4)自动完成安装

耐心等待即可

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值