PXE+Kickstart无人值守安装

1、概述

PXE(preboot execute environment,预启动执行环境)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持通过网络启动操作系统,在启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中执行,由这个启动软件包完成终端(客户端)基本软件设置,从而引导预先安装在服务器中的终端操作系统。

2、安装要求

  • 网卡必须支持PXE引导;
  • 客户端需要有与Kickstart 通信的IP地址,这里一般都是通过DHCP自动分配IP地址来实现;
  • 提供引导所需的文件,内核文件,内核镜像文件等,此时一般通过tftp-server等实现;
  • kickstart文件,它主要实现自动化安装的过程,比如配置主机名、添加用户、安装系统后相关操作;
  • 提供安装源,一般就是NFS/ftp/httpd等;
  • 客户端内存要求至少2G;

3、工作过程

3. 1 PXE Client 从自己的PXE网卡启动,向本网络中的DHCP服务器索取IP;

3.2 DHCP 服务器返回分配给客户机的IP * 以及PXE文件的放置位置(该文件一般是放在一台TFTP服务器上) ;

3.3 PXE Client 向本网络中的TFTP服务器索取pxelinux.0 文件;

3.4 PXE Client 取得pxelinux.0 文件后之执行该文件;

3 .5 根据pxelinux.0 的执行结果,通过TFTP服务器加载内核和文件系统 ;

3.6 进入安装画面, 此时可以通过选择HTTP、FTP、NFS 方式之一进行安装;

4、安装部署

4.1 安装配置DHCP服务,用于分配ip地址及pxe启动文件信息.

安装

yum install dhcp -y

配置

vim /etc/dhcp/dhcpd.conf
allow booting;
allow bootp;    #允许bootp引导程序协议,目的是让没有操作系统的主机也能获取到IP地址
ddns-update-style interim;
ignore client-updates;
subnet 192.168.10.0 netmask 255.255.255.0 {
        option subnet-mask      255.255.255.0;
        option domain-name-servers  192.168.10.10;
        range dynamic-bootp 192.168.10.100 192.168.10.200;
        default-lease-time      21600;
        max-lease-time          43200;
        next-server             192.168.10.10;
        filename                "pxelinux.0";        #pxe引导驱动文件信息
}

启动

systemctl start dhcpd && systemctl enable dhpcd

4.2 安装配置TFTP服务,用于传输pxelinux.0等基本引导程序文件

安装

yum install tftp-server

配置

vim /etc/xinetd.d/tftp
service tftp
{
        socket_type             = dgram
        protocol                = udp
        wait                    = yes
        user                    = root
        server                  = /usr/sbin/in.tftpd
        server_args             = -s /var/lib/tftpboot
        disable                 = no
        per_source              = 11
        cps                     = 100 2
        flags                   = IPv4
}

启动

systemctl start xinetd && systemctl enable xinetd

4.3 准备安装所需的引导程序文件到TFTP传输目录,syslinux是用于提供pxelinux.0等引导文件的服务程序.

安装

yum install syslinux -y

配置

cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0 .
cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} .        #内核文件
cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} .        #窗口模块,提示信息文件
mkdir pxelinux.cfg
cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default    #引导菜单
vim pxelinux.cfg/default
default linux            #指定默认标签
……
append initrd=initrd.img inst.stage2=ftp://192.168.10.10 ks=ftp://192.168.10.10/pub/ks.cfg net.ifnames=0 biosdevname=0 quiet        #指定安装程序以及ks应答文件路径,以及使用ethx命名网卡.nfs方式为nfs:192.168.10.10:/data/ios

4.4 安装配置vsftp服务,用于传输操作

安装

yum install vsftpd -y

配置,拷贝安装文件到ftp默认目录

cp -r /media/cdrom/* /var/ftp

启动

systemctl start vsftpd && systemctl enable vsftpd

4.5 创建kickstart应答文件

cp ~/anaconda-ks.cfg /var/ftp/pub/ks.cfg
chmod +r /var/ftp/pub/ks.cfg
vim /var/ftp/pub/ks.cfg
…
url --url=ftp://192.168.10.10   #系统安装文件路径
...
timezone Asia/Shanghai --isUtc   #时区
...
reboot     #安装完成后自动重启
…

至此,PXE+Kickstart无人值守安装部署完成,安装时确保客户机正确接入无人值守安装系统的网络(不能存在其他的DHCP服务器),开机即可进行自动安装系统,中间过程无需人工干预。

5. kickstart应答文件各配置选项及作用说明

安装方式
cdrom
url --url=ftp://IP
#url --url=http://IP
#nfs --server=IP --dir=path
本地化LOCALIZATION
日期和时间
# System timezone
timezone Asia/Shanghai --nontp
键盘
# Keyboard layouts
keyboard --vckeymap=cn --xlayouts='cn'
语言支持
# System language
lang zh_CN.UTF-8/en_US
软件 SOFTWARE
安装源
软件选择
%packages
@^minimal
@compat-libraries
@core
@debugging
@development
@system-admin-tools
kexec-tools
系统 SYSTEM
安装位置
# System bootloader configuration
bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
# Partition clearing information
clearpart --all --initlabel --drives=sda
# Disk partitioning information  
#part /boot --fstype="xfs" --size=200
#part / --fstype="xfs" --size=20480
#part swap --fstype="swap" --size=2048
#part /usr --fstype="xfs" --size=20480
#part /tmp --fstype="xfs" --grow --size=1
KDUMP
网络和主机名
# Network information
network  --bootproto=static --device=enp2s0 --onboot=on --gateway=192.168.2.1 --ip=192.168.2.220 --netmask=255.255.255.0 --ipv6=auto --activate
network  --hostname=localhost.localdomain
SECURITY POLICY
ROOT密码
# Root password
rootpw --iscrypted 密码密文 
#密文可使用md5加密:1.openssl passwd -1 “password” 2.grub-crypt --md5
#rootpw “123456”
其他
服务
# System services
services --disabled="chronyd"
创建用户
user --name=username --password=密文 --iscrypted 

 

posted @ 2023-03-31 15:37  isxiefeng  阅读(174)  评论(0)    收藏  举报