如何管理远程vagrant拉起的virtualbox虚拟机?

简介: 实际使用过程中,往往需要手动执行脚本在远程主机上创建拉起虚拟机,时间久了可能忘记这个虚拟机是从哪个宿主机上拉起的。

为何管理需要远程拉起一个虚拟机?

实际使用过程中,往往需要手动执行脚本在远程主机上创建拉起虚拟机,时间久了可能忘记这个虚拟机是从哪个宿主机上拉起的。

如果这个后续逐渐投入生产中,管理这些从限制服务器上"偷"来的虚拟机是一个大的挑战。

业界都是如何对集群做虚拟化的?

【1】我的想法

是否可以使用Windows 的virtualbox工具远程管理linux机器上拉起的虚拟机。目前这种虚拟化方案是在每个需要创建虚机的物理机器上安装virtualbox 和vagrant. 然后拉起虚拟机供K8s使用。

这种虚拟化成本不知道有没有大家使用过?


我在想是否可以开发一个界面来管理这些分布式的虚拟机.

7f5380ccb1444517b6fbba2abc237d00.png

virtualBox 官方的建议

需要额外安装扩展,类似于我的第一个想法。


d8612821754e4ac6be4bafc59fd5e184.jpgfef1d51481d34fd49fdff8fbfccc315d.png

6.1.20版本下载地址

什么是VBoxHeadless?

在linux机器上开了几个虚拟机,启动命令都是VBoxHeadles。 这个是什么意思呢?


Oracle VM VirtualBox therefore comes with a front-end called VBoxHeadless, which produces no visible output on the host at all, but still can optionally deliver VRDP data. This front-end has no dependencies on the X Window system on Linux and Oracle Solaris hosts.


也就是启动一个没有界面的虚拟机。

# Use the VBoxManage command, as follows:
$ VBoxManage startvm VM-name --type headless
The --type option causes Oracle VM VirtualBox to use VBoxHeadless as the front-end to the internal virtualization engine, instead of the Qt front-end.
# Use the VBoxHeadless command, as follows:
VBoxHeadless --startvm uuid|vmname

遗留问题: VBoxHeadless 之前叫VBoxVRDP

In legacy releases of Oracle VM VirtualBox, the headless server was called VBoxVRDP. For backwards compatibility, the Oracle VM VirtualBox installation still includes an executable with that name.

68a4b60c19e54f829f317095a928c2bb.png

windows上的虚拟机也有同样的进程

a9d5029a6d5f49049a32c559c9df1f82.png

宿主机启动vboxweb-service

什么是vboxweb-service?

这个web-svc和remotebox相互关联进行管理宿主机上的虚拟机。这个的功能类似于我们使用VBoxManage 管理命令查看、管理虚拟机类似。只不过是将这个过程在远程以web的形式展现出来。

/opt/vagrant]#VBoxManage list runningvms
"node1_default_1647242280112_12910" {9bdd280e-ef3e-42b9-9d73-f27e0558a6d3}
"node3_default_1647329276461_97486" {65fcea86-01f6-4805-9c78-d3afa4c7ab2d}
"node2_default_1647329289989_89030" {af8aff2c-3a92-4107-9d43-ef7578212254}
"pigsty_meta_1655797373146_20333" {094d9a65-d5a2-48ec-bbd1-05ed77dd94fa}
"master1" {7a83b753-149a-44c1-a69e-d701b2c47f50}
"master2" {b90f4050-37c2-4330-997d-338ad641ec09}
"master3" {7e7e16c2-43e0-4d4e-995c-ec653d999fbb}
"node4" {31d58233-11de-43a2-8a2d-c31d0f4dcb8c}
"node5" {d9de0220-2bae-4511-864f-d340b9c62fd1}
"node6" {8196e54c-7612-4c1f-89b5-eafceec1f795}

启动VBoxweb-svc

/opt/vagrant]#/usr/lib/virtualbox/vboxweb-service.sh  status
Checking for VBox Web Service ...not running

