使用PXE+Kickstart无人值守安装服务

一、简介

       使用PXE+TFTP+FTP+DHCP+Kickstart服务搭建出一个无人值守安装系统,可以无人值守就可以为数10台服务器安装系统,大大提高系统安装效率。

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

Kickstart是一种无人值守的安装方式,其工作原理是预先把原本需要运维人员手工填写的参数保存成一个ks.cfg文件,当安装过程中需要填写参数时则自动匹配Kickstart生成的文件。所以只要Kickstart文件包含了安装过程中需要人工填写的所有参数,那么从理论上来讲完全不需要运维人员的干预,就可以自动完成安装工作。

由于客户端没有完整的操作系统,也就不能使用FTP协议的验证,所以先使用TFTP协议帮助客户端获取引导及驱动文件,在使用vsftp服务程序将完整的系统镜像传输给客户端,亦可以使用httpd来替代vsftpd服务程序。

工作流程:

使用PXE+Kickstart无人值守安装服务

二、配置DHCP服务

进行实验时,要先关闭iptables和selinux,无人值守系统双网卡,一个要设置为仅主机模式,一个为桥接模式,用于连接网络。

主机名称

操作系统

IP地址

无人值守系统

CentOS 6

192.168.231.142

客户端

 

 

2.1虚拟机设置

不使用本地DHCP服务

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

网络适配器设置为主机模式,使虚拟机之间能够相互通信

使用PXE+Kickstart无人值守安装服务

2.2配置DHCP

#yum install dhcp -y

#vim /etc/dhcp/dhcpd.conf  添加

//允许了BOOTP引导程序协议,旨在让局域网内暂时没有操作系统的主机也能获取静态IP地址;

allow booting; 

allow bootp;

//定义DNS服务动态更新的类型,类型包括:none(不支持动态更新)、interim(互动更新模式)与ad-hoc(特殊更新模式)

ddns-update-style interim;

//忽略客户端更新DNS记录

ignore client-updates;

subnet 192.168.231.0 netmask 255.255.255.0 {

        option subnet-mask 255.255.255.0;

        option domain-name-servers 192.168.231.142;

        range dynamic-bootp 192.168.231.100 192.168.231.110;

        default-lease-time 21600;

        max-lease-time 43200;

        next-server 192.168.231.142;

//让客户端主机获取到IP地址后主动获取引导驱动文件,自行进入下一步的安装过程。

        filename  "pxelinux.0";

}

2.3启动DHCP服务,并添加到开机启动项

#service  dhcpd start

#chkconfig dhcpd on //设置开机启动

三、配置TFTP服务程序

3.1安装tftp服务

#yum install tftp-server

TFPT的运行和关闭是由xinetd网络守护进程来管理的,xinetd服务程序会同时监听系统的多个端口,然后根据用户请求的端口号调取相应的服务程序来相应用户的请求。

3.2修改配置文件

#vim /etc/xinetd.d/tftp

使用PXE+Kickstart无人值守安装服务

3.3启动服务

service xinetd start

添加到开机启动项

chkconfig xinetd on

四、配置SYSLinux服务程序

4.1安装SYSLinux

SYSLinux是一个用于提供引导加载的服务程序。而我们主要使用里面的引导文件,文件存在于/usr/share/syslinux

#yum install syslinux

4.2把SYSLinux提供的引导文件复制到TFTP服务程序的默认目录中,也就是前文提到的pxelinux.0,这样客户端就可以获取到引导文件了。另外,还需要CentOS6中的引导文件,这就要挂载光盘镜像(挂载到/media/cdrom),然后复制相应文件到TFTP服务程序的默认目录中。

#cd /var/lib/tftpboot

#cp /usr/share/syslinux/pxelinux.0 ./

#mount /dev/sr0 /media/cdrom

使其开机也能自动挂载

#vim /etc/fstab  添加一条

/dev/sr0              /media/cdrom            udf,iso9660 defaults    0 0

