使用Cockpit UI RHEL CentOS 8创建KVM虚拟机

时间:2020-01-09 10:37:53  来源:igfitidea点击:

使用RHEL/CentOS 8 Linux中的Cockpit Web控制台创建KVM虚拟机。

什么是Cockpit?

  • RHEL/CentOS Web控制台是一个名为Cockpit的开源项目,它提供了用户友好的Web界面,允许对服务器进行远程管理。

  • 从RHEL/CentOS 7开始,cockpit软件包提供了功能强大且可扩展的Web控制台,用于系统管理。

  • 我们可以从他们的官方项目页面了解有关驾驶舱的更多信息

  • 默认情况下,Cockpit安装在RHEL/CentOS 8上,这就是为什么我们可能会在屏幕上看到登录消息的原因每次使用以下方法激活Web控制台:systemctl enable --now cockpit.socket每次连接到RHEL/CentOS 8框时。

安装Cockpit

  • 如前所述,默认情况下,应在RHEL/CentOS 8 Linux服务器上安装座舱

  • 但是,如果未安装,则可以使用dnf或者yum手动安装。
    我希望我们已经知道YUM替代DNF工具

  • 我们还将需要" cockpit-machines"在驾驶舱中添加一个新插件,我们将使用该插件使用" Cockpit"创建KVM虚拟机。

[root@rhel-8 ~]# dnf install -y cockpit cockpit-machines

以下是本文中使用的驾驶舱rpm版本

[root@rhel-8 ~]# rpm -q cockpit
cockpit-196.3-1.el8.x86_64
[root@rhel-8 ~]# rpm -q cockpit-machines
cockpit-machines-197.3-1.el8.noarch

启用并启动Cockpit

  • Cockpit服务由cockpit.socket处理

  • 因此,我们无需担心cockpit.service(除非被屏蔽)

  • 我们只需要启动并启用cockpit.socket

[root@rhel-8 ~]# systemctl enable cockpit.socket --now

检查Cockpit状态

[root@rhel-8 ~]# systemctl status cockpit.socket
● cockpit.socket - Cockpit Web Service Socket
   Loaded: loaded (/usr/lib/systemd/system/cockpit.socket; enabled; vendor preset: disabled)
   Active: active (listening) since Wed 2017-04-29 01:45:39 IST; 4 days ago
     Docs: man:cockpit-ws(8)
   Listen: [::]:9090 (Stream)
    Tasks: 0 (limit: 26213)
   Memory: 2.4M
   CGroup: /system.slice/cockpit.socket
  • cockpit.service可能是dead
    这是因为当前没有对cockpit.service的传入请求。

  • cockpit.socket收到请求后,它将自动启动服务。

[root@rhel-8 ~]# systemctl status cockpit
● cockpit.service - Cockpit Web Service
   Loaded: loaded (/usr/lib/systemd/system/cockpit.service; static; vendor preset: disabled)
   Active: inactive (dead)
     Docs: man:cockpit-ws(8)

Apr 29 01:45:39 rhel-8.example.com systemd[1]: Starting Cockpit Web Service Socket.
Apr 29 01:45:39 rhel-8.example.com systemd[1]: Listening on Cockpit Web Service Socket.

为Cockpit启用防火墙

默认情况下,应该有一个规则允许cockpit.service

[root@rhel-8 ~]# firewall-cmd --list-services
cockpit dhcpv6-client ssh

但是,如果不存在,则可以创建一个新的防火墙规则,以允许在"防火墙"中使用驾驶舱。

# firewall-cmd --add-service=cockpit --permanent
# firewall-cmd --reload

访问Cockpit Web控制台GUI

启用并启动cockpit.socket之后,接下来我们可以访问cockpit Web控制台GUI:

使用浏览器连接

打开浏览器,并在地址链接中输入" http://server-ip:9090"或者" http://localhost:9090"

使用CLI连接

从命令行以root或者非root用户身份可以启动firefox

$firefox server-ip:9090

或者

$firefox localhost:9090

通过提供用户名和密码,以任何Linux系统用户身份登录。
下面是Cockpit Web控制台登录屏幕,

配置桥接网络

  • 我们可以配置桥接网络或者在我们使用Cockpit创建KVM虚拟机时将使用的任何其他类型的网络

  • 我们可以使用nmcli工具或者ip工具创建网络,也可以使用Cockpit Web控制台GUI配置桥接网络

  • 就我而言,我已经创建了桥接网络,但是我将共享来自Cockpit Web控制台的屏幕截图,因此我们也可以为用例创建一个。

  • 我已经创建了" nm-bridge"作为我的桥接接口,并创建了" virbr0"作为系统的默认桥接接口。

使用Cockpit创建KVM虚拟机

要使用Cockpit或者任何其他方法创建KVM虚拟机,重要的是所有与KVM相关的rpm和已安装的模块都已加载到Linux服务器主机上。

在Cockpit Web控制台上,从左侧面板中单击"虚拟机"。
如果我们尚未安装cockpit-machines,则不会在Cockpit Web Console上获得此选项。

就我而言,我的KVM主机上已经运行了不同的虚拟机。
我们现在可以忽略它们。

单击"创建虚拟机"后,将弹出一个屏幕,我们必须其中提供新虚拟机的详细信息。

我已经下载了CentOS 8 ISO,并将其保留在"/tmp"下,以使用Cockpit创建KVM虚拟机。

[root@rhel-8 ~]# ls -l /tmp/CentOS-8.1.1911-x86_64-dvd1.iso
-rw-r--r--. 1 qemu qemu 7554990080 Jan  4 03:17 /tmp/CentOS-8.1.1911-x86_64-dvd1.iso

我们将在"安装源"下提供此ISO的路径

接下来,为VM提供其他详细信息,例如磁盘大小,内存,操作系统供应商。
在撰写本文时,CentOS 8尚未显示在OS Vendor列表下,因此我选择了CentOS 7.

最后单击"创建"以使用Cockpit创建KVM虚拟机

下一步,我们将再次进入"虚拟机"的主要部分,如果一切成功,将创建一个新的VM。
我们可以通过选择相应VM的相应TAB菜单来检查VM的详细信息,例如"添加磁盘","网络接口"。

目前,在撰写本文时,Cockpit不支持管理KVM虚拟机所需的许多重要功能。
我们可以从Red Hat的文档中获得Cockpit Web控制台和Virtual Manager之间缺少的功能的完整列表。

或者,我们也可以使用命令行工具virsh来管理和修改KVM虚拟机

接下来,单击"安装"以开始安装过程,该过程将自动将我们重定向到VM的控制台。

我们也可以单击"控制台"以使用VNC访问VM的控制台。

从下拉菜单中,我们可以选择使用串行控制台或者使用virt-viewer访问控制台。

接下来,我们可以按照"步骤在KVM VM上安装各自的操作系统"。

我们使用Cockpit创建的虚拟机也可以通过virt-managervirsh访问。
我们可以使用virt-manager来管理虚拟机,该虚拟机当前提供了更多功能列表,用于修改和管理KVM虚拟机。