Part 1 - 制作 CentOS 模板镜像

2023-07-01
7分钟阅读时长

【版本】

当前版本号v20230701

版本修改说明
v20230701文档基于 RockyLinux8 和 Openstack Yoga 开发

任务1 虚拟化软件安装安装 RockyLinux

【任务目的】

  • 掌握搭建 RockyLinux 模板镜像
  • 熟练掌握 Linux命令(vi、tar、mv等等)的使用
  • 掌握 VirtualBox 或 VMWare Workstation的使用
  • 掌握使用 SSH 客户端连接虚拟机

【任务环境】

  • 内存:至少4G
  • 硬盘:至少空余40G
  • 操作系统: 64位 Windows系统。

【任务资源】

  • FinalShell
  • RockyLinux 8 系统镜像
  • VirtualBox 7 或 VMWare Workstation
  • Openstack 源
链接:https://pan.baidu.com/s/1plR_nZIhM3zK6whaUDY-bA 
提取码:zbz4

【任务步骤】

安装 VirtualBox 7

  1. 安装 VirtualBox 7(也可以选用VMWare Workstation,两者选其一即可)。安装过程略。

安装 FinalShell

  1. 安装 FinalShell。过程略。

新建虚拟机

  1. 启动 VirtualBox,点击“新建”,新建1台虚拟机。

  2. 输入虚拟机名称tmpl,选择安装目录和 RockyLinux 的镜像文件Rocky-8.8-x86_64-dvd1.iso,镜像大小约11.7GB。需要勾选跳过自动安装,然后点击下一步按钮。

注意:虚拟机安装路径的所有目录只能使用英文,不能含有中文!不能包含空格!

  1. 设置用户名cdc、密码123456和主机名tmpl
注意:本实验为了演示简单设置了非常简单的密码,在生产环境请勿设置太简单的密码,会有安全隐患!

  1. 分配 1024M 内存(如果电脑资源比较充裕可以多分配一些)和 2 个 CPU 核心。

  2. 磁盘分配40GB的空间。

  3. 确认安装信息,确认无误后点击完成按钮开始安装。

  4. 启动tmpl主机。

  5. 在安装界面选择Install Rocky Linux 8.8

语言和时间配置

  1. 系统安装语言选择默认英语,点击Continue

  2. 在地图点击中国位置,Region 对应 asiaCity 对应 Shanghai,注意调整时间为你当前安装的实际时间。设置好以后点击Done

  3. 语言支持勾选中文简体,可以通过输入关键字找到。

网络和主机配置

  1. 网口设置,并设置 Host Name 为 tmpl

  2. 开启网络,并设置网卡信息。

地址:10.0.0.70
掩码:255.255.255.0 或者 24
网关:10.0.0.254
DNS:223.5.5.5
  1. 回到主界面,进入软件选择界面,选择最小化安装“Minima Install”。

磁盘分区设置

  1. 进入系统安装位置菜单。

  2. 选择自定义分区。

  3. 选择标准分区格式

  4. 新建3个分区(Partition)

swap分区:2048M
/boot 分区:300M
/ 根分区:剩余所有空间

禁用 KDUMP

  1. 禁用 KDUMP。

kdump是Linux内核的一个功能,可在发生内核错误时创建核心转储。当被触发时,kdump会导出一个内存映像,该映像可用于调试和确定崩溃的原因。在生产环境下,该选项不该被禁用,但是在本实验中为了提高系统运行效率和节约内存,才进行禁用。

用户设置

  1. 设置 root 密码。

  2. 创建 cdc 用户。

  3. 开始安装系统

  4. 系统开始安装

  5. 等待系统安装完毕以后,点击重启。

  6. 重启以后,尝试使用 cdc 账户登录。

  7. 查看系统版本

cat /etc/redhat-release
  • 正常会输出系统版本信息
Rocky Linux release 8.8 (Green Obsidian)
  1. 登录成功以后,输入以下命令,提升切换为root用户。
su

网络设置验证

  1. 输入以下命令查看 enp0s3 的端口IP是否配置正常。
