[实验] MySQL 的安装 (通过 rpm 软件包实现)

纪念:站主于 2019 年 11 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

软件准备:

在 MySQL 的官网上下载安装数据库所需要的软件包 MySQL:

https://dev.mysql.com/downloads/mysql/

正文:

步骤目录:

步骤一:系统环境要求

步骤二:部署安装 MySQL 的环境
2.1 删除系统上的 MariaDB
2.2 确保当前目录下拥有如下安装包

步骤三:安装 MySQL 数据库

步骤四:启动 MySQL 数据库

步骤五:修改 MySQL 数据库的 root 密码
5.1 查看初始的 root 密码
5.2 进入数据库
5.3 修改 root 密码
5.4 退出数据库

具体的操作步骤:

步骤一:系统环境要求

1) 服务器的系统需要是 CentOS 7 版本
2) 服务器系统需要有软件源

步骤二:部署安装 MySQL 的环境
2.1 删除系统上的 MariaDB

# systemctl stop mariadb
# rm -rf /var/lib/mysql/*
# rpm -e --nodeps mariadb-server mariadb 

2.2 确保当前目录下拥有如下安装包

# ls
mysql-community-client-8.0.18-1.el7.x86_64.rpm
mysql-community-common-8.0.18-1.el7.x86_64.rpm
mysql-community-devel-8.0.18-1.el7.x86_64.rpm
mysql-community-libs-8.0.18-1.el7.x86_64.rpm
mysql-community-server-8.0.18-1.el7.x86_64.rpm

(补充:这里要安装的是 MySQL 是 8.0.18 社区版)

步骤三:安装 MySQL 数据库

# yum -y localinstall mysql-community-*

步骤四:启动 MySQL 数据库

# systemctl start mysqld

步骤五:修改 MySQL 数据库的 root 密码
5.1 查看初始的 root 密码

# grep 'temporary password' /var/log/mysqld.log 
2019-11-09T09:37:31.347523Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: wAA!w,?e#M2J

(补充:这里查出来的密码是 wAA!w,?e#M2J)

5.2 进入数据库

# mysql -u root -p'wAA!w,?e#M2J'

(补充:这里使用的密码是 wAA!w,?e#M2J)

5.3 修改 root 密码

> alter user user() identified by '<password>';

5.4 退出数据库

> quit;

[实验] MySQL 的安装 (通过 yum 实现)

纪念:站主于 2019 年 11 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

软件准备:

在 MySQL 的官网上下载安装数据库所需要的软件包 MySQL 的 yum 源安装包:

https://dev.mysql.com/downloads/repo/yum/

正文:

步骤目录:

步骤一:系统环境要求

步骤二:部署安装 MySQL 的环境
2.1 删除系统上的 MariaDB
2.2 安装 MySQL 的官方软件源

步骤三:安装 MySQL 数据库

步骤四:启动 MySQL 数据库

步骤五:修改 MySQL 数据库的 root 密码
5.1 查看初始的 root 密码
5.2 进入数据库
5.3 修改 root 密码
5.4 退出数据库

具体的操作步骤:

步骤一:系统环境要求

1) 服务器的系统需要是 CentOS 7 版本
2) 服务器系统配置好可用的软件源

步骤二:部署安装 MySQL 的环境
2.1 删除系统上的 MariaDB

# systemctl stop mariadb
# rm -rf /var/lib/mysql/*
# rpm -e --nodeps mariadb-server mariadb

2.2 安装 MySQL 的官方软件源

# yum -y localinstall mysql80-community-release-el7-3.noarch.rpm

(补充:这里安装的是 MySQL 是 8.0.18 社区版)

步骤三:安装 MySQL 数据库

# yum -y install mysql-community-server

步骤四:启动 MySQL 数据库

# systemctl start mysqld

步骤五:修改 MySQL 数据库的 root 密码
5.1 查看初始的 root 密码

# grep 'temporary password' /var/log/mysqld.log
2019-11-09T10:04:20.237976Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 2gSiAAV!+c-1

