欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

荐 Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)

程序员文章站 2022-06-25 09:20:39
文章目录部署PXE远程安装服务搭建PXE远程安装服务器服务器的批量部署的优点PXE网络配置PXE装机服务器上面都是废话 实验直接搞起实现Kickstart无人值守安装关于Fkickstart准备安装应答文件实现批量自动装机部署PXE远程安装服务PXE由DHCP TFTP VSFTPD 三个服务构建而来搭建PXE远程安装服务器服务器的批量部署的优点规模化:同时装配多台服务器自动化:安装系统,配置各种服务远程实现:不需要光盘,U盘等安装介质PXE网络装机速度取决于网络的速度 带宽PX...

部署PXE远程安装服务

PXE由DHCP TFTP VSFTPD 三个服务构建而来

搭建PXE远程安装服务器

服务器的批量部署的优点

规模化:同时装配多台服务器

自动化:安装系统,配置各种服务

远程实现:不需要光盘,U盘等安装介质

PXE网络

装机速度取决于网络的速度 带宽

  • PXE,Pre-boot eXcution Environment

    预启动执行环境,在操作系统之前运行

  • 服务端

    • 运行DHCP服务,用来分配地址,定位引导程序

      DHCP 让客户端获取IP地址,能主动联网PXE服务器 配置中指向TFTP

    • 运行TFTP服务器,提供引导程序下载

      TFTP 放的都是文件系统,UDP 69端口,快速加载引导程序,引导程序的容量较小,默认配置文件指向FTP镜像位置

      FTP 文件系统 TCP 21连接服务 20传输数据 系统镜像存放位置

  • 客户端

    网卡支持PXE协议

    主板支持网络启动

配置PXE装机服务器

  • 基本部署过程
    • 准备centos 7 安装源(yum仓库)
    • 安装并启用TFTP服务
    • 提供Linux内核、PXE弓|导程序等
    • 安装并启用DHCP服务
    • 配置启动菜单

——————————————————————

  • 准备centos 7 安装源
    • CentOS 7安装源支持HTTP、FTP、 NFS等协议发布
[root@localhost ~]# yum -y install vsftpd
[root@localhost ~]# mkdir wvarl/ftp/centos7
[root@localhost ~]# cp -rf /media/cdrom/* /var/ftp/centos7/
[root@localhost ~]# systemctl start vsftpd
  • 安装并启用TFTP服务
    • 安装ftp-server软件包,启用tftp服务。
    • 配置文件位于/etc/xinetd.d/tftp
[root@localhost ~]# yum -y install tftp-server
[root@localhost ~]# vi /etc/xinetd.d/tftp
server_ args		= -S /var/lib/tftpboot
disable					= no		修改配置值
[root@localhost ~]# systemctl start tftp
[root@localhost ~]# systemctl enable tftp
  • 准备Linux内核、PXE引导程序
    • Linux内核、 初始化镜像文件分别为vmlinuz和initrd.img
    • 引导程序为pxelinux.0,由软件包syslinux提供
[root@localhost ~]# cd /media/cdrom/images/pxeboot
[root@localhost pxeboot]# cp vmlinuz initrd.img /arl/ib/tftpboot
[root@localhost ~]# yum -y install syslinux
[root@localhost ~]# cp /usr/share/syslinux/pxelinux.0 larlibtftpboot
  • DHCP服务的PXE设置
