PXE安装操作系统

1.  Redhat_8.0操作系统安装

1.1.  安装方式:ISO光盘安装

1.2.  安装方式:PXE网络安装

1.2.1.  安装环境:vmware

  1. 1台Redhat_8.0已经通过光盘镜像安装好redhat8.0操作系统。主机名为:Workstation
  2. 新建4台虚拟机,选择PXE方式安装操作系统。4台主机名分别为servera、serverb、serverc、serverd
  3. Workstation上分别安装dhcp服务、ftp服务、YUM等等。

 

Workstation

servera

获取内容

1

Dhcp服务

获取IP地址

IP地址

2

Tftp-server

获取引导文件boot

Pxelinux.0

3

Tftp-server

获取内核和初始化ram文件

Linux+initram

4

http、ftp、nfs

本笔记选择ftp方式安装

 

5

Kickstart

获取自动安装文件ks

 

图表 8‑1

  1. 文件路径

Pxelinux.0 :syslinux/pxelinux.0           //需要安装syslinux安装包

Linux :    iso

Initram :  iso

1.2.2.  安装步骤

1.2.2.1. 虚拟机全新安装redhat8.0操作系统。

  1. 光盘安装操作系统步骤省略。
  2. 修改主机名为:Workstation

# hostnamectl set-hostname Workstation

 

 

 

1.2.2.2. 配置YUM库

  1. 虚拟机挂在光盘
  2. 创建文件夹:# Mkdir  /home/redhat_8.0/
  3. 挂在光盘镜像:# mount  /dev/sr0 /mnt
  4. # 拷贝光盘所有文件到新的目录:cp /mnt/* /home/redhat_8.0/
  5. 配置YUM文件

[root@ Workstation ~]# cd /etc/yum.repos.d/

[root@ Workstation yum.repos.d]# mv redhat.repo redhat.repo.bak

[root@ Workstation yum.repos.d]# vim redhat.repo

[redhat_BaseOS]

name=BaseOS

baseurl=file:///home/redhat_8.0/BaseOS

gpgcheck=1

gpgkey=file:///home/redhat_8.0/RPM-GPG-KEY-redhat-release

enabled=1

 

[redhat_AppStream]

name=AppStream

baseurl=file:///home/redhat_8.0/AppStream

gpgcheck=1

gpgkey=file:///home/redhat_8.0/RPM-GPG-KEY-redhat-release

enabled=1

 

配置完成后保存退出:wq

  1. 测试yum是否正常:[root@ Workstation yum.repos.d]#yum repolist all

 

1.2.2.3. 安装dhcp服务

  1. 查看dhcp服务名称:

[root@R Workstation ~]# yum search dhcp

Yum库里找到安装包:dhcp-server.x86_64

  1. 查看服务安装包可用版本:

[root@ Workstation ~]# yum list dhcp-server

  1. 查看服务器已经安装的包:

[root@ Workstation ~]# rpm -qa dhcp*

-qa:可以使用“*”通配符查看

-ql:不可以使用“*”通配符查看,必须写完成名称

-qc:不可以使用“*”通配符查看,必须写完成名称

  1. 安装dhcp服务包

[root@Workstation ~]# yum install -y dhcp-server

  1. 确认命令是否执行成功:返回值为0表示命令执行成功

[root@Workstation ~]# echo $?

0

  1. 执行rpm命令查看安装包状态及配置文件

rpm -qa dhcp*

rpm -ql dhcp-server

    rpm -qc dhcp-server

  1. 查看配置文件

cat /etc/dhcp/dhcpd.conf

根据配置文件提示内容将原始配置文件备份,并复制新的配置文件

mv dhcpd.conf dhcpd.conf.bak

cp  /usr/share/doc/dhcp-server/dhcpd.conf.example  dhcpd.conf

  1. 编辑新的配置文件,只保留如下行:

 

allow bootp;

allow booting;

option domain-name "localdomain";

option domain-name-servers 192.168.179.2;

default-lease-time 600;

max-lease-time 7200;

log-facility local7;

subnet 192.168.179.0 netmask 255.255.255.0{

  range 192.168.179.10 192.168.179.20;

  filename "/pxelinux.0";

  next-server 192.168.179.2;

}

 

文件中“allow bootp”“allow booting”需要man查找“dhcpd.conf”文件获得