(补充:这里查出来的密码是 wAA!w,?e#M2J)

5.2 进入数据库

# mysql -u root -p'2gSiAAV!+c-1'

(补充:这里使用的密码是 wAA!w,?e#M2J)

5.3 修改 root 密码

> alter user user() identified by '<password>';

5.4 退出数据库

> quit;

[实验] MariaDB&MySQL 主从同步的搭建 (互为主从)

纪念:站主于 2019 年 11 月完成了此开源实验,并将过程中的所有命令经过整理和注释以后,形成以下教程

步骤目录:

步骤一:规划拓扑
1.1 服务器列表
1.2 服务器列表简介

步骤二:系统环境要求

步骤三:所有数据库服务器安装 MariaDB 或 MySQL 数据库
3.1 所有数据库服务器安装 MariaDB 或 MySQL
3.2 设置所有数据库服务器开机自启 MariaDB 或 MySQL

步骤四:配置 MairaDB&MySQL 互为主从结构
4.1 将数据库服务器 22 设置为数据库服务器 21 的从库
4.1.1 开启数据库服务器 21 的 server-id 和 binlog 日志
4.1.2 重启数据库服务器 21 的数据库
4.1.3 在数据库服务器 21 的数据库中创建用于同步的用户
4.1.3.1 进入数据库
4.1.3.2 创建数据库服务器 21 用于被数据库服务器 22 同步的 MariaDB 用户
4.1.3.3 刷新数据库服务器 21 里所有用户的权限
4.1.3.4 查看数据库服务器 21 的 MariaDB 的主库参数
4.1.4 让数据库服务器 22 同步数据库服务器 21
4.1.4.1 启动数据库服务器 22
4.1.4.2 进入数据库服务器 22 的数据库
4.1.4.3 同步主库
4.1.4.4 启动从库状态
4.1.4.5 查看从库状态
4.2 将数据库服务器 21 设置为数据库服务器 22 的从库
4.2.1 关闭数据库服务器 22 的数据库
4.2.2 开启数据库服务器 21 的 server-id 和 binlog 日志
4.2.3 启动数据库服务器 22 的数据库
4.2.4 在数据库服务器 22 的数据库中创建用于同步的用户
4.2.4.1 进入数据库
4.2.4.2 创建数据库服务器 21 用于被数据库服务器 22 同步的 MariaDB 用户
4.2.4.3 刷新数据库服务器 22 数据库里所有用户的权限
4.2.4.4 查看数据库服务器 22 的 MariaDB 的主库参数
4.2.5 让数据库服务器 21 同步数据库服务器 22
4.2.5.1 进入数据库服务器 21 的数据库
4.2.5.2 同步主库
4.2.5.4 查看从库状态

步骤五:测试 MariaDB&MySQL 互为主从集群
5.1 进入数据库
5.2 创建测试库
5.3 进入测试库
5.4 创建测试表
5.5 在数据库服务器 21 上插入测试数据
5.6 在数据库服务器 22 上插入测试数据
5.7 在两个数据库里都可以看到对方插入的测试数据

具体的操作步骤:

步骤一:规划拓扑
1.1 服务器列表

数据库服务器 21 IP 地址:192.168.1.21
数据库服务器 22 IP 地址:192.168.1.22

1.2 服务器列表简介

数据库服务器 21 和 数据库服务器 22 相互同步对方的数据

步骤二:系统环境要求

1) 所有服务器的系统都需要是 CentOS 7 版本
2) 所有服务器都要关闭防火墙
3) 所有服务器都要关闭 SELinux
4) 所有服务器系统都要配置好可用的软件源
5) 需要按照拓扑图给对应的服务器配置好 IP 地址和主机名
6) 所有服务器都要可以相互 ping 通自己和对方的 IP 地址和主机名

步骤三:所有数据库服务器安装 MariaDB 或 MySQL 数据库
3.1 所有数据库服务器安装 MariaDB 或 MySQL

(分别在数据库服务器 21 和数据库服务器 22 上执行以下步骤)

