open-vm-tools 是一组服务和模块,可启用 VMware 产品中的多项功能,以便更好地管理来宾以及与来宾的无缝用户交互。它包括用于增强运行 Linux 或其他 VMware 支持的 Unix 类客户操作系统的虚拟机性能的内核模块。
open-vm-tools 在 VMware 产品中启用以下功能:
在来宾中正常执行电源操作(重新启动和关闭)。
在各种电源操作期间,在来宾中执行内置或用户配置的脚本。
在来宾中运行程序、命令和文件系统操作以增强来宾自动化。
访客操作的身份验证。
为 vSphere HA 解决方案生成从来宾到主机的检测信号,以确定来宾的可用性。
访客和主机之间的时钟同步。
静默来宾文件系统以允许主机捕获文件系统一致的来宾快照。
在静默来宾文件系统时执行预冻结和解冻后脚本。
开机后立即客制化。
定期从来宾收集网络、磁盘和内存使用信息。
调整访客图形桌面屏幕的大小。
VMware Workstation 和 VMware Fusion 上的主机和来宾文件系统之间的共享文件夹操作。
在来宾和主机或客户端桌面之间复制和粘贴文本、图形和文件。
在来宾和主机 UI 之间拖放文件。
定期收集来宾中正在运行的应用程序、服务和容器。
从 GuestStore 访问内容。
将数据发布到 Guest Data Publisher。
管理来宾变量中指定的 Salt-Minion 所需状态。
以下组件已作为开源软件发布:
用于各种设备和文件系统访问的 Linux、Solaris 和 FreeBSD 驱动程序。
PowerOps 插件用于执行优雅的电源操作并运行电源脚本。
VIX 插件用于在来宾中运行程序和命令以及执行文件系统操作。
GuestInfo 插件定期收集访客的各种统计信息。
TimeSync 插件用于执行时间同步。
dndcp 插件支持拖放以及文本和文件复制/粘贴操作。
ResolutionSet 插件可根据窗口大小自动调整访客屏幕分辨率。
vmbackup 插件支持静默快照操作。
GuestStore插件支持GuestStore操作。
gdp插件支持访客数据发布操作。
AppInfo插件定期收集应用程序信息。
ServiceDiscovery插件定期收集服务信息。
ContainerInfo 插件定期收集容器信息。
用于处理所需状态操作的 ComponentMgr 插件。
访客身份验证服务。
用于执行磁盘擦除和收缩、管理电源脚本和时间同步的工具箱命令。
来宾 SDK 库向来宾提供有关虚拟机的信息。
共享文件夹支持的客户端和服务器。
多显示器支持。
其他公用事业。
是的。主要 Linux 发行版的新版本提供了用于用户空间组件的 open-vm-tools 软件包,并且在某些情况下作为操作系统安装的一部分进行安装。有关详细信息,请参阅 VMware 知识库文章 http://kb.vmware.com/kb/2073803。所有领先的 Linux 供应商都支持 open-vm-tools 并将其与他们的产品捆绑在一起。有关 open-vm-tools 操作系统兼容性的信息,请参阅《VMware 兼容性指南》,网址为 http://www.vmware.com/resources/compatibility open-vm-tools 与操作系统一起自动安装,无需单独安装在来宾中打开虚拟机工具。如果 open-vm-tools 未自动安装,您可以从来宾操作系统供应商的公共存储库手动安装它。从 Linux 供应商的存储库安装 open-vm-tools 可以减少虚拟机停机时间,因为未来对 open-vm-tools 的更新包含在操作系统维护补丁和更新中。注意:大多数 Linux 发行版都附带两个或多个 open-vm-tools 软件包。 “open-vm-tools”是不依赖于 X 库的核心包,“open-vm-tools-desktop”是依赖于“open-vm-tools”核心包和 X 库的附加包。 “open-vm-tools-sdmp”包包含一个用于服务发现的插件。可能还有其他软件包,请参阅操作系统供应商的文档。请注意,Linux 发行版提供的 open-vm-tools 软件包不包含 Linux 驱动程序,因为 Linux 驱动程序作为 Linux 内核本身的一部分提供。 Linux 内核版本 3.10 及更高版本包含 open-vm-tools 中除 vmhgfs 驱动程序之外的所有 Linux 驱动程序。启用共享文件夹功能需要 vmhgfs 驱动程序,但已被不需要内核驱动程序的 vmhgfs-fuse 取代。
VMware Tools 将继续在商业许可下提供。建议在支持 open-vm-tools 的 Linux 发行版中使用 open-vm-tools。 VMware 不会为支持 open-vm-tools 的操作系统提供 OSP。
根据 GPL 条款,开源社区成员能够使用 open-vm-tools 代码来开发自己的应用程序、扩展它并为社区做出贡献。他们还可以将部分或全部代码合并到他们的项目中,前提是他们遵守 GPL 的条款。
该代码是在 GPL v2 和 GPL v2 兼容许可证下发布的。更具体地说,Linux 内核模块是在 GPL v2 下发布的,而几乎所有用户级组件都是在 LGPL v2.1 下发布的。 SVGA 和鼠标驱动程序已经在 X11 许可证下可用一段时间了。有些第三方组件是根据 BSD 样式许可证发布的,VMware 在某些情况下对此做出了贡献,并将继续与 open-vm-tools 一起分发。
我们为内核组件选择了GPL v2,以与Linux内核的许可证保持一致。我们为用户级组件选择 LGPL v2.1,因为某些代码是作为共享库实现的,并且我们不希望限制专有代码与这些库的链接。为了保持一致性,我们决定也根据 LGPL v2.1 授权其余的用户级代码。
每个许可证都有不同的义务。对于有关 GPL、LGPL 许可证的问题,自由软件基金会的 GPL FAQ 页面提供了大量有用的信息。对于有关 X11、BSD 许可证等其他许可证的问题,开源促进会提供了大量有用的资源,包括邮件列表。软件自由法律中心为自由和开源软件 (FOSS) 开发人员提供法律专业知识和咨询。
不同的开源许可证对于源代码的发布有不同的要求。由于代码是根据各种开源许可证发布的,因此您需要遵守相应许可证的条款。
不,您不需要将所做的任何更改贡献回 open-vm-tools 项目。但是,我们鼓励您这样做。
是的,只要您遵守适当的许可证即可。
是的!请这样做。
我们的目标是努力使开源版本尽可能接近商业版本。不过,我们目前确实使用了第三方许可的某些组件以及其他 VMware 产品中仅以二进制形式提供的组件。
不,因为您的项目/产品不是 VMware 项目/产品。
open-vm-tools 使用 GNU Automake 工具生成 Makefile 来构建所有源代码。有关 Automake 的更多信息可以在这里找到:http://www.gnu.org/software/automake/
以下步骤适用于最新的 Linux 发行版:
autoreconf -i ./configure make sudo make install sudo ldconfig
要构建可选的 sdmp(服务发现)插件,请使用--enable-servicediscovery
选项调用配置脚本:
./configure --enable-servicediscovery
Salt Minion 设置
组件管理器插件
ContainerInfo 插件(可选)
Linux 上的 Salt 支持包含一个用于在 VMware 虚拟机上设置 Salt Minion 的 bash 脚本。 该脚本要求“curl”和“awk”命令在系统上可用。
建议提供 open-vm-tools 软件包的 Linux 提供商在单独的可选软件包“open-vm-tools-salt-minion”中提供 Salt Minion 支持。
要在 open-vm-tools 构建中包含 Salt Minion 设置,请在调用配置脚本时使用--enable-salt-minion
选项。
./configure --enable-salt-minion
组件管理器管理 VMware 提供的一组预配置组件,这些组件可在 Linux 客户机上使用。 目前唯一可以管理的组件是 Salt Minion 设置。
可选的containerInfo插件检索在Linux guest虚拟机上运行的容器列表,并将该列表以JSON格式发布到guest变量“ guestinfo.vmtools.containerinfo ”。 containerInfo 插件使用 gRPC 与 containerd 守护进程通信以检索所需的信息。 对于由 Docker 管理的容器,该插件使用 libcurl 与 Docker 守护进程通信并获取容器的名称。
由于此插件需要额外的构建和运行时依赖项,因此建议 Linux 供应商将其发布在单独的可选包中 - “open-vm-tools-containerinfo”。 这可以避免不使用该功能的客户产生不必要的依赖。
构建依赖关系 | 运行时 |
---|---|
libcurl4-openssl-dev | curl |
protobuf-compiler | protobuf |
libprotobuf-dev | grpc++ |
protobuf-compiler-grpc | |
libgrpc++-dev | |
golang-github-containerd-containerd-dev | |
golang-github-gogo-protobuf-dev |
构建依赖关系 | 运行时 |
---|---|
libcurl-devel | curl |
protobuf-compiler | protobuf |
protobuf-devel | grpc-cpp |
grpc-plugins | |
grpc-devel | |
containerd-devel |
当所有需要的依赖项都可用时,配置脚本默认构建 ContainerInfo。 如果缺少依赖项,则不会构建 ContainerInfo。 使用--enable-containerinfo=no
调用配置脚本以显式禁止构建插件。
./configure --enable-containerinfo=no
如果为配置脚本提供了选项--enable-containerinfo=yes
并且任何必要的依赖项不可用,则配置脚本将终止并出现错误。
./configure --enable-containerinfo=yes
如果您正在寻找构建此项目的帮助或其他设置,以下配置命令将显示帮助选项列表:
./configure --help
在上述步骤中使用 configure 时,只需调用 ./configure 一次,除非第一次调用后出现问题。
今天您可以通过几种不同的方式参与其中:
立即开始使用 open-vm-tools 并向我们提供反馈。
建议功能增强。
在问题部分识别并提交错误:https://github.com/vmware/open-vm-tools/issues
开始将代码移植到其他操作系统。 以下是带有 open-vm-tools 的操作系统列表:
红帽企业 Linux 7.0 及更高版本
SUSE Linux Enterprise 12 及更高版本
Ubuntu 14.04 及更高版本
CentOS 7 及更高版本
Debian 7.x 及更高版本
Oracle Linux 7 及更高版本
Fedora 19 及更高版本
openSUSE 11.x 及更高版本
Flatcar Container Linux,所有版本
Rocky 8 及更高版本
AlmaLinux OS 8及更高版本
是的。最初,VMware 工程师将是唯一的提交者。当我们推出开发基础设施时,我们也将寻求向项目添加外部提交者。
最初,您可以将错误修复、补丁和新功能作为电子邮件或错误报告的附件提交到项目开发邮件列表。要贡献源代码,您需要在提交过程中填写贡献协议表。我们很快就会提供有关此过程的更多详细信息。
open-vm-tools 项目的功能路线图和时间表将继续由 VMware 定义。最初,VMware 工程师将是唯一获得批准的提交者。我们将审查收到的提交内容是否适合合并到该项目中。我们将根据社区提交者对项目的贡献,寻求将他们添加到该项目中。最后,我们还计划建立一个改进提案、建立子项目等流程。
被 open-vm-tools 项目的主源代码树接受的贡献可能会成为 VMware Tools 的一部分。我们还认识到归因的价值并重视您的贡献。因此,我们将感谢与 VMware 产品一起分发的社区的贡献。
是的。我们有一份标准贡献协议,涵盖对该项目的所有贡献。它为 VMware 和您提供了您所贡献的代码的共同版权权益。该协议还为 VMware 提供了许可方面的灵活性,并有助于避免将来可能出现的任何版权/许可相关问题。为了让我们将您的贡献包含在我们的源代码树中,我们要求您向我们发送一份已签名的协议副本。您可以通过以下两种方式之一执行此操作: 传真至 +1.650.427.5003,收件人:Product & Technology Law Group 扫描并通过电子邮件发送至 oss-queries_at_vmware.com 协议:http://open-vm-tools.sourceforge.net/文件/vca.pdf
open-vm-tools 源包含一个将来宾发行版名称映射到官方认可的短名称的表。请不要提交更改此表和关联代码的拉取请求。此处的任何更改都必须伴随 VMware 主机中的其他更改。 VMware 主机无法识别的值将被忽略。
为您的 Linux 版本配置 VM 时,请使用适当的通用 Linux 名称。 可用的选择将根据所使用的虚拟硬件版本而有所不同。
其他 5.x 或更高版本的 Linux(64 位)
其他 5.x 或更高版本的 Linux(32 位)
其他 4.x Linux(64 位)
其他 4.x Linux(32 位)
其他 3.x Linux(64 位)
其他 3.x Linux(32 位)
其他 Linux(64 位)
其他 Linux(32 位)
来宾操作系统自定义支持表提供了有关支持自定义的来宾操作系统的详细信息。
VMware 产品互操作性列表提供了有关不同版本的 VMware Tools(包括 open-vm-tools)和其他 VMware 产品的兼容性的详细信息。
open-vm-tools 支持以下语言:
英语
法语
德语
西班牙语
意大利语
日本人
韩国人
简体中文
繁体中文
请根据您问题的性质向这些邮件列表之一发送电子邮件。
开发相关问题:[email protected]
其他问题:[email protected]
一般项目公告:[email protected]