“option routers 192.168.179.2; ”:man查找“dhcpd.conf”文件获得,并直接指明tftp服务器IP地址

 “filename “?”;” :需要安装syslinux包获得。

  1. Man 查看dhcpd.conf配置,并查找“bootp”,启动协议

[root@Workstation ~]# man -k dhcp

dhcpd.conf (5)       - dhcpd configuration file

[root@Workstation ~]# man dhcpd.conf

a.输入“/bootp”,按“n”键查找,直到找到:

 

 

“allow bootp;” “allow booting;”复制在dhcpd.conf配置文件首行,表示所有地址池都生效。

 

b.输入“/server”,按“n”键查找,直到找到:

 

filename "XncdHMX";

next-server 192.168.179.2;

#这两条致命tftp地址及tftp文件,文件名称需要单独查找,参照tftp文件路径。

 

1.2.2.4. 安装tftp安装包

[root@Workstation ~]# yum search tftp

[root@Workstation ~]# yum list tftp-server

[root@Workstation ~]# rpm -qa tftp*

[root@Workstation ~]# yum install -y tftp*

[root@Workstation ~]# yum list tftp-server

[root@Workstation ~]# rpm -qa tftp*

[root@Workstation ~]# rpm -ql tftp-server

[root@Workstation ~]# rpm -qc tftp-server

  1. 启动tftp服务

[root@Workstation ~]# systemctl enable --now tftp

  1. 创建pxelinux.cfg文件夹

[root@Workstation ~]# mkdir /var/lib/tftpboot/pxelinux.cfg

  1. 启动dhcp服务

[root@Workstation ~]# systemctl enable --now dhcpd.service

  1. 查看防火墙是否放行相应服务

[root@Workstation ~]# firewall-cmd --list-all

  1. 防火墙放行dhcp服务,并立即生效。

[root@Workstation ~]# firewall-cmd --permanent --add-service={dhcp,tftp}

Success

[root@Workstation ~]# firewall-cmd --reload

success

1.2.2.5. 安装syslinux安装包及组件包

[root@Workstation ~]# yum search syslinux

[root@Workstation ~]# yum list syslinux

[root@Workstation ~]# rpm -qa syslinux

[root@Workstation ~]# yum install -y syslinux

[root@Workstation ~]# yum install -y syslinux-tftpboot.noarch

[root@Workstation ~]# yum list syslinux

[root@Workstation ~]# rpm -qa syslinux

[root@Workstation ~]# rpm -ql syslinux

[root@Workstation ~]# rpm -qc syslinux

 

  1. 安装完成后,查找与PXE有关的文件

[root@Workstation ~]# rpm -ql syslinux | grep -i pxe

/usr/share/doc/syslinux/pxechn.txt

/usr/share/doc/syslinux/pxelinux.txt

  1. 查看pxelinux.txt文件,根据文件步骤,生成pxelinux.0文件

此处提到/tftpboot 目录,因为目前还没有安装tftp服务,所有还没有生成此路径,下面安装tftp服务,并要求将“default”文件放到“/tftproot/pxelinux.cfg”目录下

     /mybootdir/pxelinux.cfg/default

  1. 查看syslinux-tftpboot全部文件,全部文件都在”/tftpboot”文件夹下

 [root@Workstation ~]# rpm -ql syslinux-tftpboot | grep -i pxelinux.0

/tftpboot/pxelinux.0

  1. 需要将tftp服务的的默认路径/var/lib/tftpboot更改为/tftpboot
  2. Ftft服务没有配置文件,需要修改服务文件

[root@Workstation ~]# yum search tftp

[root@Workstation ~]# rpm -ql tftp-server

[root@Workstation ~]# vim /usr/lib/systemd/system/tftp.service

ExecStart=/usr/sbin/in.tftpd -s /tftpboot

[root@Workstation ~]# systemctl restart tftp

Warning: The unit file, source configuration file or drop-ins of tftp.service changed on disk. Run 'systemctl daemon-reload' to reload units.

[root@Workstation ~]# systemctl daemon-reload

  1. /tftpboot重新创建pxelinux.cfg文件夹

[root@Workstation ~]# mkdir /tftpboot/pxelinux.cfg

  1. 拷贝需要的文件