# yum -y install mariadb-server

(补充:这里以安装 MariaDB 数据库为例)

3.2 设置所有数据库服务器开机自启 MariaDB 或 MySQL

(分别在数据库服务器 21 和数据库服务器 22 上执行以下步骤)

# systemctl enable mariadb

(补充:这里以开机自启 MariaDB 数据库为例)

步骤四:配置 MairaDB&MySQL 互为主从结构
4.1 将数据库服务器 22 设置为数据库服务器 21 的从库
4.1.1 开启数据库服务器 21 的 server-id 和 binlog 日志

(只在数据库服务器 21 上执行以下步骤)

# vi /etc/my.cnf

将部分内容修改如下:

[mysqld]
server-id=1
log-bin=mariadb-bin
......


补充:这里以
1) 将 server-id 设置为 1
2) 启动 binlog 日志,并将 binlog 日志的前缀设置为 mariadb-bin
为例

(注意: 集群里的各个数据库的 server id 不能一样)

4.1.2 重启数据库服务器 21 的数据库

(只在数据库服务器 21 上执行以下步骤)

# systemctl restart mariadb

(补充:这里以重启 MariaDB 数据库为例)

4.1.3 在数据库服务器 21 的数据库中创建用于同步的用户
4.1.3.1 进入数据库

(只在数据库服务器 21 上执行以下步骤)

# mysql -p

4.1.3.2 创建数据库服务器 21 用于被数据库服务器 22 同步的 MariaDB 用户

(只在数据库服务器 21 上执行以下步骤)

> grant replication slave on *.* to 'backup'@'192.168.1.22' identified by 'backup';

4.1.3.3 刷新数据库服务器 21 里所有用户的权限

(只在数据库服务器 21 上执行以下步骤)

> flush privileges;

4.1.3.4 查看数据库服务器 21 的 MariaDB 的主库参数

(只在数据库服务器 21 上执行以下步骤)

> show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000003 |      475 |              |                  |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

(补充:这里显示的 master_log_file 和 master_log_pos 的参数会在后面配置从库中使用)

4.1.4 让数据库服务器 22 同步数据库服务器 21
4.1.4.1 启动数据库服务器 22

(只在数据库服务器 22 上执行以下步骤)

# systemctl start mariadb

(补充:这里以启动 MariaDB 数据库为例)

4.1.4.2 进入数据库服务器 22 的数据库

(只在数据库服务器 22 上执行以下步骤)

# mysql -p

4.1.4.3 同步主库

(只在数据库服务器 22 上执行以下步骤)

> change master to master_host="192.168.1.21",master_user='backup',master_password='backup',master_log_file='mariadb-bin.000003',master_log_pos=475;

4.1.4.4 启动从库状态

(只在数据库服务器 22 上执行以下步骤)

> start slave;

4.1.4.5 查看从库状态

(只在数据库服务器 22 上执行以下步骤)

> show slave status\G;
          Master_Host: 192.168.1.21
              ......
          Slave_IO_Running: Yes  
          Last_IO_Error: ......
              ......
          Slave_SQL_Running: Yes
          Last_SQL_Error: ......
              ......

(补充:这里显示它的主服务器是 192.168.1.21)

(注意:这里要确保 Slave_IO_Running: 和 Slave_SQL_Running: 后面没有报错信息)

4.2 将数据库服务器 21 设置为数据库服务器 22 的从库
4.2.1 关闭数据库服务器 22 的数据库

(只在数据库服务器 22 上执行以下步骤)

# systemctl stop mariadb

(补充:这里以停止 MariaDB 数据库为例)

4.2.2 开启数据库服务器 21 的 server-id 和 binlog 日志

(只在数据库服务器 22 上执行以下步骤)

# vi /etc/my.cnf

(将部分内容修改如下)

[mysqld]
server-id=2
log-bin=mariadb-bin
......


补充:这里以
1) 将 server-id 设置为 2
2) 启动 binlog 日志,并将 binlog 日志的前缀设置为 mariadb-bin
为例

