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

部署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

在这里插入图片描述

实现Kickstart无人值守安装

关于Fkickstart

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

准备安装应答文件

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

实现批量自动装机

[root@localhost ~]# yum install system-config-kickstart -y		#安装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 				#粘贴到刚刚保存的文件

在这里插入图片描述

[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

猜你喜欢

转载自blog.csdn.net/CN_PanHao/article/details/107320852