isolinux.cfg文件里提到的提到vmlinuz,initrd.img,vesamenu.c32,boot.msg 4个文件。

isolinux.cfg= default=启动菜单

 

[root@Workstation ~]# cd /home/redhat_8.0/

[root@Workstation redhat_8.0]# cp isolinux/isolinux.cfg  /tftpboot/pxelinux.cfg/default

[root@Workstation redhat_8.0]# cp isolinux/{vesamenu.c32,boot.msg}  /tftpboot/

[root@Workstation redhat_8.0]# cp images/pxeboot/{vmlinuz,initrd.img}  /tftpboot/

  1. 修改default启动文件

[root@Workstation ~]# cd /tftpboot/pxelinux.cfg/

[root@Workstation pxelinux.cfg]# chmod 744 default

[root@Workstation pxelinux.cfg]# ll default

-rwx------. 1 root root 3159 Mar 24 00:03 default

[root@Workstation pxelinux.cfg]# vim default

label linux

  menu label ^Install Red Hat Enterprise Linux 8.0.0

  menu default

  kernel vmlinuz

  append initrd=initrd.img inst.stage2=ftp://192.168.179.132 quiet

label check

  menu label Test this ^media & install Red Hat Enterprise Linux 8.0.0

  kernel vmlinuz

  append initrd=initrd.img inst.stage2=hd:LABEL=RHEL-8-0-0-BaseOS-x86_64 rd.live.check quiet

  1. 重启servera

l  确定servera可以获取IP地址

l  确定servera可以连接到tftp server

l  确定出现如下安装界面,且默认选项为“install red hat ………”

 

  1. 至此,dhcp服务、tftp服务、启动文件都已经修改完成,接下来配置ftp服务,ftp服务提供操作系统进行的下载。
  2. 安装服务

1.2.2.6. 安装FTP服务    

[root@Workstation ~]# yum search ftp

[root@Workstation ~]# yum list vsftpd

[root@Workstation ~]# rpm -qa vsftpd

[root@Workstation ~]# yum install -y vsftpd

[root@Workstation ~]# yum list vsftpd

[root@Workstation ~]# rpm -qa vsftpd

[root@Workstation ~]# rpm -qc vsftpd

[root@Workstation ~]# rpm -ql vsftpd

  1. 编辑配置文件

[root@Workstation ~]# vim /etc/vsftpd/vsftpd.conf

l  查找匿名用户根目录

[root@Workstation ~]# man vsftpd.conf

搜索“anon_root”

发现没有默认的匿名用户根目录

l  启用匿名用户并创建匿名用户根目录

anonymous_enable=YES

anon_root=/home/redhat_8.0/

  1. 启动服务

[root@Workstation ~]#  systemctl enable --now vsftpd

  1. 防火墙放行服务

[root@Workstation ~]# firewall-cmd --permanent --add-service=ftp

success

[root@Workstation ~]# firewall-cmd --reload

success

[root@Workstation ~]# firewall-cmd --list-all

  1. 关闭防火墙

由于未知原因,防火墙上放行服务后还是无法访问FTP,关闭防火墙后正常,暂时关闭,后续再考虑具体原因。

[root@Workstation ~]# systemctl stop firewalld.service

  1. 至此,servera已经识别到操作系统镜像,接下来制作ks文件,实现自动化安装。

 

1.2.2.7. 制作kickstart文件,实现自动化安装

  1. Ks文件生成方式:建议使用目标镜像手动安装一台机器操作系统,从本系统的/root目录获取anaconda-ks.cfg文件。

[root@Workstation ~]# ls /root/anaconda-ks.cfg

  1. 根据需求修改anaconda-ks.cfg
  2. 将ks文件拷贝到ftp上,并重命名为ks.cfg

[root@localhost ~]# scp anaconda-ks.cfg  root@192.168.179.132:/home/redhat_8.0/ks1.cfg

 

  1. 编辑default文件,添加ks文件路径

[root@Workstation ~]# vim /tftpboot/pxelinux.cfg/default

Append initrd=initrd.img inst.stage2=ftp://192.168.179.132 inst.ks=ftp://192.168.179.132/ks.cfg quiet

 

  1. 至此,serverb、serverc、serverd测试可以实现全自动化安装操作系统。
posted @ 2020-10-08 21:32  lihr810  阅读(673)  评论(0)    收藏  举报