(注意: 集群里的各个数据库的 server id 不能一样)

4.2.3 启动数据库服务器 22 的数据库

(只在数据库服务器 22 上执行以下步骤)

# systemctl start mariadb

(补充:这里以重启 MariaDB 数据库为例)

4.2.4 在数据库服务器 22 的数据库中创建用于同步的用户
4.2.4.1 进入数据库

(只在数据库服务器 22 上执行以下步骤)

# mysql -p

4.2.4.2 创建数据库服务器 21 用于被数据库服务器 22 同步的 MariaDB 用户

(只在数据库服务器 22 上执行以下步骤)

> grant replication slave on *.* to 'backup'@'192.168.1.21' identified by 'backup';

4.2.4.3 刷新数据库服务器 22 数据库里所有用户的权限

(只在数据库服务器 22 上执行以下步骤)

> flush privileges;

4.2.4.4 查看数据库服务器 22 的 MariaDB 的主库参数

(只在数据库服务器 22 上执行以下步骤)

> show master status;
+--------------------+----------+--------------+------------------+
| File               | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+--------------------+----------+--------------+------------------+
| mariadb-bin.000003 |      475 |              |                  |
+--------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

(补充:这里显示的 master_log_file 和 master_log_pos 的参数会在后面配置从库中使用)

4.2.5 让数据库服务器 21 同步数据库服务器 22
4.2.5.1 进入数据库服务器 21 的数据库

(只在数据库服务器 21 上执行以下步骤)

# mysql -p

4.2.5.2 同步主库

(只在数据库服务器 21 上执行以下步骤)

> change master to master_host="192.168.1.22",master_user='backup',master_password='backup',master_log_file='mariadb-bin.000003',master_log_pos=475;

4.2.5.3 启动从库状态

(只在数据库服务器 21 上执行以下步骤)

> start slave;

4.2.5.4 查看从库状态

(只在数据库服务器 21 上执行以下步骤)

> show slave status\G;
          Master_Host: 192.168.1.22
              ......
          Slave_IO_Running: Yes  
          Last_IO_Error: ......
              ......
          Slave_SQL_Running: Yes
          Last_SQL_Error: ......
              ......

(补充:这里显示它的主服务器是 192.168.1.21)

(注意:这里要确保 Slave_IO_Running: 和 Slave_SQL_Running: 后面没有报错信息)

步骤五:测试 MariaDB&MySQL 互为主从集群
5.1 进入数据库

(分别在数据库服务器 21 和数据库服务器 22 上执行以下步骤)

# mysql -uroot -p

5.2 创建测试库

(只在数据库服务器 21 上执行以下步骤)

> create database test1;

5.3 进入测试库

(分别在数据库服务器 21 和数据库服务器 22 上执行以下步骤)

> use test1;

5.4 创建测试表

(只在数据库服务器 21 上执行以下步骤)

> create table test1a(id int(10),name char(100),age int(10));

(补充:这里随意创建了一张表格)

5.5 在数据库服务器 21 上插入测试数据

(只在数据库服务器 21 上执行以下步骤)

> insert into test1a(id,name,age) values('1','zmy','10');

(补充:这里随意插入了一条数据)

5.6 在数据库服务器 22 上插入测试数据

(只在数据库服务器 22 上执行以下步骤)

> insert into test1a(id,name,age) values('2','ming','20');

(补充:这里随意插入了一条数据)

5.7 在两个数据库里都可以看到对方插入的测试数据

(分别在数据库服务器 21 和数据库服务器 22 上执行以下步骤)

> select * from test1a;
+------+------+------+
| id   | name | age  |
+------+------+------+
|    1 | zmy  |   10 |
|    2 | ming |   20 |
+------+------+------+
2 rows in set (0.00 sec)

[步骤] KVM 虚拟机模板的创建 (CentOS 8 版)

注意:

在创建 KVM 虚拟机之前要先安装 KVM 并创建 KVM 虚拟网络