[root@localhost ~]#yum install dhcp -y
[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
 subnet 192.168.100.0 netmask 255.255.255.0 {
          range 192.168.100.20 192.168.100.30;
          option routers 192.168.100.100;
          option domain-name-servers 6.6.6.6;
          next-server 192.168.100.100;				#指定TFTP服务器地址
          filename "pxelinux.0";		filename:	#指定要下载的引导程序文件
  }
[root@localhost ~]#systemctl start dhcpd
[root@localhost ~]#systemctl enable dhcpd

上面都是废话 实验直接搞起

使用VMware软件中创建centos 7系统的裸机
服务端设置双网卡
一个仅主机模式用来给客户端装机
一个原本不变用来安装yum包

设置添加的网卡IP地址,关闭防火墙
[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=192.168.110.100
NETMASK=255.255.255.0
[root@localhost network-scripts]# systemctl restart network
[root@localhost network-scripts]# iptables -F
[root@localhost network-scripts]# setenforce 0

设置DHCP服务
[root@localhost network-scripts]# yum install dhcp* -y
[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]# vim /etc/dhcp/dhcpd.conf 

subnet 192.168.100.0 netmask 255.255.255.0 {
        range 192.168.100.20 192.168.100.30;
        option routers 192.168.100.100;
        option domain-name-servers 8.8.8.8;
        next-server 192.168.100.100;		#指定TFTP服务器地址
        filename "pxelinux.0";			#filename:指定要下载的引导程序文件
}

设置TFTP--配置安装tftp-server
[root@localhost network-scripts]# yum install tftp-server -y
[root@localhost network-scripts]# 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 network-scripts]# vim /etc/xinetd.d/tftp			#编辑配置文件

 disable                 = no   #改成no   wq保存退出
[root@localhost network-scripts]# cd /var/lib/tftpboot/    #进入站点
[root@localhost tftpboot]# ls
空的

安装并设置syslinux
[root@localhost tftpboot]# yum install syslinux -y   	#安装syslinux
[root@localhost tftpboot]# rpm -ql syslinux | grep pxelinux.0
/usr/share/syslinux/gpxelinux.0
/usr/share/syslinux/pxelinux.0
[root@localhost tftpboot]# cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot		##将syslinux中的pxelinux.0复制过来
[root@localhost tftpboot]# yum install vsftpd -y				#安装vsftpd
[root@localhost tftpboot]# rpm -ql vsftpd 		#查看站点
    ...省略内容
/var/ftp			#站点
/var/ftp/pub
[root@localhost tftpboot]# mkdir /var/ftp/centos7			#创建centos7目录用来挂载
[root@localhost tftpboot]# cd /var/ftp/
[root@localhost ftp]# ls
centos7  pub
[root@localhost ftp]# mount /dev/sr0 /var/ftp/centos7/		#挂载
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ftp]# ls centos7/     #查看centos7文件
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 ftp]# cd centos7/images/
[root@localhost images]# cd pxeboot/
[root@localhost pxeboot]# ls
initrd.img  TRANS.TBL  vmlinuz
[root@localhost pxeboot]# cp initrd.img vmlinuz /var/lib/tftpboot/		#将文件复制到tftp站点中

设置默认配置文件
[root@localhost pxeboot]# cd /var/lib/tftpboot/		
[root@localhost tftpboot]# ls
initrd.img  pxelinux.0  vmlinuz
[root@localhost tftpboot]# mkdir pexlinux.cfg		#创建pxelinux配置文件目录
[root@localhost tftpboot]# cd pexlinux.cfg/
[root@localhost pexlinux.cfg]# vim default		#创建并编辑默认配置文件
输入数据
default auto
prompt 1

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

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

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

荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)

实现Kickstart无人值守安装

关于Fkickstart

  • kickstart无人值守技术
    • 创建应答文件,预先定义好各种安装设置
    • 免去交互设置过程,从而实现全自动化安装

准备安装应答文件

  • 应答文件的来源
    • 编辑CentOS 7系统中现有的应答文件
      /root/anaconda-ks.cfg
    • 使用system-config-kickstart工具创建新的应答文件
      需要安装system-config-kickstart软件包

实现批量自动装机

[root@localhost ~]# yum install system-config-kickstart -y		#安装kickstart工具

荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)
荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)

荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)

复制33——56行的内容
[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 ~]# ls
anaconda-ks.cfg  initial-setup-ks.cfg  ks.cfg  公共  模板  视频  图片  文档  下载  音乐  桌面
[root@localhost ~]# vim ks.cfg 				#粘贴到刚刚保存的文件

荐
                                                        Linux网络服务——PXE高效批量网络装机(PXE远程安装与kickstart无人值守安装)

[root@localhost ~]# vim /var/lib/tftpboot/pxelinux.cfg/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 linux text
        kernel vmlinuz
        append text initrd=initrd.img method=ftp://192.168.100.100/centos7

label linux rescue
        kernel vmlinuz
        append rescue initrd=initrd.img method=ftp://192.168.100.100/centos7
        
[root@localhost ~]# mv ks.cfg /var/ftp/		
[root@localhost ~]# ls /var/ftp/
centos7  ks.cfg  pub
[root@localhost ~]# systemctl restart dhcpd			#重启服务
[root@localhost ~]# systemctl restart tftp
[root@localhost ~]# systemctl restart vsftpd

本文地址:https://blog.csdn.net/CN_PanHao/article/details/107320852