#cp /media/cdrom/images/pxeboot/{vmlinuz,initrd.img} ./

# cp /media/cdrom/isolinux/{vesamenu.c32,boot.msg} ./

4.3然后在TFTP服务程序的目录中新建pxelinux.cfg目录,并将系统光盘中的开机选项菜单复制到该目录中,命名为default

#mkdir pxelinux.cfg

#cp /media/cdrom/isolinux/isolinux.cfg pxelinux.cfg/default

#vim pxelinux.cfg/default

使用PXE+Kickstart无人值守安装服务

18 label linux

 19   menu label ^Install or upgrade an existing system

 20   menu default

 21   kernel vmlinuz

 22append initrd=initrd.img inst.stage2=ftp://192.168.231.142 ks=ftp://192.168.231.142/pub/ks.cfg quiet

五、配置VSFtpd服务程序

5.1光盘镜像通过FTP协议传输,因此要用到vsftpd服务程序。当然也可以用http服务程序。

#yum install vsftpd -y

#chkconfig vsftpd on

确认系统光盘镜像已经挂载到/media/cdrom目录,把目录中的光盘镜像文件全部服务制到vsftpd服务程序的目录中。

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

六、创建KickStart应答文件

6.1在安装系统过程中,经常需要手动填写一些参数,点击一些按钮,非常麻烦,如果把参数填好,形成一个应答文件,让系统自动执行,这该多好啊!而Kickstart就是这样一个应答文件,文件中包含系统安装过程中需要使用的选项和参数信息,系统可以自动调取应答文件的内容,从而实现无人值守安装系统。

这个文件就存在于root管理员的家目录中,名为anaconda-ks.cfg。

把这个文件复制到/var/ftp/pub/ks.cfg,以ks.cfg命名,并赋予文件可读权限。

#cp anaconda-ks.cfg /var/ftp/pub/ks.cfg

#chmod +r /var/ftp/pub/ks.cfg

#vim /var/ftp/pub/ks.cfg

ks.cfg文件内容

#platform=x86, AMD64, or Intel EM64T

#version=DEVEL

# Firewall configuration

firewall --disabled

# Install OS instead of upgrade

install

# Use network installation

url --url="ftp://192.168.231.142/var/ftp"

# Root password

rootpw --iscrypted $1$b8Xgsj2c$K5p5zn5zlUbaf69kdRz1A.

# System authorization information

auth  --useshadow  --passalgo=sha512

# Use graphical install

graphical

# System keyboard

keyboard us

# System language

lang en_US

# SELinux configuration

selinux --disabled

# Do not configure the X Window System

skipx

# Installation logging level

logging --level=info

# Reboot after installation

reboot

# System timezone

timezone --isUtc Asia/Shanghai

# Network information

network  --bootproto=dhcp --device=eth0 --onboot=on

# System bootloader configuration

bootloader --location=mbr

# Clear the Master Boot Record

zerombr

# Partition clearing information

clearpart --all --initlabel

# Disk partitioning information

part swap --fstype="swap" --size=1024

part / --fstype="ext4" --size=6967

part /boot --fstype="ext4" --size=200

 

%packages

@base

@compat-libraries

@debugging

@development

git

 

%end

如果感觉系统自带的应答文件参数较少,可以通过Yum软件仓库来安装system-config-kickstart软件包。这是一个图形换的Kickstart应答文件生成工具,可以根据需求生成相应文件,然后将文件放到/var/ftp/pub目录中,并修改名字为ks.cfg即可。详情可参考:https://blog.csdn.net/yuanfangPOET/article/details/82933018

七、虚拟机无人值守安装如下:

使用PXE+Kickstart无人值守安装服务

在此选择稍后安装系统

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

使用PXE+Kickstart无人值守安装服务

网卡设置为仅主机模式

使用PXE+Kickstart无人值守安装服务

然后开启此虚拟机就可以自行安装系统啦!