软件准备:

在 CentOS 官网上下载安装系统所需要的镜像:

https://centos.org/download/

正文:

步骤目录:

步骤一:创建 KVM 虚拟机模板的目的

步骤二:为这个虚拟机创建硬盘文件 template_centos_8_10g.qcow2
2.1 创建硬盘文件 template_centos_8_10g.qcow2
2.2 确认硬盘文件 template_centos_8_10g.qcow2 已创建

步骤三:使用 KVM 和刚刚创建的硬盘文件新安装一台虚拟机
3.1 启动 KVM 的 virt-manager
3.2 在 virt-manager 上的左上角点击文件之后点击“新建虚拟机”
3.2.1 选择以本地安装介质的方式安装系统
3.2.2 选择安装系统的系统镜像
3.2.3 设置内存大小和处理器数量
3.2.4 选择用刚刚创建的硬盘文件来安装系统
3.2.5 给虚拟机命名为 “template_centos_8_10g” 并选择虚拟网络 “vlan001”
3.2.6 开始安装系统
3.2.7 选择系统语言
3.2.8 之后进行系统配置界面
3.2.8.1 通过 “INSTALLATION DESTINATION” 对硬盘进行分区
3.2.8.2 取消 “KDUMP”
3.2.8.3 选择最小化安装系统
3.2.9 之后点击右下角的 “Begin installation”
3.2.10 在安装的过程中设置 root 密码,安装完成后重启
3.2.11 在安装系统的过程中需要注意的内容总结

步骤四:进入新创建虚拟机修改配置
4.1 修改网卡个性化设置
4.1.1 修改网卡配置文件
4.1.2 使修改的网卡配置生效
4.2 禁用 selinux
4.3 禁用空路由
4.4 添加 Console 配置
4.4.1 修改 grub 内核配置文件
4.4.2 使修改的 grub 内核配置生效
4.5 将系统自动挂载的硬盘从使用 UUID 换成硬件路径
4.5.1 查看根分区的 UUID
4.5.2 在自动挂载文件里将根分区的 UUID 换成硬件路径
4.6 删除不用的程序
4.7 配置虚拟系统的 yum 源
4.7.1 备份旧 yum 源
4.7.1.1 创建备份目录
4.7.1.2 备份旧 yum 源
4.7.2 创建新的 yum 源文件
4.7.3 删除旧的 yum 源数据
4.7.4 刷新新的 yum 源
4.8 对虚拟系统进行升级
4.9 进行分区扩展
4.9.1 安装分区扩展软件
4.9.2 给开机自启配置文件相应的权限
4.9.3 设置开机自动扩容根目录
4.10 修改虚拟机系统的名称
4.11 启用 serial 服务实现通过 virsh console 命令控制虚拟机
4.12 清除虚拟系统的历史命令
4.13 关闭虚拟机

步骤五:在真机上对虚拟机进行清理优化

步骤六:此时就可以将此虚拟机的硬件文件作为模块批量克隆虚拟机了

具体的操作步骤:

步骤一:理解创建 KVM 虚拟机模板的目的

主要用于批量克隆出新的 KVM 机器,节约创建新虚拟机的时间

步骤二:为这个虚拟机创建硬盘文件 template_centos_8_10g.qcow2
2.1 创建硬盘文件 template_centos_8_10g.qcow2

(只在真机上执行以下步骤)

# qemu-img create -f qcow2 /var/lib/libvirt/images/template_centos_8_10g.qcow2 10G

2.2 确认硬盘文件 template_centos_8_10g.qcow2 已创建

(只在真机上执行以下步骤)

# ls /var/lib/libvirt/images/ | grep template_centos_8_10g.qcow2

步骤三:使用 KVM 和刚刚创建的硬盘文件新安装一台虚拟机
3.1 启动 KVM 的 virt-manager

(只在真机上执行以下步骤)

# virt-manager

3.2 在 virt-manager 上的左上角点击文件之后点击 “新建虚拟机”

(只在真机上执行以下步骤)