问题

启动之后这个web-svc很快会消失,问题待查

77c1c98b143f4b9e917995a7f2bb44f4.png

管理客户端安装 RemoteBox

安装RemoteBox

选择对应版本的virtualbox安装包.注意安装包使用的是bzip压缩方式.

解压参数为jxvf

tar -zxvf RemoteBox-3.1.tar.bz2

解压之后启动remote程序

b85c267b2e6f4273a7dc251eea50906e.png

报错处理

remotebox启动报错,perl缺失一个依赖。

36402bbd7a2942499383e82d659376ea.png

使用remotebox管理远程服务器上的虚拟机

我的理解就是这个remotebox是一个代理,可以通过tcp协议和remote 虚拟机进行通信。至少要能ping 通、telnet port要通。

如何在linux上批量管理创建的vm?

linux平台如果需要使用virtualbox GUI来管理创建的vm需要安装QT相关软件。

这个管理方式类似于virt-manager 直接拉起kvm创建的虚拟机一样。

2d7918161eee4c1ab71b4e794750d124.png

virt-manager 查看创建的虚拟机。

760368dd0e6f40fabcd3d35e4940cb78.png

什么是VRDP ?

VRDP is a backwards-compatible extension to Microsoft’s Remote Desktop Protocol (RDP)

参考

【1】virtualbox 官方解决方案

【2】实践

【3】youtobe视频实战

这我老哥的博客地址是: https://onlinecomputertips.com/

【4】 remote RDP实战

目录
相关文章
|
7月前
|
存储 运维 API
云计算中的虚拟机管理
云计算中的虚拟机管理
144 0
|
6月前
|
存储 Java C++
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据
Java虚拟机(JVM)管理内存划分为多个区域:程序计数器记录线程执行位置;虚拟机栈存储线程私有数据,如局部变量和操作数;本地方法栈支持native方法;堆存放所有线程的对象实例,由垃圾回收管理;方法区(在Java 8后变为元空间)存储类信息和常量;运行时常量池是方法区一部分,保存符号引用和常量;直接内存非JVM规范定义,手动管理,通过Buffer类使用。Java 8后,永久代被元空间取代,G1成为默认GC。
70 2
|
7月前
|
编解码 Oracle iOS开发
VirtualBox虚拟机安装Mac OS X Lion系统详解
VirtualBox虚拟机安装Mac OS X Lion系统详解
333 1
|
7月前
|
分布式计算 大数据 Hadoop
【经验分享】用Linux脚本管理虚拟机下的大数据服务
【经验分享】用Linux脚本管理虚拟机下的大数据服务
61 1
|
7月前
|
存储 Linux KVM
|
7月前
|
XML 数据格式
virsh一个管理虚拟机的命令行工具
virsh是一个管理虚拟机的命令行工具,提供了丰富的命令来查看、创建、管理虚拟机。以下是一些常用的virsh命令: 1. **查看帮助和版本**: - `virsh --help`:查看virsh命令的帮助信息。 - `virsh -version`:查看virsh的版本信息。 2. **查看虚拟机**: - `virsh list`:显示当前正在运行的虚拟机。 - `virsh list --all`:显示主机下的所有虚拟机,包括未运行的。 3. **创建和管理虚拟机**: - `virsh define xml`:使用XML文件定义(创建)虚拟机。
352 0
|
7月前
|
Kubernetes Linux 数据安全/隐私保护
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
k8s安装环境准备:Virtualbox安装CentOS;复制多个CentOS虚拟机
129 0
|
7月前
|
Oracle 关系型数据库 Linux
Vagrant 搭建虚拟机环境
Vagrant 搭建虚拟机环境
99 0
|
大数据 Linux 网络安全
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网
407 0
VirtualBox虚拟机里安装centos和虚拟机相互通讯和访问外网
|
存储 网络协议 虚拟化
存储与虚拟机管理 3
存储与虚拟机管理
95 0
下一篇
DataWorks