ip a
  • 正常情况应该可以看到类似以下信息,enp0s3网卡有对应 IP 地址 10.0.0.70。如果没看到,请参考常见问题2,启用网卡。
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:b7:05:51 brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.70/24 brd 10.0.0.255 scope global noprefixroute enp0s3
       valid_lft forever preferred_lft forever
    inet6 fe80::4977:e0ed:4338:25f8/64 scope link noprefixroute
       valid_lft forever preferred_lft forever

  1. 进入当前Windows系统的网卡设置,修改虚拟机指向的虚拟网卡的配置。设置为以下值
IP:10.0.0.2
掩码:255.255.255.0
网关:10.0.0.254

  1. 打开 FinalShell,使用 root 用户SSH方式登录虚拟机。
IP:10.0.0.70
端口:22
用户名:root

  1. cdc用户加入wheel组,让cdc用户可以sudo提升权限。
usermod -aG wheel cdc

调整开机顺序

  1. 调整硬盘为启动的第一顺位。注意:此项设置需要关闭虚拟机才能操作。

源替换

  1. 为了提升软件安装速度,我们选择使用本地安装镜像作为软件的。首先确保虚拟机加载了 RockyLinux 的安装光盘镜像。
以下命令请在 FinalShell 上执行!
  1. 使用 root 用户登录。

  2. 解挂目录/mnt目录,准备把光盘挂载到此目录。

umount /mnt

如果没有挂载的情况下执行,会提示以下信息,表示目录状态是未挂载。这是正常的提示。

umount: /mnt:not mounted
  1. 挂载光盘内容到/mnt目录下
mount /dev/cdrom /mnt

重复执行挂载命令会提示类似以下信息,表示 /mnt 已经挂载:

mount: /mnt: WARNING: device write-protected, mounted read-only.
  1. 进入源配置目录。
cd  /etc/yum.repos.d/
  1. 新建 test 目录,并把原有 .repo 后缀的源文件备份到 test 目录下。
mkdir test -p
mv *.repo test
  1. 创建本地源local.repo
vi local.repo
  1. 输入以下内容,把源指向光盘镜像的挂载目录/mnt。此步骤主要安装软件资源包的时候,直接从光盘镜像安装。
[local-baseos]
name=Rocky Linux $releasever - Local - BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[local-appstream]
name=Rocky Linux $releasever - Local - AppStream
baseurl=file:///mnt/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

新增离线 Openstack 源

  1. 设置一个目录用于存储 Openstack 离线源
mkdir /opt/repo/openstack-yoga -p
  1. 上传离线源文件openstack-yoga-repo.tar.gz到该目录。
cd /opt/repo/openstack-yoga
rz

rz 是上传命令。

  1. 解压该文件。
tar -xvf openstack-yoga-repo.tar.gz
  1. 修改源的配置,新增以下配置。
vi /etc/yum.repos.d/local.repo
  • 新增以下内容
[local-openstack-yoga]
name=Openstack Yoga
baseurl=file:///opt/repo/openstack-yoga
gpgcheck=0
enabled=1
gpgkey=0
  1. 清理源缓存
dnf clean all
dnf makecache
  1. 尝试从源安装一些软件
dnf -y install vim
  • 如果出现类似以下信息,则表示安装成功。
已安装:
  gpm-libs-1.20.7-17.el8.x86_64                       
  vim-common-2:8.0.1763-19.el8_6.4.x86_64             
  vim-enhanced-2:8.0.1763-19.el8_6.4.x86_64           
  vim-filesystem-2:8.0.1763-19.el8_6.4.noarch         

完毕!

实现开机自动挂载/mnt

  1. 切换到root用户。
su
  1. 执行以下命令,把挂载命令加入开机自动执行脚本。
echo 'mount /dev/cdrom /mnt'>> /etc/rc.local
  1. 加入运行的权限
sudo chmod +x /etc/rc.local
  1. 执行脚本实现挂载/mnt
source /etc/rc.local
  1. 查看/mnt目录下是否有内容。
ls /mnt
  • 正常会出现以下内容
AppStream  BaseOS  EFI  images  isolinux  LICENSE  media.repo  TRANS.TBL

关闭 SELinux

  1. 关闭 SELinux,编辑配置文件,注意这里检查拼写不要有错误,否则容易导致系统无法启动。
sudo sed -i 's/=enforcing/=permissive/' /etc/selinux/config

  1. 打开配置进行检查。
cat /etc/selinux/config
  • 检查以下选项的值是否一致。
SELINUX=permissive
SELINUXTYPE=targeted
  1. 使配置立即生效