(步骤略)

3.2.1 选择以本地安装介质的方式安装系统

(只在真机上执行以下步骤)

(图:1)

3.2.2 选择安装系统的系统镜像

(只在真机上执行以下步骤)

(图:2)

3.2.3 设置内存大小和处理器数量

(只在真机上执行以下步骤)

(图:3)

3.2.4 选择用刚刚创建的硬盘文件来安装系统

(只在真机上执行以下步骤)

(图:4)

3.2.5 给虚拟机命名为 “template_centos_8_10g” 并选择虚拟网络 vlan001

(只在真机上执行以下步骤)

(注意:虚拟网络必须提前创建好)

(图:5)

3.2.6 开始安装系统

(只在真机上执行以下步骤)

(图:6)

3.2.7 选择系统语言

(只在真机上执行以下步骤)

(图:7)

3.2.8 之后进行系统配置界面

(只在真机上执行以下步骤)

需要手动配置的地方有三个:
1) “INSTALLATION DESTINATION”
2) “KDUMP”
3) “SOFTWARE SELECTION”
分别点击以后就可以配置了

3.2.8.1 通过 “INSTALLATION DESTINATION” 对硬盘进行分区

(只在真机上执行以下步骤)

(补充:完成后点击左上角的 “DONE”)

(注意:只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘类型,硬盘格式设置为 XFS)

(图:8)
(图:9)

3.2.8.2 取消 “KDUMP”

(只在真机上执行以下步骤)

(补充:完成后点击左上角的 “DONE”)
(图:10)

3.2.8.3 选择最小化安装系统

(只在真机上执行以下步骤)

(补充:完成后点击左上角的 “DONE”)

(图:11)

3.2.9 之后点击右下角的 “Begin installation”

(只在真机上执行以下步骤)

(图:12)

3.2.10 在安装的过程中设置 root 密码,安装完成后重启

(只在真机上执行以下步骤)

(图:13)

3.2.11 在安装系统的过程中需要注意的内容总结

(只在真机上执行以下步骤)

1) 一定要使用刚刚创建的 /var/lib/libvirt/images/template_centos_8_10g.qcow2 作为安装虚拟机的硬件文件
2) 虚拟机网络 “vlan001” 要提前创建好
3) 只分一个分区,只设置一个挂载点挂载到根,使用标准硬盘,硬盘格式是 XFS
4) 取消 “KDUMP”
5) 选择最小化安装系统

步骤四:进入新创建虚拟机修改配置
4.1 修改网卡个性化设置
4.1.1 修改网卡配置文件

(只在虚拟机上执行以下步骤)

# vi /etc/sysconfig/network-scripts/ifcfg-ens3

将全部内容修改如下:

# vi /etc/sysconfig/network-scripts/ifcfg-ens3
TYPE=Ethernet
BOOTPROTO=dhcp
NAME=ens3
DEVICE=ens3
ONBOOT=yes

4.1.2 使修改的网卡配置生效

(只在虚拟机上执行以下步骤)

# reboot

4.2 禁用 selinux

(只在虚拟机上执行以下步骤)

# vi /etc/selinux/config

将全部内容修改如下:

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

4.3 禁用空路由

(只在虚拟机上执行以下步骤)

# vi /etc/sysconfig/network

将全部内容修改如下:

# Created by anaconda
NOZEROCONF="yes"

4.4 添加 Console 配置
4.4.1 修改 grub 内核配置文件

(只在虚拟机上执行以下步骤)

# vi /etc/default/grub

将全部内容修改如下:

GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL="serial console"
GRUB_SERIAL_COMMAND="serial --unit=1 --speed=115200"
GRUB_CMDLINE_LINUX="biosdevname=0 net.ifnames=0 console=tty0 console=ttyS0,115200n8"
GRUB_DISABLE_LINUX_UUID="true"
GRUB_ENABLE_LINUX_LABEL="true"
GRUB_DISABLE_RECOVERY="true"

4.4.2 使修改的 grub 内核配置生效

