searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

内网机器如何创建虚拟机环境(yum源失效,只能与跳板机通信,以安装ctyunos2为例)

2024-08-30 09:39:24
32
0

背景说明

由于目标机器只有内网(无法使用yum install),只能跟跳板机连接,因此需要手动下载包的文件和相关依赖,然后完成软件安装。

为方便操作,首先在网络正常的主机上下载全部的包和相关依赖,然后将这些包和依赖全部打包至同一个文件夹下,将该文件夹通过scp的方式发送至目标机器,然后在目标机器上进行手动安装。我们将网络正常的主机记为A主机,需要搭建虚拟机环境的目标主机记为B主机。

A主机操作

A主机上的基本操作如下:

1、在有网和稳定yum源的机器上下载rpm包和所有依赖(置于同一文件夹中)

2、将rpm包和所有依赖发送至目标机器

3、将虚拟机镜像文件发送至目标机器

注意:

rpm包一定要注意版本对应!!!

如果目标主机B的操作系统为ctyunos 3,那么在A主机的操作系统也必须是ctyunos 3,这样下载的rpm包的版本才是相互对应的。如果版本不对应会导致系统奔溃。现象为基础命令(ls等)无法使用。

step 1 下载与虚拟机环境构建相关工具的rpm包
与虚拟机环境构建相关的工具包括:qemu-img、libvirt、virt-install。对上述工具的介绍如下:

  1. qemu-img: qemu-img用于管理虚拟磁盘镜像文件。用它我们可以创建、转换、检查和修改各种格式的磁盘镜像,实现对镜像进行扩容、缩减、格式化以及检查错误等操作。例如,使用qemu-img create命令可以创建一个新的虚拟磁盘文件。
  2. ​libvirt: libvirt提供了对多种虚拟化技术(如 KVM、QEMU、Xen 等)的统一访问接口。libvirt的目标是为虚拟化工具提供一套方便、可靠的编程接口,比如它提供了一个守护进程 libvirtd和一个命令行工具virsh,能够轻松控制虚拟机,比如启动、停止、查看状态等等。
  3. ​virt-install: virt-install支持 libvirt API 的虚拟化平台上创建新的虚拟机并安装操作系统。它支持从本地介质或通过网络(如 HTTP、FTP 或 NFS)进行安装。当想快速搭建一个虚拟机,但是又不想手动配置各种复杂的参数时,可以选用virt-install安装的方式。这个命令行工具能让你用几行命令就部署好一台虚拟机,还能自动安装操作系统。不管是从本地光盘启动,还是通过网络安装,使用virt-install都是比较方便的。

下载一个rpm包不仅需要下载这个包本身,而且也要下载其相关的所有依赖,repotrack命令可以很容易地实现这个功能。repotrack属于 yum-utils包的一部分。主要功能是下载指定的RPM包及其所有依赖项,并将它们保存在本地目录中,从而简化了离线安装的过程。具体命令如下:

mkdir <package-name>
cd <package-name>
repotrack <package-name>

解释:

  • 将package-name替换为要下载的软件包的名称。

除了repotrack命令之外,yumdownloader命令也是一种下载依赖项的有效方式,使用方法如下:

yumdownloader --resolve <package_name>

下载好这三种工具的rpm包和相关依赖之后,将所有文件打包到“virtools”文件夹中,并压缩为"virtools.zip"

step 2 通过scp从A主机将相关rpm包发送至B主机

scp /pathA/virtools.zip root@ipB:/pathB

解释:

  • pathA为A主机中virtools.zip所在文件路径;
  • pathB为B主机中存放virtools.zip的文件路径;
  • ipB为B主机的ip地址

step 3 通过scp从A主机将虚拟机镜像文件发送至B主机

将虚拟机镜像文件发送至B主机,此处所使用的镜像文件是ctyunos2的qcow2文件。qcow2用于高效地存储和管理虚拟硬盘,允许用户创建虚拟磁盘的特定状态的副本,而无需复制整个磁盘。因此在此处是直接使用了已有虚拟机的.qcow2文件。查看已有虚拟机的XML配置和.qcow2文件的位置的方法如下:

virsh dumpxml vmname| grep '.qcow2'

其中vmname为已有虚拟机的名称。为了方便虚拟机的配置,可将xml文件和.qcow2文件一同发送至目标主机B。复制xml文件的方法如下:

virsh dumpxml vmname> vmname_copy.xml

将xml文件和.qcow2文件一同打包压缩至ctyunos2.zip,并发送到目标机器

scp /pathA/ctyunos2.zip root@ipB:/pathB

解释:

  • pathA为A主机中ctyunos2.zip所在文件路径;
  • pathB为B主机中存放ctyunos2.zip的文件路径;
  • ipB为B主机的ip地址

注意:也可以使用其他格式的镜像文件,只是通过.qcow2文件创建虚拟机会更加便捷。

B主机操作

step 1 在B主机完成rpm包的离线安装
将接收到的virtools.zip文件进行解压,然后cd进入到各自单独的文件夹中,完成rpm包的离线安装,具体安装命令如下:

rpm -Uvh *.rpm --force --nodeps

解释:

  • -Uvh:执行升级操作并显示详细的安装进度。
  • .rpm:指定要安装的RPM软件包,*.rpm通配符表示当前目录下的所有.rpm文件。
  • --force:强制安装,即覆盖掉已有的同名软件包。
  • --nodeps:不检查和处理软件包依赖关系。

下图为安装qemu-img的截图,执行命令的目录为qemu-img:

image-20240815152009427.png

step 2 虚拟机的相关配置
由于我们所使用的是qcow2文件,意味着我们已经有了一个完整的虚拟磁盘镜像,可直接进行虚拟机的配置。

(1)打开xml文件,修改其中的参数:(通常不需要将xml文件拷贝到特定的目录)
image-20240816104808239.png

其中,

  • name可以自定义,在这里将其称之为ctyunos2_2;
  • uuid(通用唯一识别码)用于唯一标识虚拟机。在虚拟机管理中,UUID可以帮助系统区分不同的虚拟机,确保每个虚拟机都有唯一的标识。可以自己改,只要跟系统中其他的uuid不冲突即可,注意uuid的格式要求:UUID应符合标准的格式,即一个32位的十六进制数字,分成5个部分,用连字符分隔;
  • source file为.qcow2所在的位置

(2)定义XML文件

virsh define ctyunos2_2.xml

将一个虚拟机的定义从 XML 文件中导入到虚拟化管理程序(例如 Libvirt)的数据库中。这个过程不会启动虚拟机,只是定义它,以便将来可以启动或管理它。

(3)开启虚拟机

virsh start ctyunos2_2

(4)修改虚拟机的账号和密码

virsh set-user-password ctyunos2_2 <ID>  <password>

(5)进入虚拟机

virsh console ctyunos2_2

总结

综上所述,在内网机器上搭建虚拟机环境的方法还是较为简单的。总结可分为以下几个步骤:在有网机器上下载虚拟化工具的rpm包及依赖项->将rpm包和依赖项以及.qcow2虚拟机镜像文件发送至目标机器->在目标机器上配置虚拟机xml文件并开启虚拟机。

0条评论
0 / 1000
c****d
4文章数
0粉丝数
c****d
4 文章 | 0 粉丝
原创

内网机器如何创建虚拟机环境(yum源失效,只能与跳板机通信,以安装ctyunos2为例)

2024-08-30 09:39:24
32
0

背景说明

由于目标机器只有内网(无法使用yum install),只能跟跳板机连接,因此需要手动下载包的文件和相关依赖,然后完成软件安装。

为方便操作,首先在网络正常的主机上下载全部的包和相关依赖,然后将这些包和依赖全部打包至同一个文件夹下,将该文件夹通过scp的方式发送至目标机器,然后在目标机器上进行手动安装。我们将网络正常的主机记为A主机,需要搭建虚拟机环境的目标主机记为B主机。

A主机操作

A主机上的基本操作如下:

1、在有网和稳定yum源的机器上下载rpm包和所有依赖(置于同一文件夹中)

2、将rpm包和所有依赖发送至目标机器

3、将虚拟机镜像文件发送至目标机器

注意:

rpm包一定要注意版本对应!!!

如果目标主机B的操作系统为ctyunos 3,那么在A主机的操作系统也必须是ctyunos 3,这样下载的rpm包的版本才是相互对应的。如果版本不对应会导致系统奔溃。现象为基础命令(ls等)无法使用。

step 1 下载与虚拟机环境构建相关工具的rpm包
与虚拟机环境构建相关的工具包括:qemu-img、libvirt、virt-install。对上述工具的介绍如下:

  1. qemu-img: qemu-img用于管理虚拟磁盘镜像文件。用它我们可以创建、转换、检查和修改各种格式的磁盘镜像,实现对镜像进行扩容、缩减、格式化以及检查错误等操作。例如,使用qemu-img create命令可以创建一个新的虚拟磁盘文件。
  2. ​libvirt: libvirt提供了对多种虚拟化技术(如 KVM、QEMU、Xen 等)的统一访问接口。libvirt的目标是为虚拟化工具提供一套方便、可靠的编程接口,比如它提供了一个守护进程 libvirtd和一个命令行工具virsh,能够轻松控制虚拟机,比如启动、停止、查看状态等等。
  3. ​virt-install: virt-install支持 libvirt API 的虚拟化平台上创建新的虚拟机并安装操作系统。它支持从本地介质或通过网络(如 HTTP、FTP 或 NFS)进行安装。当想快速搭建一个虚拟机,但是又不想手动配置各种复杂的参数时,可以选用virt-install安装的方式。这个命令行工具能让你用几行命令就部署好一台虚拟机,还能自动安装操作系统。不管是从本地光盘启动,还是通过网络安装,使用virt-install都是比较方便的。

下载一个rpm包不仅需要下载这个包本身,而且也要下载其相关的所有依赖,repotrack命令可以很容易地实现这个功能。repotrack属于 yum-utils包的一部分。主要功能是下载指定的RPM包及其所有依赖项,并将它们保存在本地目录中,从而简化了离线安装的过程。具体命令如下:

mkdir <package-name>
cd <package-name>
repotrack <package-name>

解释:

  • 将package-name替换为要下载的软件包的名称。

除了repotrack命令之外,yumdownloader命令也是一种下载依赖项的有效方式,使用方法如下:

yumdownloader --resolve <package_name>

下载好这三种工具的rpm包和相关依赖之后,将所有文件打包到“virtools”文件夹中,并压缩为"virtools.zip"

step 2 通过scp从A主机将相关rpm包发送至B主机

scp /pathA/virtools.zip root@ipB:/pathB

解释:

  • pathA为A主机中virtools.zip所在文件路径;
  • pathB为B主机中存放virtools.zip的文件路径;
  • ipB为B主机的ip地址

step 3 通过scp从A主机将虚拟机镜像文件发送至B主机

将虚拟机镜像文件发送至B主机,此处所使用的镜像文件是ctyunos2的qcow2文件。qcow2用于高效地存储和管理虚拟硬盘,允许用户创建虚拟磁盘的特定状态的副本,而无需复制整个磁盘。因此在此处是直接使用了已有虚拟机的.qcow2文件。查看已有虚拟机的XML配置和.qcow2文件的位置的方法如下:

virsh dumpxml vmname| grep '.qcow2'

其中vmname为已有虚拟机的名称。为了方便虚拟机的配置,可将xml文件和.qcow2文件一同发送至目标主机B。复制xml文件的方法如下:

virsh dumpxml vmname> vmname_copy.xml

将xml文件和.qcow2文件一同打包压缩至ctyunos2.zip,并发送到目标机器

scp /pathA/ctyunos2.zip root@ipB:/pathB

解释:

  • pathA为A主机中ctyunos2.zip所在文件路径;
  • pathB为B主机中存放ctyunos2.zip的文件路径;
  • ipB为B主机的ip地址

注意:也可以使用其他格式的镜像文件,只是通过.qcow2文件创建虚拟机会更加便捷。

B主机操作

step 1 在B主机完成rpm包的离线安装
将接收到的virtools.zip文件进行解压,然后cd进入到各自单独的文件夹中,完成rpm包的离线安装,具体安装命令如下:

rpm -Uvh *.rpm --force --nodeps

解释:

  • -Uvh:执行升级操作并显示详细的安装进度。
  • .rpm:指定要安装的RPM软件包,*.rpm通配符表示当前目录下的所有.rpm文件。
  • --force:强制安装,即覆盖掉已有的同名软件包。
  • --nodeps:不检查和处理软件包依赖关系。

下图为安装qemu-img的截图,执行命令的目录为qemu-img:

image-20240815152009427.png

step 2 虚拟机的相关配置
由于我们所使用的是qcow2文件,意味着我们已经有了一个完整的虚拟磁盘镜像,可直接进行虚拟机的配置。

(1)打开xml文件,修改其中的参数:(通常不需要将xml文件拷贝到特定的目录)
image-20240816104808239.png

其中,

  • name可以自定义,在这里将其称之为ctyunos2_2;
  • uuid(通用唯一识别码)用于唯一标识虚拟机。在虚拟机管理中,UUID可以帮助系统区分不同的虚拟机,确保每个虚拟机都有唯一的标识。可以自己改,只要跟系统中其他的uuid不冲突即可,注意uuid的格式要求:UUID应符合标准的格式,即一个32位的十六进制数字,分成5个部分,用连字符分隔;
  • source file为.qcow2所在的位置

(2)定义XML文件

virsh define ctyunos2_2.xml

将一个虚拟机的定义从 XML 文件中导入到虚拟化管理程序(例如 Libvirt)的数据库中。这个过程不会启动虚拟机,只是定义它,以便将来可以启动或管理它。

(3)开启虚拟机

virsh start ctyunos2_2

(4)修改虚拟机的账号和密码

virsh set-user-password ctyunos2_2 <ID>  <password>

(5)进入虚拟机

virsh console ctyunos2_2

总结

综上所述,在内网机器上搭建虚拟机环境的方法还是较为简单的。总结可分为以下几个步骤:在有网机器上下载虚拟化工具的rpm包及依赖项->将rpm包和依赖项以及.qcow2虚拟机镜像文件发送至目标机器->在目标机器上配置虚拟机xml文件并开启虚拟机。

文章来自个人专栏
操作系统jdd
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0