目录
环境:
需要安装的服务:
工作原理
1.设备本地YUM源(CentOS7.6)连接外网可跳过此步骤
步骤1 上传镜像并挂载
步骤2 配置CentOS-Media.repo
步骤3 重新加载yum源
2. 通过 YUM 安装软件
步骤1 安装DHCP
步骤2 安装tftp服务
步骤3 安装nfs服务
3. 配置 DHCP 服务(注意修改ip)
步骤1 注意
步骤2 编辑dhcp配置文件
步骤3 启动dhcp服务
步骤4 设置dhcp开机启动
4. 配置 tftp 服务
步骤1 配置tftp服务配置
步骤2 修改selinux
步骤3 设置tftp服务开机启动并启动tftp服务
步骤4 关闭防火墙,设置开启不开启防火墙
5. 配置 httpd 服务
步骤1 设置http开机启动服务
步骤2 创建ks文件夹
步骤3 上传ks.cfg
步骤4 在# Use hard drive installation media下面把镜像地址改成nfs方式引用(重要)
步骤5 安装系统自动重启加上reboot命令到ks.cfg里面
步骤6 启动httpd服务
步骤7 验证httpd服务是否启动成功
步骤8 浏览器访问ks.cfg文件
6、配置nfs服务
步骤1 创建nfs共享文件夹
步骤2 修改/etc/exports
步骤3 重启nfs服务或重新加载配置
7. 配置支持 PXE 启动(注意ip修改)
步骤1 镜像挂载
步骤2 复制镜像文件到nfs共享文件并重启nfs服务
步骤3 配置启动文件
步骤4 拷贝grubaa64.efi文件
步骤5 拷贝安装源文件到uefi
步骤6 创建grub.cfg引导文件并编辑
步骤7 检查文件是否齐全
步骤8 配置tftpboot及子目录权限777,执行以下命令。
步骤9 检查各个服务的运行情况
步骤10 服务不正常重启服务命令
8.PXE 自动安装 OS
8.1 Kickstart 介绍
8.2 Kickstart 配置文件介绍
8.3 创建 kickstart 文件(手动编辑ks.cfg)
8.5 安装前确认
步骤1
步骤2
步骤3
9、自动安装操作验证
步骤1 创建新的虚拟机(不展示过程)
步骤2 修改虚拟机VMware的引导方式
1、编辑虚拟机设置
2、选项--高级--勾选“UEFI”--“确定”
3、启动虚拟机,正常会出现下图EFI引导
4、出现grub安装界面
5、加载内核加载驱动
6、系统安装自动重启
本机服务器操作系统:CentOS7.6
目标服务器安装系统:openEuler-20.03-LTS-SP1-x86_64-dvd.iso
虚拟机:Vmware 15.5
远程工具:xshell5、xftp5
虚拟机配置ip地址为:192.168.1.10
网络模式:NAT
注意:本人的电脑是Intel的处理器,只能安装x86的镜像,如果电脑是arm的处理器需要下载aarch64或arrch32的镜像进行安装
dhcp:申请地址进行通信
tftp:提供小文件下载服务(grubaa64.efi、grub.cfg、initrd.img 、vmlinuz)
xinetd:超级守护进程,守护tftp
httpd:提供安装配置文佳下载服务
NFS:共享镜像文件
为安装dhcp、nfs、http、tftp、xinetd服务做准备。
创建文件夹/software并上传系统镜像(openEuler-20.03-LTS-SP1-x86_64-dvd.iso、CentOS_7_x86_64.iso)到该文件夹,执行以下命令挂载镜像到/mnt目录。提示“mount: /dev/loop0 写保护,将以只读方式挂载”不影响
mount /software/CentOS_7_x86_64.iso /mnt
查看挂载情况
编辑/etc/yum.repos.d/CentOS-Media.repo文件,用编辑器打开/etc/yum.repos.d/CentOS-Media.repo文件,将如下内容复制进CentOS-Media.repo文件。
[centos7] name=centos7
baseurl=file:///mnt
enabled=1
gpgcheck=0
保存退出后,执行yum repolist all,查看并确认已配置。
yum repolist all
安装DHCP服务,执行以下命令。
yum install dhcp
安装tftp服务及其xinetd服务,执行以下命令。
yum install tftp xinetd tftp-server
安装nfs服务,执行以下命令。
yum install httpd
配置业务网口固定IP,例如ens33,通过配置文件/etc/sysconfig/network-scripts/ifcfg-ens33配置PXE Server对应网口的IP为192.168.1.10,子网掩码是255.255.255.0。
编辑dhcp配置文件 /etc/dhcp/dhcpd.conf最后面加入下面配置。
vi /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 359200;
max-lease-time 800000;
next-server 192.168.1.10;
subnet 192.168.1.0 netmask 255.255.255.0 {
range dynamic-bootp 192.168.1.20 192.168.1.250;
filename "uefi/grubx64.efi";
}
设置DHCP IP(根据实际情况设置ip范围)范围为192.168.1.20 ~ 192.168.1.250
next server地址192.1.1.10为本地虚拟机的ip地址
filename指定grubx64.efi作为efi引导文件。
保存退出后执行命令systemctl restart dhcpd,检查并确认能够启动服务。
systemctl restart dhcpd
执行命令chkconfig dhcpd on,开机启动dhcp服务。
chkconfig dhcpd on
编辑/etc/xinetd.d/tftp 文件,配置如下。
注意:只修改disable为no
vi /etc/xinetd.d/tftp
service tftp
{
socket_type = dgram
protocol = udp
wait = yes
user = root
server = /usr/sbin/in.tftpd
server_args = -s /var/lib/tftpboot
disable = no
per_source = 11
cps = 100 2
flags = IPv4
}
修改/etc/sysconfig/selinux文件。
vi /etc/sysconfig/selinux
SELINUX=disabled (系统默认是enforcing,要改成disabled)
设置tftp服务开机启动并启动tftp服务,然后启动xinetd。
chkconfig tftp on
systemctl start tftp
systemctl start xinetd
systemctl stop firewalld
systemctl disable firewalld
执行以下命令设置httpd服务开机启动。
chkconfig httpd on
创建ks文件夹存放安装配置
mkdir -p /var/www/html/ks
上传ks.cfg到/var/www/html/ks,给它777权限
chmod 777 ks.cfg
ks.cfg文件是linux系统安装成功后生成在/root下面的anaconda-ks.cfg,里面记录着系统安装的设置如安装源、root用户密码、时区、键盘信息、系统语言、字体、分区配置等
# Use hard drive installation media nfs --server=192.168.1.10 --dir=/ios/OpenEuler20
systemctl start httpd
systemctl status httpd
使用浏览器访问http服务地址,能查看到内容即可
http://192.168.1.10/ks/ks.cfg
mkdir -p /ios/OpenEuler20
添加下面配置
/ios/ *(rw,sync,no_root_squash,no_subtree_check)
systemctl restart nfs 或 exportfs -rv
mount /software/openEuler-20.03-LTS-SP1-x86_64-dvd.iso /OpenEuler/OpenEuler20
cp -ar /OpenEuler/OpenEuler20/* /ios/OpenEuler20
systemctl restart nfs
1. 进入在tftpboot目录下创建一个uefi目录,执行以下命令。
cd /var/lib/tftpboot/ && mkdir uefi
在安装源(安装镜像)根目录/opt/openeuler下找到EFI目录,拷贝EFI/BOOT/grubaa64.efi到/var/lib/tftpboot/uefi,执行以下命令。
cp /OpenEuler/OpenEuler20/EFI/BOOT/grubx64.efi /var/lib/tftpboot/uefi/
复制vmlinuz和initrd.img到/var/lib/tftpboot/uefi/目录下,执行以下命令。
cp /OpenEuler/OpenEuler20/images/pxeboot/vmlinuz /var/lib/tftpboot/uefi/
cp /OpenEuler/OpenEuler20/images/pxeboot/initrd.img /var/lib/tftpboot/uefi/
执行以下命令。
cd /var/lib/tftpboot/uefi/ && vi grub.cfg
编辑内容如下
set timeout=60 menuentry 'OpenEuler20' {
linux uefi/vmlinuz ip=dhcp inst.ks=http://192.168.1.10/ks/ks.cfg inst.resolution=1024x768 initrd uefi/initrd.img }
inst.ks 为安装配置文件
inst.resolution设置分辨率
p=dhcp设置dhcp动态IP。
执行 ls命令后,若反馈如下文件,即配置完成。
ls /var/lib/tftpboot/uefi
chmod -R 777 /var/lib/tftpboot/
systemctl status dhcpd
systemctl status tftp
systemctl status xinetd
systemctl status httpd
systemctl restart dhcpd
systemctl restart tftp
systemctl status xinetd
systemctl restart httpd
Kickstart 安装提供一个安装过程自动化的方法,可以是部分自动化,也可以是完全自动化。Kickstart 文件包含所有安装程序会问到的问题答案,比如系统中使用的时区、如何对驱动器进行分区、或者应该安装哪些软件包。安
开始时提供一个 Kickstart 文件可进行自动安装,不需要用户介入。可将 Kickstart 文件保存在独立服务器系统中,并由每台计算机在安装过程中读取。这种安装方法可支持单一 Kickstart 文件在多个机器中安装 OS,使其成为
络和系统管理员的理想工具。其余详细介绍可以通过访问说明文档进行了解:https://docs.centos.org/en-US/centos/install-guide/Kickstart2/
Kickstart配置文件分为几个部分,每部分必须按顺序指定。除非特别说明,每部分内的项目则不必按序排列。各部分的顺序为:
● Command 部分——这部分是对OS安装中一些设置项进行设置,分为必选的和可选的,必须在您的 Kickstart 文件中包含必须的选项,这样才能实现全自动安装。使用%addon addon_name 命令,则可在 command 部分使用包含安装程序的扩展功能的 Anaconda 附加组件。
● %packages 部分——这部分为软件包安装,选定安装OS所需的软件。
● %anaconda 部分——可在 Kickstart 文件的 %anaconda 部分配置附加安装选项。这个部分控制安装系统的用户界面行为。
● %pre 和 %post 部分——这两个部分的顺序不限,也不是必须的。
● %pre为预安装部分,可以在解析 Kickstart 文件后、开始安装前立即添加要在该系统运行执行的命令。
● %post为安装后部分,可以在安装完成后、第一次重启前立即添加要在该系统中运行的命令。
详细参考:Kickstart Installations :: CentOS Docs Site
不熟悉不推荐自己编辑ks.cfg,老老实实的先人工安装一台服务器,并且修改/root/anaconda-ks.cfg文件,然后再进行引用是最稳妥的方法
生成Kickstart配置文件的三种方法:
●每台服务器安装OS后,安装程序会创建一个Kickstart配置文件,并记录真实的安装配置。如果希望实现和某系统类似的安装,可以基于该系统的Kickstart配置文件生成新的Kickstart配置文件。(生成的文件名称为anaconda-ks.cfg位于/root/anaconda-ks.cfg。)
● Centos提供了一个图形化的Kickstart配置工具。在Linux系统上运行该工具,就可以创建Kickstart配置文件。配置命令为system-config-kickstart。
●阅读Kickstart配置文件的手册。用文本编辑器可以创建Kickstart配置文件。
参考:https://docs.centos.org/en-US/centos/install-guide/Kickstart2/
确认必要的文件已经编辑完成检查配置项没有问题,示例如下,包括/var/lib/tftpboot/uefi,/OpenEular/两个目录下文件都已配置完毕。
确认各个服务的开启情况,尤其注意/OpenEular文件夹刷新后,建议执行命令service nfs restart重新启动nfs服务刷新该目录。
确认防火墙是否已关闭,如果没关闭,可执行命令systemctl stop firewalld 临时关闭。
验证是否正常自动安装操作系统
VMware的默认引导方式是Bios,需要修改为EFI
Bios引导下会出现下面问题,上面显示Clinet IP 为192.168.1.20,说明DHCP服务正常工作已经给虚拟机分配的ip地址。
原文:https://note.youdao.com/ynoteshare/index.html?id=63eb1ebdf8d470f7a037dc9fed54781c&type=note&_time=1654571852198