(只在虚拟机上执行以下步骤)

# grub2-mkconfig -o grub

4.5 将系统自动挂载的硬盘从使用 UUID 换成硬件路径
4.5.1 查看根分区的 UUID

(只在虚拟机上执行以下步骤)

# blkid
/dev/sda1: UUID="e76ed189-6d0f-49d5-8586-c5aae4bdc9b5" TYPE="xfs" PARTUUID="3d8377ef-01"

(补充:这里的 UUID 是: e76ed189-6d0f-49d5-8586-c5aae4bdc9b5)

4.5.2 在自动挂载文件里将根分区的 UUID 换成硬件路径

(只在虚拟机上执行以下步骤)

# vi /etc/fstab

将以下内容:

......
UUID=e76ed189-6d0f-49d5-8586-c5aae4bdc9b5 /                   xfs     defaults        0 0

(补充:这里的 UUID 是: e76ed189-6d0f-49d5-8586-c5aae4bdc9b5)

修改为:

/dev/sda1 /                   xfs     defaults        0 0

4.6 删除不用的程序

(只在虚拟机上执行以下步骤)

# yum -y remove firewalld-* python-firewall

4.7 配置虚拟系统的 yum 源
4.7.1 备份旧 yum 源
4.7.1.1 创建备份目录

(只在虚拟机上执行以下步骤)

# mkdir /etc/yum.repos.d/backup

4.7.1.2 备份旧 yum 源

(只在虚拟机上执行以下步骤)

# mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/backup

4.7.2 创建新的 yum 源文件

(只在虚拟机上执行以下步骤)

# vi /etc/yum.repos.d/lan.repo

创建以下内容:

[CentOS8BaseOS]
name=CentOS8BaseOS
baseurl=http://192.168.100.254/CentOS8/BaseOS/
enabled=1
gpgcheck=0

[CentOS8AppStream]
name=CentOS8AppStream
baseurl=http://192.168.100.254/CentOS8/AppStream/
enabled=1
gpgcheck=0

(注意:http://192.168.1.250/centos8/ 需要根据真实环境的情况进行更改)

4.7.3 删除旧的 yum 源数据

(只在虚拟机上执行以下步骤)

# yum clean all

4.7.4 刷新新的 yum 源

(只在虚拟机上执行以下步骤)

# yum repolist

4.8 对虚拟系统进行升级

(只在虚拟机上执行以下步骤)

# yum -y update

4.9 进行分区扩展
4.9.1 安装分区扩展软件

(只在虚拟机上执行以下步骤)

# yum install -y cloud-utils-growpart

4.9.2 给开机自启配置文件相应的权限

(只在虚拟机上执行以下步骤)

# chmod 755 /etc/rc.local

4.9.3 设置开机自动扩容根目录

(只在虚拟机上执行以下步骤)

# vi /etc/rc.local

添加以下内容:

......
/usr/bin/growpart /dev/sda1
/usr/sbin/xfs_growfs /

4.10 修改虚拟机系统的名称

(只在虚拟机上执行以下步骤)

# vi /etc/hostname

将全部内容修改如下:

template_centos_8_10g

4.11 启用 serial 服务实现通过 virsh console 命令控制虚拟机

(只在虚拟机上执行以下步骤)

# systemctl start serial-getty@ttyS0
# systemctl enable serial-getty@ttyS0

4.12 清除虚拟系统的历史命令

(只在虚拟机上执行以下步骤)

# history -c

4.13 关闭虚拟机

(只在虚拟机上执行以下步骤)

# poweroff

步骤五:在真机上对虚拟机进行清理优化

(只在真机上执行以下步骤)

# sudo virt-sysprep -d template_centos_8_10g


注意:如果此命令不存在
1) CentOS 系统的话需要安装 libguestfs-tools
2) openSUSE 系统的话需要安装 guestfs-tools

步骤六:此时就可以将此虚拟机的硬件文件作为模板进行批量克隆虚拟机了

(只在真机上执行以下步骤)