PXE+Kickstart实现无人值守批量部署服务器

一、pxe简介

1.1pxe是什么?

PXE(Preboot eXecute Environment,预启动执行环境)是由Intel公司开发的技术,可以让计算机通过网络来启动操作系统(前提是计算机上安装的网卡支持PXE技术),主要用于无人机值守安装操作系统中引导客户端主机安装linux操作系统。Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kictstart生成的文件,所有只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干涉,就可以自动完成安装工作

1.2 pxe服务构建过程

  1. PXE客户机发出DHCP请求,向DHCP服务器申请IP地址,

  1. DHCP服务器响应PXE客户机的请求,自动从IP地址池中分配一个IP地址给PXE客户机,并且告 知PXE客户机:TFTP服务器的IP地址和PXE引导程序文件pxelinux.0,默认在TFTP共享目 录/var/lib/tftpboot/下

  1. PXE客户机向TFTP服务器发起获取pxelinux.0引导程序文件的请求。

  1. TFTP服务器响应PXE客户机的请求,将其共享的pxelinux.0文件传输给PXE客户机。

  1. PXE客户机通过网络来启动到系统安装主界面。

  1. PXE客户机向文件共享服务器(ftp、http、nfs等)发起获取centos或windows系统安装文件的请求。

  1. 文件共享服务响应PXE客户机的请求,将共享的系统安装文件传输给PXE客户机。

  1. PXE客户机进入到安装提示向导界面,用户需要手动来完成系统安装的操作

二、部署PXE服务

2.1 环境准备

主机服务器地址:172.16.110.30

1)配置IP地址 关闭selinux和防火墙

2)DHCP部署

3)tftp-server 服务器通过 TFTP(Trivial File Transfer Protocol,简单文件传输协议)提供引导镜像文件的下载。

4)syslinux //用来提供pxe的引导程序

5)xinetd //用来托管tftp

6)vsftpd //用来放置安装镜像,通过ftp访问镜像安装

7)kickstart //用来无人值守安装

2.2 配置PXE远程安装服务

2.2.1 安装dhcp服务

2.2.1.1 配置软件源

