SimpleZero

Pxe + Kickstart 自动化部署
PXE的定义严格来说,PXE 并不是一种安装方式,而是一种引导方式。PXE (preboot execute en...
扫描右侧二维码阅读全文
27
2019/05

Pxe + Kickstart 自动化部署

PXE的定义

  • 严格来说,PXE 并不是一种安装方式,而是一种引导方式。
  • PXE (preboot execute environment ,预启动执行环境)工作于 Client/Server 的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统。
  • 进行 PXE 安装的必要条件是要安装的计算机中包含一个 PXE 支持的网卡(NIC),即网卡中必须要有 PXE Client。PXE 协议使计算机可以通过网络启动。
  • 协议分为 client 和 server 端,PXE client 在网卡的 ROM 中,当计算机引导时,BIOS 把 PXE client 调入内存执行,由 PXE client 将放置在远端的文件通过网络下载到本地运行。
  • 运行 PXE 协议需要设置 DHCP 服务器和 TFTP 服务器。
  • DHCP 服务器用来给 PXE client(将要安装系统的主机)分配一个 IP 地址,由于是给 PXE client 分配 IP 地址,所以在配置 DHCP 服务器时需要增加相应的 PXE 设置。(bootp booting等选项)。
  • 此外,在 PXE client 的 ROM 中,已经集合了 TFTP Client。PXE Client 通过 TFTP 协议就可以 到 TFTP Server 上下载网络引导 所需的文件。

PXE使用所需条件

  • 客户端的网卡必须要支持PXE功能,并且开机选择从网卡启动,进入PXE程序。
  • PXE服务器必须要提供至少含有DHCP以及TFTP的服务。
  • DHCP服务提供客户端网络,并且告知TFTP所在的位置。
  • FTP提供客户端boot loader及kernel file下载路径。

PXE工作流程图

2.jpg


Kickstart的定义

  • Kickstart是一种无人值守的安装方式。它的工作原理是在安装过程中记录典型的需要人工干预填写的各种参数,并生成一个名为ks.cfg的文件。如果在安装过程中(不只局限于生成Kickstart安装文件的机器)出现要填写参数的情况,安装程序首先会去查找Kickstart生成的文件,如果找到合适的参数,就采用所找到的参数;如果没有找到合适的参数,便需要安装者手工干预了。所以,如果Kickstart文件涵盖了安装过程中可能出现的所有需要填写的参数,那么安装者完全可以只告诉安装程序从何处取ks.cfg文件,然后就去忙自己的事情。等安装完毕,安装程序会根据ks.cfg中的设置重启系统,并结束安装。
  • 目的是为了 减少系统安装的过程中的人机交互,提高安装效率

Kickstart工作流程图

3.jpg


部署环境

  • 客户端可以是裸机,客户端和服务器,必须处于同一 广播域
  • 客户端的网卡,必须拥有 PXE ROM (preboot execution Enviroment)芯片,远程引导技术。
  • 客户端的 BIOS 开启网络启动功能,并将网络引导作为首选启动项。

使用一台服务器搭建,实现全自动化部署
dhcp + tftp + syslinux + http + kickstart
系统的安装方式可以选择HTTP、FTP、 NFS,这里介绍HTTP方式的安装


1.关闭防火墙以及SELinux

#查看防火墙状态
firewall-cmd --state
#停止firewall
systemctl stop firewalld
#禁止firewall开机启动
systemctl disable firewalld
#关闭selinux
setenforce 0

2.安装配置DHCP服务

#安装DHCP服务
yum install dhcp -y 
#编辑dhcpd.conf配置文件,dhcpd是dhcp的服务名
vi /etc/dhcp/dhcpd.conf
#编辑dhcpd.conf
#dns服务器地址写网关地址

subnet 192.168.1.0 netmask 255.255.255.0  #设置网段 
{
    option routers 192.168.1.233;   #设置网关 
    option subnet-mask 255.255.255.0;    #设置子网掩码 
    option domain-name-servers 192.168.1.233;    #设置dns服务器地址
    range dynamic-bootp 192.168.1.1 192.168.1.255;    #IP地址租用的范围
    default-lease-time 21600;    #默认租约时间 
    max-lease-time 43200;    #最大租约时间
    next-server 192.168.1.233;    #tftp服务器地址
    filename "pxelinux.0";    #tftp服务器根目录下面的文件名 
    DHCPDARGS=eth0;            #指定网卡启动dhcp,不指定默认监听全部网卡,监听多个网卡以空格分开
}
#开启dhcpd
systemctl start dhcpd 
#查看dhcpd状态
systemctl status dhcpd
#设置为开机自启动
systemctl enable dhcpd

安装配置TFTP服务

#安装tftp与xinetd
#tftp安装时是安装tftp-server,并且它被xinetd所管理,所以需要安装xinetd
yum install tftp-server xinetd -y 
#编辑tftp服务配置
vi /etc/xinetd.d/tftp 
#此项修改,其它不变,保存并退出 
#no表示开启tftp,默认为yes
disable = no
#开启 xinetd 
systemctl start xinetd 
#查看 xinetd 状态
systemctl status  xinetd 
#设置为开机自启动
systemctl enable  xinetd 

PXE的bootloader和相关配置

#安装syslinux
yum install syslinux -y 
#复制pxelinux.0到tftpboot目录
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot
#进入html目录
cd /var/www/html/
#创建镜像存放文件夹以及镜像挂载文件夹
mkdir Template
mkdir CentOS
#挂载镜像至CentOS文件夹
mount /Template/CentOS-7-x86_64-DVD-1804.iso  /var/www/html/CentOS/
#复制所需文件至tftpboot目录
cp /var/www/html/CentOS-7/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot
cp /var/www/html/CentOS-7/isolinux/{vesamenu.c32,boot.msg} /var/lib/tftpboot
#进入tftpboot目录
cd /var/lib/tftpboot/
#创建pxelinux.cfg配置文件
mkdir pxelinux.cfg 
#将镜像中的引导文件拷贝到pxelinux.cfg下并命名为default
cp /var/www/html/CentOS-7/isolinux/isolinux.cfg pxelinux.cfg/default

编辑default文件

#编辑default文件
vi pxelinux.cfg/default

菜单中有两个选项,要么是安装系统,要么是对安装介质进行检验。既然我们已经确定采用无人值守的方式安装系统,还需要为每台主机手动选择相应的选项,未免与我们的主旨(无人值守安装)相悖。现在我们编辑这个default 文件,把第1行的default参数修改为linux,这样系统在开机时就会默认执行那个名称为 linux 的选项了。

#修改第一行
#原文档
default vesamenu.32
#修改为
default linux

将默认的光盘镜像安装方式修改成 FTP 文件传输方式,并指定好光盘镜像的获取路径以及Kickstart 应答文件的获取路径

#删除60以后的内容并添加以下内容(视情况修改)
label linux 
    menu label ^Install CentOS 7  
    kernel vmlinuz  
     append initrd=initrd.img ks=http://192.168.1.233/config/ks.cfg biosdevname=0 net.ifnames=0
#重启tftp服务
systemctl restart xinetd.service

安装配置HTTP服务

#安装http服务
yum install httpd -y 
#拷贝镜像
cp -rf /var/www/html/CentOS-7/* /var/www/html/
#新建目录,把自定义的文件、脚本等放置于此
mkdir -p /var/www/html/config
#启动httpd服务
systemctl start httpd
#httpd服务状态
systemctl status httpd
#开机自启动httpd服务
systemctl enable httpd

Kickstart配置文件

先鸽了,有空再写 (:3」∠)

最后修改:2019 年 05 月 29 日 01 : 55 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论

1 条评论

  1. 心灵博客
      Windows 7 x64 Edition(Windows 7 x64 Edition) / Firefox 50.0(Firefox 50.0)

    你的主题真好看。