基于PXE自动化安装linux系统

5 篇文章 0 订阅
5 篇文章 0 订阅

基于PXE自动化安装linux系统

可以通过光盘人工安装几十台linux系统,但是如果上百台甚至更多呢?所以下面将进行通过网卡引导基于PXE的自动化安装linux系统的实验。

实验前提:网卡功能需带有dhcp和tftp客户端功能

实验原理:
(1)通过dhcp功能向dhcp服务器获取IP地址以及tftp服务器地址和启动的引导程序pxelinux.0(功能相当于grub)
(2)继续向tftp服务器获取启动时的必要文件:菜单页面isolinux.cfg(在tftp路径下的菜单命名为default)和启动内核vmlinuz以及initrd等
(3)在isolinux.cfg(default)中提前配置好的kickstart文件地址(此处通过配置本地http获取)
(4)kickstart中定义启动时安装软件安装包的yum源路径此(处通过配置本地http获取)
(5)依赖启动安装向导和yum源路径即可自动安装所选择的操作系统版本

实验步骤:
(1)yum -y install dhcp tftp-server httpd安装所需要的服务,并设置为开机启动systemctl enable --now httpd dhcpd tftp,但是提示报错

[root@route2/var/lib/tftpboot]$systemctl enable --now  httpd dhcpd tftp
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.
Created symlink from /etc/systemd/system/sockets.target.wants/tftp.socket to /usr/lib/systemd/system/tftp.socket.
Job for dhcpd.service failed because the control process exited with error code. See "systemctl status dhcpd.service" and "journalctl -xe" for details.

原因:这是因为dhcp配置文件/etc/dhcp/dhcpd.conf中的配置是空的,可以通过复制摸板进行修改即可
其中:
range:表示dhcp的Ip范围
option routers:指定网关
next-server:指向tftp服务器地址
filename:获取tftp下的文件

[root@route2/var/lib/tftpboot]$cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example  /etc/dhcp/dhcpd.conf 
cp: overwrite ‘/etc/dhcp/dhcpd.conf’? y
[root@route2/var/lib/tftpboot]$vim /etc/dhcp/dhcpd.conf
option domain-name "thomas.org";
option domain-name-servers 114.114.114.114,8.8.8.8;
default-lease-time 10000;
max-lease-time 120000;
log-facility local7;
subnet 192.168.7.0  netmask 255.255.255.0 {
        range 192.168.7.100 192.168.7.200;
        option routers 192.168.7.2;
        filename "pxelinux.0";
        next-server 192.168.7.70;
}

(2)配置tftp文件目录下/var/lib/tftpboot的文件,获取启动时必要的相关文件。
启动必要文件列表如下:

.
├── 6
│   ├── initrd.img
│   └── vmlinuz
├── 7
│   ├── initrd.img
│   └── vmlinuz
├── 8
│   ├── initrd.img
│   └── vmlinuz
├── ldlinux.c32
├── libcom32.c32
├── libutil.c32
├── menu.c32
├── pxelinux.0
└── pxelinux.cfg
    └── default

pxelinxu.0:网卡引导驱动程序,也是第一个需要运行的程序
6、7、8:三个目录分别存放的是对应操作系统版本的启动内核
pxelinux.cfg:这是一个目录
default:该文件在pxelinux.cfg目录下,相当于grub中stage2阶段的配置文件,分别创建对应6、7、8、三个版本的菜单
menu.c32:启动时的菜单驱动程序,用来显示default中定义的菜单选项
ldlinux.c32 、libutil.c32、libcom32.c32:centos8启动menu.c32前必须先加载的文件,centos6和7启动时则不需要这三个文件

default内容如下(参考光盘下的isolinux/isolinu.cfg即可):

default menu.c32
timeout 600

menu title autuinstall

label linux centos 8 mini
  menu label Install CentOS ^8 mini
  kernel 8/vmlinuz
  append initrd=8/initrd.img   ks=http://192.168.7.3/ksdir/ks8-mini.cfg       

label linux centos7 mini
  menu label Install CentOS ^7 mini
  kernel 7/vmlinuz
  append initrd=7/initrd.img   ks=http://192.168.7.3/ksdir/ks7-mini.cfg

label linux centos6 mini
  menu label Install CentOS ^6 mini
  kernel 6/vmlinuz
  append initrd=6/initrd.img   ks=http://192.168.7.3/ksdir/ks6-mini.cfg

label local
  menu default
  menu label Boot from ^local driv
  localboot 0xffff

default menu.c32:默认加载菜单的文件为menu.c32
timeout 600:设置倒计时,单位为0.1s
menu title autuinstall:大标题
label: 设置标签
menu label:菜单选项
kernel 8/vmlinuz:相对tftpboot路径下启动内核的文件路径
append initrd=7/initrd.img:相对tftpboot路径下启动内核的文件路径
ks=http://192.168.7.3/ksdir/ks8-mini.cfg :kickstart路径,此处通过http方式获取
menu default:进入菜单时的默认选项
localboot 0xffff:表明启动当前已装系统而不是重新安装系统
效果图如下:
在这里插入图片描述

(3)配置ks路径:上述已经安装好httpd服务,httpd的服务路径为/var/www/html/,在此路径下创建ksdir目录,并将三个版本的ks启动文件放入
在这里插入图片描述
kickstart文件中指定了安装时的源,而yum源也是根据http方式配置的epel源。
利用system-config-kickstart配置ks文件:https://www.linuxidc.com/Linux/2018-07/153260.htm
kickstart配置解释:https://blog.csdn.net/jiajiren11/article/details/79882254
在这里插入图片描述
(5)在此基于PXE的自动化安装部署实验已经完成,只要在电脑启动时选择网卡引导启动即可,根据菜单选项安装所需的操作系统版本。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值