PXE安装部署CentOS7.4

版权声明:路漫漫其修远兮,吾将上下而求索。 https://blog.csdn.net/Happy_Sunshine_Boy/article/details/88635839

1.环境准备

  • 操作系统:CentOS Linux release 7.4.1708 (Core)
  • 光盘镜像:CentOS-7-x86_64-Everything-1708.iso
  • 安装工具:kickstart + dhcp + tftp-server + xinetd+ httpd
  • VMware虚拟机

1.1 服务器禁用SELinux,然后进行重启操作

  • 查看SELinux状态:sestatus
    在这里插入图片描述
  • 关闭:vim /etc/sysconfig/selinux
    在这里插入图片描述

1.2 关闭防火墙,设置开机不启动

systemctl status firewalld		# 查看防火墙的状态
systemctl stop firewalld			# 关闭防火墙
systemctl disable firewalld		# 设置开机不启动
systemctl is-enabled firewalld	# 查看是否设置开机启动

1.3 软件安装

yum install -y httpd dhcp tftp-server xinetd syslinux system-config-kickstart 
yum groupinstall -y 'X Window System'
rpm -q httpd dhcp tftp-server xinetd syslinux system-config-kickstart

在这里插入图片描述

  • 重启:reboot
    在这里插入图片描述

2.软件配置

2.1 DHCP服务配置

2.1.1 修改DHCP配置文件

  • 拷贝文件:
cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf

在这里插入图片描述
修改文件:

vim /etc/dhcp/dhcpd.conf
egrep -v "^#|^$" /etc/dhcp/dhcpd.conf

在这里插入图片描述

2.1.2 启动DHCP服务

systemctl status dhcpd		    # 查看dhcp的状态
systemctl start dhcpd		        # 启动dhcp
systemctl enable dhcpd		    # 设置开机启动
systemctl is-enabled dhcpd	    # 查看是否设置开机启动

在这里插入图片描述

2.1.3 DHCP服务端口查看

ss -nulp | grep dhcpd

在这里插入图片描述

2.2 HTTP服务配置

2.2.1 目录建立及光盘挂载

  • 创建目录:mkdir -pv /var/www/html/CentOS7
    在这里插入图片描述
  • 在/mnt目录下创建/cdrom
    在这里插入图片描述
  • 查看光盘镜像挂载位置,进入/dev目录查找光驱,一般是cdrom系统上查询结果:
    在这里插入图片描述
  • 可见系统上用sr0表示光驱,然后就可以挂载了
  • 一步挂载:
mount -o loop /dev/sr0 /var/www/html/CentOS7/
  • 或者:
mount -o loop /dev/sr0 /mnt/cdrom/
  • 如果遇到以下问题,则说明镜像没有挂在启动
    在这里插入图片描述
    在这里插入图片描述
  • 挂载成功
    在这里插入图片描述
  • 挂载:mount --bind /mnt/cdrom/ /var/www/html/CentOS7/
    在这里插入图片描述

2.2.2 启动HTTP服务,并设置为开机启动

systemctl status httpd		    # 查看httpd的状态
systemctl start httpd		    # 启动httpd
systemctl enable httpd		# 设置开机启动
systemctl is-enabled httpd	# 查看是否设置开机启动

在这里插入图片描述

2.3 TFTP服务配置

2.3.1 xinetd配置

  • 修改:vim /etc/xinetd.d/tftp
    在这里插入图片描述

2.3.2 启动tftp.socket服务,并设置为开机启动

systemctl start tftp.socket			# 启动tftp.socket
systemctl status tftp.socket		    # 查看状态
systemctl enable tftp.socket		# 设置开机启动
systemctl is-enabled tftp.socket	# 查看是否设置为开机启动

在这里插入图片描述

2.3.3 启动tftp.service服务,并设置为开机启动

systemctl start tftp.service		    # 启动tftp.service
systemctl status tftp.service		# 查看状态
systemctl enable tftp.service		# 设置开机启动
systemctl is-enabled tftp.service	# 查看是否设置为开机启动

在这里插入图片描述

  • 查看端口:ss -unlp | grep 69
    在这里插入图片描述

2.3.4 启动xinetd服务,并设置为开机启动

systemctl start xinetd		    # 启动xinetd
systemctl status xinetd		# 查看状态
systemctl enable xinetd		# 设置开机启动
systemctl is-enabled xinetd	# 查看是否设置为开机启动

3.配置文件

需要导入TFTP服务器的主要文件有:

  1. 引导文件:pxelinux.0
  2. 内核文件:vmlinuz initrd.img
  3. 引导菜单:isolinux.cfg – 开机后选择启动项的菜单文

3.1 引导文件pxelinux.0

  • 由软件包syslinux生成,安装syslinux软件包
cp /usr/share/syslinux/pxelinux.0 /var/lib/tftpboot/

在这里插入图片描述

3.2 导入内核及菜单文件:vmlinuz initrd.img

