栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

PXE高效批量自动网络装机

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PXE高效批量自动网络装机

文章目录
  • PXE高效批量自动网络装机
    • 1、什么是pxe
    • 2、实现过程
    • 3、搭建过程
    • 4、pxe 优点
    • 5、操作过程
    • 6.kickstart 无人值守安装
    • 总结

PXE高效批量自动网络装机 1、什么是pxe

PXE 的全称是 preboot execute environment它其实是Intel在很久以前提出来的一项用于通过网络来引导系统的标准。允许客户机通过网络从远程服务器上下载引导镜像,并加载安装文件或者整个操作系统。

pxe是通过网卡引导启动

实现的硬件条件

  1. BIOS支持

  2. 网卡支持(现在基本都已支持)

  3. 需要在bios中开启开关,服务器一般没打开(bmc界面里打开)

  4. 网络中有一台 DHCP 服务器以便为客户机自动分配地址、指定引导文件位置

  5. 服务器通过 tftp服务(简单文件传输协议)来提供系统内核和引导镜像的下载

2、实现过程
  1. 网卡需要查找相关的dhcp服务器(获取地址时间)

  2. 找到后dhcp服务器提供ip地址,和引导程序(boot loader)的地址 还提供给客户机TFTPserver地址(dhcp本身不提供tftp服务)

  3. 网卡使用tftp客户端吧引导程序加载到内存中来

  4. bios执行引导程序

  5. 引导程序会去TFTP去查找配置文件

  6. 根据配置文件去引导安装系统

  7. 系统安装过程

3、搭建过程

PXE 远程安装服务器集成了 CentOS 7 安装源、TFTP 服务、DHCP 服务,能够向客户机裸机发送 PXE 引导程序、Linux 内核、启动菜单等数据,以及提供安装文件。

4、pxe 优点
  1. 规模化:同时装配多台服务器
  2. 自动化:安装系统、配置各种服务
  3. 远程实现:不需要光盘、U盘等安装介质
5、操作过程

前置配置

添加一个网卡,设置为仅主机模式

将ens33的内容复制给ens37

配置ens37

[root@localhost network-scripts]# vim ifcfg-ens37

配置的IP地址要与自己主机的地址在一个网段

重启服务并测试

大概过程

  1. 分配给同一局域网内新加机器的地址(配置文件)
  2. tftp服务端开启
  3. 安装syslinux 取得 pxelinux.0 文件、和vsftpd服务
  4. 挂载安装源(mount /dev/sr0 /var/ftp/centos7)
  5. 将四大文件拷入 (/var/lib/tftpboot initrd.img pxelinux.0 pxelinux.cfg/default vmlinuz
  6. 将服务开启,关闭防火墙,selinux
[root@localhost ~]# yum install dhcp -y
#安装dhcp服务

[root@localhost network-scripts]# cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
#复制并覆盖

[root@localhost network-scripts]# cd /etc/dhcp/
[root@localhost dhcp]# vim dhcpd.conf 
subnet 192.168.100.0 netmask 255.255.255.0 {
  range 192.168.100.10 192.168.100.50;
  option routers 192.168.100.1;
  next-server 192.168.100.100;
  filename "pxelinux.0";
}
#修改文件

[root@localhost dhcp]# yum install tftp-server -y
#安装tftp-server服务

[root@localhost dhcp]# rpm -ql tftp-server 
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot
[root@localhost dhcp]# vim /etc/xinetd.d/tftp 

 disable                 = no

#修改这一项

[root@localhost dhcp]# yum install syslinux -y
#安装syslinux服务

[root@localhost dhcp]# rpm -ql syslinux |grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0

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

[root@localhost dhcp]# rpm -ql tftp-server 
/etc/xinetd.d/tftp
/usr/lib/systemd/system/tftp.service
/usr/lib/systemd/system/tftp.socket
/usr/sbin/in.tftpd
/usr/share/doc/tftp-server-5.2
/usr/share/doc/tftp-server-5.2/CHANGES
/usr/share/doc/tftp-server-5.2/README
/usr/share/doc/tftp-server-5.2/README.security
/usr/share/man/man8/in.tftpd.8.gz
/usr/share/man/man8/tftpd.8.gz
/var/lib/tftpboot

[root@localhost dhcp]# ls /var/lib/tftpboot/
pxelinux.0
[root@localhost dhcp]# yum install vsftpd -y


[root@localhost dhcp]# cd /var/ftp/
[root@localhost ftp]# ls
pub
[root@localhost ftp]# mkdir centos7
[root@localhost ftp]# mount /dev/sr0 centos7/
mount: /dev/sr0 写保护,将以只读方式挂载

[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost centos7]# cd images/
[root@localhost images]# ls
efiboot.img  pxeboot  TRANS.TBL
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz

[root@localhost tftpboot]# mkdir pxelinux.cfg
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# vim default
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7

label text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
#输入以上内容

[root@localhost pxelinux.cfg]# systemctl start dhcpd
[root@localhost pxelinux.cfg]# systemctl start vsftpd
[root@localhost pxelinux.cfg]# systemctl start  tftp
[root@localhost pxelinux.cfg]# 
[root@localhost pxelinux.cfg]# systemctl stop firewalld.service
[root@localhost pxelinux.cfg]# setenforce 0
#启动这些服务并关闭防火墙

使用一台机器进行测试

此时是半自动化安装,等待结束后仍然需要手动操作

不用安装,继续完成后面的操作

6.kickstart 无人值守安装

前置安装

[root@localhost pxelinux.cfg]# yum install system-config-kickstart -y

基本配置

安装方法

引导程序

分区信息

添加分区

配置网卡

继续进行配置

[root@localhost ftp]# cd
[root@localhost ~]# 
[root@localhost ~]# ls
anaconda-ks.cfg       公共  视频  文档  音乐
initial-setup-ks.cfg  模板  图片  下载  桌面

[root@localhost ~]# vim anaconda-ks.cfg 

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end

#复制上述内容

[root@localhost ~]# cd /var/ftp/
[root@localhost ftp]# ls
centos7  ks.cfg  pub
[root@localhost ftp]# vim ks.cfg 

%packages
@^gnome-desktop-environment
@base
@core
@desktop-debugging
@development
@dial-up
@directory-client
@fonts
@gnome-desktop
@guest-agents
@guest-desktop-agents
@input-methods
@internet-browser
@java-platform
@multimedia
@network-file-system-client
@networkmanager-submodules
@print-client
@x11
chrony
kexec-tools

%end

#粘贴进去
[root@localhost ftp]# cd /var/lib/tftpboot/
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  pxelinux.cfg  vmlinuz
[root@localhost tftpboot]# cd pxelinux.cfg/
[root@localhost pxelinux.cfg]# ls
default
[root@localhost pxelinux.cfg]# vim default 
default auto
prompt 1

label auto
        kernel vmlinuz
        append initrd=initrd.img method=ftp://192.168.100.100/centos7 
        ks=ftp://192.168.100.100/ks.cfg#添加这句话
label text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7

将之前没安装完成的机器重启,开始自动安装

总结

PXE的操作并不算复杂,只是安装了几个包,修改了几条配置文件,做完之后就可以全自动批量安装机器。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/334985.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号