kregel / homestead
一个 Laravel Nova 工具。
Requires
- php: >=7.1.0
- illuminate/database: >=5.8
- illuminate/support: >=5.8
Requires (Dev)
- laravel/framework: 5.8.*
- dev-master
- v0.0.4
- v0.0.3
- v0.0.2
- v0.0.1
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/dns-packet-1.3.4
- dev-dependabot/npm_and_yarn/hosted-git-info-2.8.9
- dev-dependabot/npm_and_yarn/lodash-4.17.21
- dev-dependabot/npm_and_yarn/y18n-3.2.2
- dev-dependabot/npm_and_yarn/elliptic-6.5.4
- dev-dependabot/npm_and_yarn/ini-1.3.8
- dev-dependabot/npm_and_yarn/websocket-extensions-0.1.4
- dev-rename-to-supervisor
This package is auto-updated.
Last update: 2024-09-12 01:11:59 UTC
README
你是否曾希望有一个管理虚拟机的界面,而不要让它看起来像是2000年代初的样子?不必再找了。这个软件包旨在满足一个非常非常非常小的爱好者的细分市场,他们既有 Laravel Nova 下载,又需要管理虚拟机。
这个软件包目前支持远程管理,所以假设你打开了托管此应用程序的服务器上的所有端口,并且你连接的用户有权访问所有文件,你可以在 DigitalOcean 服务器上托管此应用程序,并管理你家里的虚拟机服务器。😉
快速导航
- 替代方案是什么
- 项目目标
- 在开始之前
- 从本软件包安装 libvirt-php
- 安装 VNC 客户端
- 管理 VNC
- 权限
- 开发/为此项目做出贡献
- Libvirt-php 自动完成
- 在 nova 之外使用 LibvirtService 类
- 安全
- 许可证
- 支持我或此软件包
替代方案是什么?
好吧,对于这个特定的软件,我不太了解有其他替代方案...(它们可能存在...)
目标
为仅创建新虚拟机提供非常基本的创建/读取/更新/删除功能。
- 创建 (#1)
- 读取
- 更新
- 删除
- 启动虚拟机
- 停止虚拟机
- 强制停止虚拟机
- 通过 VNC 访问
- 重启虚拟机
- SSH 远程管理
- SSH 私钥认证
- 密码认证
- 多个虚拟化程序
- 自定义网络
- 编辑虚拟机的磁盘(增加大小,更改格式?)
奖金
- 添加透传设备?
- 添加快照?(看起来可能可以通过 libvirt 实现)
- 给虚拟机添加标签,并在 UI 中管理标签。
- 添加一种让虚拟机从远程源下载 ISO 的方式。
- 添加一种管理 ISO 的方式,这样你的虚拟机就不需要从外部服务器下载 ISO。
- 查看虚拟机 CPU 统计信息,并在虚拟机的显示页上以图表形式显示。
- 测试驱动程序 LXC - Linux 容器
- 测试驱动程序 OpenVZ
- 测试驱动程序 QEMU
- 测试驱动程序 VirtualBox
- 测试驱动程序 VMware ESX
- 测试驱动程序 VMware Workstation/Player
- 测试驱动程序 Xen
- 测试驱动程序 Microsoft Hyper-V
- 测试驱动程序 Virtuozzo
- 测试驱动程序 Bhyve - BSD 虚拟机管理程序
- Qcow2 磁盘加密(QEMU)
在开始之前。
这只是一个管理程序的管理仪表板。如果你愿意,可以称之为虚拟机管理程序控制台。你不需要在提供服务的 Web 服务器上安装 qemu 或 virt-manager。然而,你需要使用本软件包中包含的 libvirt 库。本软件包中构建的库已经进行了修补和更新,以减少隐藏的错误消息并修复一些错误。
安装此软件包
composer require kregel/nova-homestead
让 Nova 了解其存在。
// In your app/Providers/NovaServiceProvider.php public function tools() { return [ // ... new \Kregel\Homstead\Homestead(), ]; }
安装 libvirt-php。
预安装构建工具
sudo apt install build-essential autoconf automake libtool bison re2c pkg-config libvirt-dev libxml2-dev xsltproc libxml2-utils libmagickwand-dev
另外,确保你的 PHP 实例已安装并启用了 imagick
。
git clone git@github.com:austinkregel/libvirt-php
cd libvirt-php
./autogen.sh
make
sudo make install
安装 VNC 客户端
为了直接查看您的虚拟机(VM)的输出,您需要使用这个VNC客户端。我仅在Ubuntu 19.04的QEMU上亲自测试过novnc
。
sudo apt update sudo apt install snapd sudo snap install novnc
管理 VNC
目前,我理解要查看虚拟机的tty会话,我们必须启动一个新的novnc实例来代理该虚拟机的输出到您的浏览器。目前,我还不确定如何支持这一点。如果您知道如何管理这一点,请提出一个issue或PR!
因此,目前我只是用1个虚拟机进行测试,并且我手动启动了一个novnc实例。我知道这有点麻烦,但现在它有效。
权限
确保用户有访问libvirt-qemu
组的权限。通常这意味着以root用户运行程序,但如果您知道其他方法,也请尝试一下。
开发和贡献此项目
有关详细信息,请参阅CONTRIBUTING。
发行说明
随着这个项目的不断发展和完善,您可以在Changelager上跟踪发行信息。
libvirt-php自动完成
目前有一个名为build-doc.php
的脚本,它将从libvirt库中提取所有方法并将其放入.phpstorm.meta.php
文件中。这些方法内部发生的逻辑只能在原始的C/C++代码的./docker/php/libvirt-php/src
目录中找到。
抽象化
此包的底层API不需要Laravel Nova,并且可以在其外部使用。您只需确保使用任何版本>5.0的illuminate/support
即可。
安全
如果您发现任何与安全相关的问题,请通过电子邮件security@metabit.services而不是使用issue跟踪器。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可文件。
支持
如果您喜欢我的内容,请考虑在Kofi上支持我。