[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 is write-protected, mounting read-only
[root@localhost ~]# cat /etc/yum.repos.d/local.repo 
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enabled=1

2.2.2.2 配置dhcp服务

[root@localhost ~]# yum install -y dhcp
[root@localhost ~]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 

# 编辑dhcp服务的配置文件
[root@localhost ~]# vi /etc/dhcp/dhcpd.conf
subnet 172.16.110.0 netmask 255.255.255.0 {
  range 172.16.110.100 172.16.110.200;
  option domain-name-servers 8.8.8.8;
  option routers 172.16.110.1;
  option broadcast-address 172.16.110.255;
  next-server 172.16.110.30;   # 指向tftp服务器的ip
  filename "pxelinux.0";        # 指定pxe引导程序文件名
}

[root@localhost ~]# systemctl restart network

2.2.2 安装tftp服务

TFTP(简单文件传输协议),是一个基于UDP协议实现的用于在客户机和服务器之间进行简单文件传输的协议,适合于小文件传输的应用场合。TFTP服务默认由xinetd服务进行管理,使用UDP 端口69

xinetd是新一代的网络守护进程服务程序,又叫超级服务器,常用来管理多种轻量级Internet服务。

安装tftp、xinetd服务

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

开启tftp服务:

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

启动tftp服务和xinetd服务

[root@localhost ~]# systemctl start xinetd tftp

2.2.3 准备PXE引导程序

pxelinux.0是个二进制文件,主要作用相当于一个系统安装步骤的指引,引导客户端如何安装系统
yum provides /pxelinux.0 #查找这个文件是由哪个软件包安装的
# 安装syslinux服务
[root@localhost ~]# yum install -y syslinux

# 查看pxelinux.0文件的位置
[root@localhost ~]# find / -name pxelinux.0
/usr/share/syslinux/pxelinux.0

# 将pxelinux.0文件复制到tftp的根目录 /var/lib/tftpboot
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

2.2.4 配置启动菜单文件

启动菜单用来指导客户机的引导过程,包括如何调用内核,如何加载驱动。默认的启动菜单文件为 default,应放置在 tftp 根目录的 pxelinux.cfg 子目录下,典型的启动菜单配置可参考以下操作自动或手动建立。至于为什么要是/var/lib/tftpboot/pxelinux.cfg/default文件,因为是由pxelinux.0这个文件决定好的 pxelinux.cfg目录默认是没有的需要手动创建

2.2.4.1 创建default文件

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

2.2.4.2 编辑default文件

[root@localhost ~]# cat /var/lib/tftpboot/pxelinux.cfg/default 
default auto    # 指定默认入口名称,对应下面的label auto
timeout 300     # 安装等待时间 单位十分之一秒 1/10
prompt 0        # 设置是否等待用户选择,“1”表示等待用户控制,0表示不等待用户控制

label auto              
  kernel vmlinuz    # 会去 /var/lib/tftpboot/目录下找linux内核文件和驱动文件
  append initrd=initrd.img method=ftp://172.16.110.30/centos7 
                    # method 安装源

用于 PXE 网络安装的 Linux 内核、驱动文件可以从 CentOS 7 系统光盘/镜像获得, 分别为 vmlinuz 和 initrd.img,位于光盘目录 images/pxeboot 下,将其复制到/var/lib/tftpbooot/

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

2.2.5 安装FTP服务

安装FTP服务 准备Centos7的安装源

yum -y install vsftpd #安装vsftpd服务
mkdir /var/ftp/centos7 #在ftp根目录下创建目录centos7
cp -rf /mnt/* /var/ftp/centos7/ #将镜像文件强制复制到centos7目录中
systemctl start vsftpd #开启vsftpd服务
systemctl enable vsftpd #开启vsftpd服务开机自启

三、 实现Kickstart无人值守安装

KickStart 是一种无人职守安装方式。KickStart 的工作原理是通过记录典型的安装过程中所需人工干预填写的各种参数,并生成一个名为 ks.cfg 的文件;在其后的安装过程中(不只局限于生成 KickStart 安装文件的机器)当出现要求填写参数的情况时,安装程序会首先去查找 KickStart 生成的文件,当找到合适的参数时,就采用找到的参数,当没有找到合适的参数时,才需要安装者手工干预。这样,如果 KickStart 文件涵盖了安装过程中出现的所有需要填写的参数时,安装者完全可以只告诉安装程序从何处取 ks.cfg 文件,然后去忙自己的事情。等安装完毕,安装程序会根据 ks.cfg 中设置的重启选项来重启系统,并结束安装

3.1 安装Kickstart服务

准备安装应答文件 system-config-kickstart 工具

yum install -y system-config-kickstart

3.2 打开Kickstart配置程序窗口

可以通过桌面菜单 "应用程序" --> “系统工具” --> "Kickstart" 打开

# 或者执行命令
system-config-kickstart

3.3 配置Kickstart选项

  1. 基本配置

  1. 安装方法

  1. 引导装载程序

  1. 分区信息

  1. 网络配置

  1. 防火墙配置

  1. 显示配置

  1. 软件包选择

这里只有当本地yum源仓库标签为development才会生效 示例如下:

[root@localhost ~]# cat /etc/yum.repos.d/local.repo 
[development]
name=alksdja
baseurl=file:///mnt
gpgcheck=0
enabled=1

  1. 安装后脚本

  1. 保存配置

3.4 启动菜单配置ks

efault auto
timeout 300
prompt 0

label auto
  kernel vmlinuz
  append initrd=initrd.img method=ftp://172.16.110.30/centos7 ks=ftp://172.16.110.30/ks.cfg

3.5 设置最小化安装

编辑ks.cfg文件

# 添加如下内容
%packages
@^minimal
%end

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋刀鱼什么味_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值