利用 pxe +dhcp+ tftp+ http+kickstart 实现批量部署linux系统

为什么要实现批量部署

在企业里,要管理很多台服务器,要管理这些服务器,你首先得给电脑都装上linux系统,那么,难道要一台一台手动安装好几千台服务器?

当然不是,我们只需要一台已经做好相应配置的主机去批量安装其他主机系统就可以了。

PXE是什么

  1. 预启动执行环境(Preboot eXecution Environment,PXE)也被称为预执行环境,提供了一种使用网络接口(Network Interface)启动计算机的机制。这种机制让计算机的启动可以不依赖本地数据存储设备(如硬盘)或本地已安装的操作系统 。

  2. 由Intel和Systemsoft公司于1999年9月20日公布的技术

  3. C/S的工作模式

  4. PXE客户端会调用网际协议(IP)、用户数据协议(UDP)、动态主机分配协议(DHCP)、小型文件传输协议(TFTP)、HTTP等网络协议。
    PXE 协议大致上结合了DHCP和TFTP,虽然都有在两者上面有改进。DHCP用于查找合适的启动伺服器,TFTP用于下载初始引导程序和附加文件。

PXE 工作模式的原理

思路:

服务器上的网卡是必须的设备,从网卡启动,访问别人的资源,进行自动安装。

在这里插入图片描述
注意:
为什么主机2要选择dhcp获取ip?
因为主机2只有网卡,并没有安装系统,要想静态获取ip,必须使用软件。

实现步骤

1.配置本地yum源
2.yum install httpd dhcp system-config-kickstart -y

资源的部署

共享镜像资源

http模块

mkdir /var/www/html/rhel7.0

在这里插入图片描述

systemctl start httpd systemctl stop firewalld

在这里插入图片描述

mount /镜像资源 /var/www/html/rhel7.0 #临时挂载

在这里插入图片描述

vim /etc/rc.d/rc.local#设置永久挂载,里面写mount...
chmod +x /etc/rc.d/rc.local
/etc/rc.d/rc.local

共享ks配置资源

system-config-kickstart 模块

mkdir /var/www/html/ks

system-config-kickstart #打开图形化界面,进行相应设置 其他步骤不变。第二步,选择的源是HTTP 172.25.254.110 (本机目录) 目录:/rhel7.0
在这里插入图片描述
在最后一步,设置安装系统后自动配置好yum源

cat >/etc/yum.repos.d/westos.repo <<EOF
[rhel7.0]
name=rhel7.0
baseurl=http://172.25.254.110/rhel7.0
gpgcheck=0

EOF

在这里插入图片描述

保存文件

/var/www/html/ks/ks1.cfg(名字可以随便起)
在这里插入图片描述
编辑文件

vim /var/www/html/ks/ks1.cfg
在这里插入图片描述

ksvalidator /var/www/html/ks/westos.cfg 对文件进行语法检测

在这里插入图片描述
此处有报错,修改之后,再检测没有错误。

程序的准备

dhcp模块

cd /etc/dhcp/
cat /dhcpd.conf
cp ....example  /dhcpd.conf
vim      dhcpd.conf
改删的删,该添的添

之前已经做过,这里不再赘述。

systemctl restart dhcp

此处操作不影响实验,是为了理解实验。可以不做。

cd /var/www/html/rhel7.0
在这里插入图片描述
cd isolinux/在这里插入图片描述vim isolinux.cfg

在这里插入图片描述

在这里插入图片描述
其实两个文件本身在 /var/www/html/rhel7.0/isolinux中也是有的。

所以安装系统时需要的文件都在isolinux目录

回到PEX工作原理,主机1在响应主机2的dhcp请求时,让它给2的file文件的内容是让主机2去读取isolinux目录里的内容,即可实现安装。
而isolinux目录的内容,是由PXE环境去引导读取的。

pxe模块

yum search pxelinux yum install syslinux.x86_64 -y #此程序包括了pxe环境执行时的一套组件包

在这里插入图片描述查看syslinux的配置信息

在这里插入图片描述less /usr/share/doc/syslinux-4.05/pxelinux.txt #分页浏览
在这里插入图片描述在这里插入图片描述

tftp模块

yum search tftp #发布资源时所需要的软件,之所以不用apache,因为pxelinux.0头文件只读tftp服务。是开发时设置的。
在这里插入图片描述
yum install tftp-server.x86_64 -y
在这里插入图片描述在这里插入图片描述
sytemctl start tftp sytemctl enable tftp

实验环境到这里就部署好了,接下来是操作环节。

注意:
pxelinux就是之前一直所说的dhcp分配ip时,所带的那个"file"。
pxelinux.0的类型是数据,作用是读取tftp目录里的默认pxelinux.cfg/default文件。

但是安装系统时,需要读取isolinux下的isolinux.cfg文件,因此只需把此文件复制到pxelinux目录里,并且重命名为default。
isolinux.cfg就会被pxelinux.0自动读取

最后实现的具体步骤

1

rpm -ql tftp-server 查看tftp的配置文件

在这里插入图片描述
2.

cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot #这两个文件都是安装了各自软件之后自己产生的。 拷贝pxelinux.0文件到tftpboot目录,目的是让主机2 得到ip的同时得到pxelinux.0,让pxelinux.0引导它下一步去哪里

cp /var/www/html/rhel7.0/isolinux/* /var/lib/tftpboot # /表示重命名为default 此步骤目的是拷贝镜像资源的配置文件到tftp服务的配置目录下,让主机2再pxe引导程序的引导下知道自己的内核等安装信息
在这里插入图片描述3.
mkdir /var/lib/tftpboot/pxelinux.cfg 创建此目录,因为pxelinux.0默认其为配置目录,创建pxelinux.cfg目录,固定目录名称
在这里插入图片描述
4.
cp /var/lib/tftpboot/isolinux.cfg pxelinux.cfg/default 文件名称必须为default,这是pxe程序默认读取的文件,内容是isolinux.cfg文件的。

5

rpm-ql syslinux | grep pxelinux.0 查询pxelinux.0文件所在目录

在这里插入图片描述
6.vim /etc/dhcp/dhcpd.conf
在这里插入图片描述
pxelinux.0会告诉主机2 ,下一步应该去读取 var/lib/tftboot/pxelinux.cfg/default文件,default所带的内容就是isolinux.cfg的内容。

systemctl restart dhcpd

7

vim /var/lib/tftpboot/pxelinux.cfg/default #编辑default文件的内容。

第65行:代替了用kickstart安装时,手动按键tab,只读ks.cfg和iso镜像资源的过程。自动完成安装。
在这里插入图片描述

至此,实验步骤完成。

测试

新建一个虚拟机:virt-manager 选择pxe启动方式
在这里插入图片描述直接forward就可以了。

(或者不新建虚拟机:选择boot options 从网卡启动 再启动)

如何更改安装页面的相应参数

vim /var/lib/tftpboot/pxelinux.cfg/default

  1. 第2行:更改开机时间的秒数 为2
    timeout 20
  2. 第11行:更改标题的名字
    menu title xxxxxxx
  3. 第61行左右:更改选择项的先后位置
    若想让第一个为默认,则把menu default放在第一个label 下

在这里插入图片描述
在这里插入图片描述

注意:

  1. 安装过程中提示kickstart文件设置有误时,可直接使用
    system-config-kickstart westos.cfg 进入图形化设置界面更改设备。

  2. 一般服务器出厂时,会设置默认启动方式为网卡启动,后面自己设置成从硬盘启动。我们通过usp电源,通过远程ssh方式开启,开启之后由于我的主机中有相应设置,服务器就会自动安装系统了。全程自动化。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值