您的位置:首页 > 其它

PXE+kickstart实现无人值守系统批量部署

2017-10-26 16:56 981 查看
一、理论知识

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

Kickstart :是一种无人值守的安装方式,即把整个安装过程中要回答或做的事全部体现在应答文件ks.cfg文件中。只需告诉安装程序从何处取ks.cfg文件即可,等安装完毕,安装程序会根据ks.cfg文件中的设置重启系统,并结束安装。

• Kickstart 安装选:包含语言,防火墙,密码,网络,分区的设置等;

• %Pre 部分:安装前解析的脚本,通常用来生成特殊的ks配置,比如由一段程序决定磁盘分区等;

• %Package 部分:安装包的选择,可以是 @base 这样的组的形式,也可以是这样 http-* 包的形式;

• %Post 部分:安装后执行的脚本,通常用来做系统的初始化设置。比如启动的服务,相关的设定等。

三、工作过程

PXE的工作过程:

1、网卡里有内置的dhcp客户端程序和tftp客户端程序,当把网卡当做第一顺序启动时,会激活pxe功能,客户端基于dhcp尝试发起广播请求(端口:67);

2、当dhcp服务器收到请求后给它分配一个地址以及网关等各种网络属性进行配置;dhcp服务器还可以告诉网卡,网络中有tftp文件服务器,指令是next-server指定要找的tftp服务器,并且告诉网卡下载tftp服务器里的pxelinux.0(类似于bootloader提供引导界面);

3、客户端访问tftp服务器下载pxelinux.0并执行;

4、客户端后续下载内核和安装文件。

PXE+Kickstart的工作过程:

1、客户端向dhcp服务器发送ip请求;

2、dhcp服务器提供ip应答;

3、客户端向tftp服务器请求下载启动文件pxelinux.0;

4、tftp服务器响应请求并传输启动文件;

5、客户端向tftp服务器请求下载自动应答 ks 文件;

6、客户端获取 ks 文件并安装操作系统。

二、系统环境

实验环境:VMware Workstation 12

系统平台:CentOS 7.2 (最小化安装)

网络模式:桥接模式(和宿主机在同一个局域网)

DHCP / TFTP服务器 IP :172.16.10.22

关闭防火墙:iptables firewalld SELINUX=disabled

三、服务端准备工作

yum仓库:

[root@server ~]# cat /etc/yum.repos.d/yum.repo

[development]

name=yum

baseurl=ftp://172.16.10.22/centos7u2

enabled=1

gpgcheck=0

生成ks.cfg:

方法一: 在已经安装好的linux的root家目录找到anaconda_ks.cfg(这个ks文件就是在安装linux后,根据用户的安装选项自动生成的)

添加:#Use network installation

url –url=”ftp://172.16.10.22/centos7u2”

方法二:生成ks.cfg文件需要system-config-kickstart 工具,而此工具依赖于X Windows,所以我们需要安装X Windows 和Desktop 并重启系统,操作如下:

[root@server ~]# yum groupinstall -y “X Window System”

[root@server ~]# yum groupinstall -y Desktop

[root@server ~]# reboot

四、服务端相关配置

火墙

[root@server ~]# systemctl stop firewalld

[root@server ~]# systemctl disable firewalld

[root@server ~]# setenforce 0

[root@server ~]# sed -ri ‘/^SELINUX/c\SELINUX=disabled’ /etc/selinux/config

yum

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

[root@server ~]# cat /etc/yum.repos.d/yum.repo

[development]

name=yum

baseurl=ftp://172.16.10.22/centos7u2

enabled=1

gpgcheck=0

dhcp tftp-server vsftpd xinetd syslinux

[root@server ~]# yum -y install dhcp tftp-server vsftpd xinetd syslinux

[root@server ~]# mkdir /var/ftp/centos7u2”

[root@server ~]# mount /dev/cdrom /var/ftp/centos7u2”

[root@server ~]# cd /var/ftp/

[root@server ftp]# ls

centos7u2 centos7u2.cfg

dhcp服务文件配置

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

subnet 172.16.10.0 netmask 255.255.255.0 {

range 172.16.10.10 172.16.10.20;

next-server 172.16.10.22 ;

filename “pxelinux.0”;

}

[root@server ~]# systemctl start dhcpd

[root@server ~]# syst
4000
emctl enable dhcpd

tftp服务文件配置

[root@server ~]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot

[root@server ~]# cp -rf /var/ftp/centos7u2/isolinux/* /var/lib/tftpboot/

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

[root@server ~]# cp /var/lib/tftpboot/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

[root@server ~]# sed -ri ‘/x20x86_64 quiet/c\append initrd=initrd.img ks=ftp://172.16.10.22/centos7u2.cfg inst.repo=ftp://172.16.10.22/centos7u2’ /var/lib/tftpboot/pxelinux.cfg/default

[root@server ~]# sed -ri ‘/disable/c\disable = no’ /etc/xinetd.d/tftp

[root@server ~]# systemctl restart xinetd

[root@server ~]# systemctl enable xinetd

[root@server ~]# systemctl restart vsftpd

[root@server ~]# systemctl enable vsftpd

五、安装虚拟机测试阶段:

问题1:



解决方式:更改测试机的网络连接方式 虚拟机-设置-网络适配器



问题2:



解决方式:找不到启动项引导文件 查看dhcp状态



ok

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: