现在好多公司都已经有了比较完善的虚拟化平台,基本上可以做到虚拟机生成、克隆等一键操作。但是如果没有现成平台的话,可能就需要笨一点的方法来安装虚拟机了。

本文所说的 物理机 是指 要在上面安装虚拟机的那台机器。一般指 CPU、内存、磁盘空间这些都很强悍的服务器,在这种服务器上安装虚拟机后有诸多好处:

1、使用更安全,操作更放心。在虚拟机里操作,就再也不用提心吊胆怕把服务器搞崩了。
2、系统可选项更多。你可以安装多个不同厂家、不同版本的系统了。比如 centos7.6,centos8.2 等。
3、免密登录很快捷。配置宿主机到虚拟机的免密登录以后,使用也很方便,可以用 scp 实现虚拟机和宿主机之间的文件传输。
4、资源利用更充分,工作效率更高效。服务器性能那么强悍,只装一个系统显然太浪费了。

首先需要安装一下图形化桌面虚拟机管理机,可以下载 Fedora 或者 Centos,本文以 Fedora 34 (其他的应该差不多,我自己实际测过的是用例的这个系统)为例:

下载 Fedora

https://mirrors.nju.edu.cn/fedora//releases/34/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-34-1.2.iso

安装 Fedora

在 VMware虚拟机上安装 Fedora 系统,使用默认安装(语言:English;时区:上海),建议至少 4G 内存,2 * 2 处理器,40G 磁盘空间。安装完成后重启(资源不够的话可能会造成启动异常)。然后以普通用户登入系统。

安装软件

打开命令行终端,使用 sudo 安装虚拟机管理器,虚拟机查看器,虚拟机安装器等相关软件

sudo dnf install virt-manager virt-viewer virt-install

修改配置

修改 ssh 配置

配置 /etc/ssh/ssh_config,添加 IPQoS=throughput 信息。

修改 config 配置

添加 config 文件到 ~/.ssh 目录下,配置物理机 HostName、Port 和 User 等信息(方便后续免密登录)。配置格式示例如下:

Host p32111
    HostName xxx.xx.xxx.xx
    Port 32111
    User root

Host p32071
    HostName xxx.xx.xxx.xx
    Port 32071
    User root

生成本地密钥信息

ssh-keygen

拷贝公钥到物理机

使用 ssh-copy-id 命令拷贝本地公钥到物理机(需要先设置 ~/.ssh/config 文件才可以直接用自定义的机器名 p32111,否则请使用 port, user, ip 拼接的完整命令形式

ssh-copy-id p32111

中间过程需要你输入远端物理机的密码。 

拷贝完成以后,就会提示你可以直接使用 ssh p32111 的方式免密登录远端物理机了。或者用 ssh -p <port> <username>@<ip> 的形式

ssh-copy-id 这个命令本质上就是把本地 ~/.ssh/id_rsa.pub 中的内容添加到远端物理机的 ~/.ssh/authorized_keys 里边去。所以,实在不行的话,你手动拷贝也丝毫没什么问题。

查看连接

virt-manager

当然,这个 virt-manager 和 virsh 功能差不多,只不过一个是图形化界面的管理工具,一个是纯命令行的管理工具。

使用 virt-manager 查看已有连接(会自动列出连接的物理机上已安装的虚拟机以及虚拟机的当前状态)以及添加新的与物理机的连接。

virt-manager

virt-viewer

可以使用 virt-viewer 查看已有连接,查看示例如下:

virt-viewer --connect qemu+ssh://root@xxx.xx.xxx.xx:32111/system

 

可以选择已列出的虚拟机,登录到其中的一个虚拟机内部进行查看。

虚拟机安装和克隆

虚拟机安装

提前修改 virt-install 命令的相关参数,确认无误后回车运行。

virt-install --connect qemu+ssh://root@xxx.xx.xxx.xx:32111/system --virt-type kvm --vcpus 4 --memory 4096 --name cs76-z --cdrom /var/lib/libvirt/images/CentOS-7-x86_64-DVD-1810.iso --disk path=/var/lib/libvirt/images/CentOS-7-x86_64-DVD-1810-z.qcow2,size=240 --boot cdrom --network network=default --graphics vnc,listen=0.0.0.0

 稍等片刻,便会启动图形化安装界面。

安装时注意配置网络,打开以太网(打开后会自动分配 IP),同时修改主机名称。

系统软件安装可以根据自己实际需求选择(一般选择 标准 最小安装)。

 

可以自定义分区,我自己一般会将 / 根目录的容量设置大一些。

安装完成以后,需要重新设置一下虚拟机的 Boot 启动项,修改为 Disk 启动,同时开启主机启动后自动启动虚拟机的选项。

虚拟机克隆

在虚拟机关闭状态下,以其中的一台虚拟机为母机克隆虚拟机,并重新设置虚拟机的名字和路径(记得要避免和已有虚拟机的名字重复)

克隆完成以后,开启虚拟机,同时记一下机器的 IP 和 Host。在物理机上配置从物理机到虚拟机的免密登录。

修改物理机上的 ~/.ssh/config 文件,添加虚拟机的 IP 和 Host 信息。

配置免密登录(使用 ssh-keygen 和 ssh-copy-id 命令,使用方式同前例)

 

可以使用 hostnamectl set-hostname <NAME> 命令修改(在虚拟机里边执行)虚拟机的名字(这个名字和 ssh 免密登录的名字没有关系,主要是影响登录到虚拟机后的显示

hostnamectl set-hostname rhe1-7.6-c

 一般对于克隆的虚拟机,会把主机名称也一块克隆过来,可以使用 hostnamectl 修改区分一下,下次进入的时候主机名就会变成新修改后的名字了 

[root@p32111-oe-x86 ~]# ssh rhel-server-7.6-c
Last login: Tue Nov 30 15:27:21 2021 from gateway
[root@rhe1-7.6-c ~]# 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