setenforce 0

【常见问题】

1. 如何查看 CentOS 虚拟机网卡信息。

ip a

2. 如何启用网卡

遇到网卡没有开机启用的情况,可以编辑网卡设置。如果网卡名称为enp0s3,则可以使用以下命令编辑enp0s3网卡配置。如果网卡名称不同,则需要修改以下命令为相应网卡名。

  • (1)先提升root权限
su
  • (2)编辑配置
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
  • (3)把 ONBOOT=no 修改为 ONBOOT=yes

  • (4)启用网卡

ifup enp0s3

3. 如何修改网卡的 IP 地址

  • (1)先提升root权限
su
  • (2)编辑配置,如果网卡名称为enp0s3,则可以使用以下命令编辑enp0s3网卡配置。如果网卡名称不同,则需要修改以下命令为相应网卡名。
vi /etc/sysconfig/network-scripts/ifcfg-enp0s3
  • (3)修改以下选项,并保存。
#IP 地址
IPADDR="10.0.0.70"
#掩码
PREFIX="24"
#网关
GATEWAY="10.0.0.254"
#DNS地址
DNS1="223.5.5.5"
  • (4)重启网络服务
sudo nmcli c reload
  • (5)再次查看IP地址是否更改成功
ip a

4. 遇到 VirtualBox 无法选择仅主机Host-Only网络,或者选择后出错的情况。

  • (1)关闭虚拟机,关闭VirtualBox。以管理员权限运行VirtualBox。
  • (2)从菜单“管理”->“主机网络管理器”
  • (3)创建一个新的网卡
  • (4)在虚拟机的网络设置选择新的网卡。

5. 实现开机挂载/mnt目录

  • (1) 提升到 root 权限
su
  • (2) 执行以下命令
echo 'mount /dev/cdrom /mnt'>> /etc/rc.local
sudo chmod +x /etc/rc.local
source /etc/rc.local

6. 挂载/mnt不成功,提示找不到媒体。

[root@tmpl ~]# mount /dev/cdrom /mnt
mount: 在 /dev/sr0 上找不到媒体

答: (1)检查虚拟光驱是否已经插入镜像文件。

(2)解挂,再重新挂载。

umount /mnt
mount /dev/cdrom /mnt

7. 安装软件不成功,提示“Error downloading packages:” 或者“ No more mirrors to try”

答:

  • (1)检查虚拟光驱是否已经插入镜像文件。

  • (2)解挂,再重新挂载。

umount /mnt
mount /dev/cdrom /mnt
  • (3)检查源的内容是否正确。
cat /etc/yum.repos.d/local.repo 

正常会展示以下内容

[local-openstack-yoga]
name=Openstack Yoga
baseurl=file:///opt/repo/openstack-yoga
gpgcheck=0
enabled=1
gpgkey=0

[local-baseos]
name=Rocky Linux $releasever - Local - BaseOS
baseurl=file:///mnt/BaseOS
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial

[local-appstream]
name=Rocky Linux $releasever - Local - AppStream
baseurl=file:///mnt/AppStream
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rockyofficial
  • (4)清理源缓存
dnf clean all
dnf makecache
  • (5)重新执行安装命令

8. 安装完成后,重启又进入安装界面。

答:这是因为没有调整虚拟机的启动顺序,安装以后,硬盘的启动顺序应该在光盘之前。关闭虚拟机,参考步骤36

9. FinalShell 连接不上虚拟机

答:

  • (1)检查虚拟机 IP 地址是否 10.0.0.70,在虚拟机输入以下命令
ip a
  • (2)检查虚拟机对应的虚拟网络适配器(网卡)的IP设置。
IP:10.0.0.2
掩码:255.255.255.0
网关:10.0.0.254

10. 如何对虚拟机进行备份(生成快照)

答: 虚拟机的备份称为快照,允许用户创建快照并且进行恢复。

  • (1)点击虚拟机的选项菜单,点击备份

  • (2)点击生成,输入快照名称和描述,可以创建快照。

如果需要恢复,可以右键点击对应的快照,选择恢复备份

【思考和探索】

  1. 主流的 Linux 系统除了 CentOS,还有哪些?
  2. 多台计算机(服务器)组网,通常需要配置哪些参数?
  3. Linux 中提到的源是什么?

扫码或长按识别访问