cp /mnt/cdrom/images/pxeboot/{vmlinuz,initrd.img} /var/lib/tftpboot/

在这里插入图片描述

  • 引导菜单配置文件:isolinux.cfg
  • 系统自带的两种窗口模块之一:vesamenu.c32
  • 窗口提示信息文件:boot.msg
  • 窗口背景图片:splash.png
cp /mnt/cdrom/isolinux/{vesamenu.c32,boot.msg,splash.png} /var/lib/tftpboot/
cp /usr/share/syslinux/{chain.c32,mboot.c32,menu.c32,memdisk} /var/lib/tftpboot/

在这里插入图片描述

  • 新建pxelinux.cfg文件夹:mkdir /var/lib/tftpboot/pxelinux.cfg
    在这里插入图片描述

3.3 安装引导文件CentOS7.cfg文件

  • Xshell下安装system-config-kickstart
  • 下载安装Xmanager(官网下载试用)
  • 安装好Xmanager,选中10.180.210.217,右击,点击“属性”,选取“隧道”进行配置

在这里插入图片描述

  • 在控制台执行:
system-config-kickstart

出现以下窗口,进行配置,设置语言,键盘,时区,root密码,安装完毕后重启等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • CentOS7.cfg配置文件内容
#platform=x86, AMD64, or Intel EM64T
#version=DEVEL
# Install OS instead of upgrade
install                                                   ## 告知这是一次安装程序
# Keyboard layouts
keyboard 'us'                                             ## 设置系统键盘类型为us
# Root password
rootpw --iscrypted $1$gL0CThj6$3LwF2Dh5oqg3Sz9kU9qvm.     ## 加密的root密码
# Use network installation
url --url="http://192.168.120.11/CentOS7"                 ## 通过ftp或http从远程服务器安装的地址
# System language
lang en_US                                                ## 设置安装过程中使用的语言字符集
# System authorization information
auth  --useshadow  --passalgo=sha512                      ## 系统认证信息,这里要是写密文密码需加  设置密码加密方式为sha512 启用shadow文件
# Use text mode install
text                                                      ## 使用文本模式安装
# SELinux configuration
selinux --disabled                                        ## 关闭selinux
# Do not configure the X Window System
skipx

# Firewall configuration
firewall --disabled                                       ## 关闭防火墙
# Network information
network  --bootproto=dhcp --device=ens32                  ## 动态配置ip网络信息的写法
# Reboot after installation
reboot                                                    ## 设置安装完成后重启,必须存在
# System timezone
timezone Asia/Shanghai                                    ## 设置时区为亚洲上海
# System bootloader configuration
bootloader --location=mbr                                 ## 指定引导记录被写入的位置
# Clear the Master Boot Record
zerombr                                                   ## 清除mbr引导信息
# Partition clearing information
clearpart --all --initlabel                               ## 清空分区,清空所有分区
# Disk partitioning information                           ## 为分区设置文件系统类型为xfs,size设置大小
part /boot --fstype="xfs"  --size=1024
part swap --fstype="swap"  --size=1024
part / --fstype="xfs" --grow  --size=1

%packages                               ## 这一部分是要安装的一些包 以%packages开头,以%end结束
@^minimal
@core
@development
kexec-tools
wget
vim
%end

%addon com_redhat_kdump --enable --reserve-mb='auto'
%end

## 以%pre开头,以%end结束,在安装完系统之前执行的相关Linux命令、脚本

%post                                   ## 安装后执行的命令,如果要一键化搭建集群,这里可以执行写好的shell或ansible剧本进行搭建 
systemctl disable postfix.service       ## 以%post开头,以%end结束,在安装完系统之后执行的相关Linux命令、脚本
%end

  • 关闭,拷贝:
mkdir -pv /var/www/html/ksdir
cp /root/CentOS7.cfg /var/www/html/ksdir/
chmod +r /var/www/html/ksdir/CentOS7.cfg

在这里插入图片描述

3.4 复制文件并修改名称,修改default

cp /mnt/cdrom/isolinux/isolinux.cfg /var/lib/tftpboot/pxelinux.cfg/default

在这里插入图片描述

vim /var/lib/tftpboot/pxelinux.cfg/default
  • 菜单显示等待时间,单位为1/10秒,默认等待60秒,修改菜单等待时间为60,即等待6秒,若无操作则进入默认菜单;
    timeout=60
    在这里插入图片描述
    修改为:
default linux
label linux
  kernel vmlinuz
  append initrd=initrd.img inst.repo=http://192.168.120.11/CentOS7 inst.ks=http://192.168.120.11/ksdir/ks.cfg ksdevice=ens32

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

  • 新建虚拟机
    在这里插入图片描述
  • 开机
    在这里插入图片描述
  • PXE配置成功。
  • 如果想在pxe批量部署的时候修改网卡名称,在default文件中添加:net.ifnames=0 biosdevname=0
  • 对应的涉及到网卡名称的地方统一指定为"eth0"
    在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Happy_Sunshine_Boy/article/details/88635839