VMWare Workstation - 如何自动化或编写脚本更改虚拟网络配置

mus*_*cio 3 networking configuration virtual-machines vmware-workstation

VMWare Workstation(我在 Linux 上使用 V8)提供了一个 GUI 工具 Virtual Network Editor ( vmware-netcfg) 来编辑虚拟网络适配器设置以供系统上的 VM 使用。我正在使用 VMWare Workstation 在许多机器上处理预配置 VM 的大规模更改和半自动部署,并希望找到一种方法来编写脚本或以其他方式自动修改 vmnet* 适配器。一次在 30 多台机器上更改配置时使用 GUI 是不切实际的。

有谁知道 VMWare 是否为此提供了命令行实用程序,或者可能是存储配置的文件的位置,以便我可以编写对该文件的更改脚本?

mus*_*cio 5

我能够为自己找到答案。至少在 Linux 上,虚拟网络配置存储在/etc/vmware. 该文件/etc/vmware/networking包含基本的虚拟网络配置,例如

# cat /etc/vmware/networking
VERSION=1,0
answer VNET_1_DHCP no
answer VNET_1_HOSTONLY_NETMASK 255.255.255.0
answer VNET_1_HOSTONLY_SUBNET 192.168.1.0
answer VNET_1_VIRTUAL_ADAPTER yes
answer VNET_8_DHCP yes
answer VNET_8_DHCP_CFG_HASH EEBDA048FBC09F9BC2227D19AABD86B443D88BA0
answer VNET_8_HOSTONLY_NETMASK 255.255.255.0
answer VNET_8_HOSTONLY_SUBNET 172.16.54.0
answer VNET_8_NAT yes
answer VNET_8_VIRTUAL_ADAPTER yes
Run Code Online (Sandbox Code Playgroud)

这一切都不是记录,像往常一样,但是sed一些 谷歌上搜索,和运气一点点,我应该能够根据自己的要求进行修改。

注意编辑完后/etc/vmware/networking需要vmware-networks --stop,然后vmware-networks --start更新运行配置。


Gev*_*ver 5

干得好,谢谢穆斯塔西奥。使死人复活...

VMware Player 5 概述:

  • VNET_# = 0 到 9(VMnet# 即 VMnet1:VNET_1)
  • HASH是一个40位的十六进制数

文件——开始

文件头:

VERSION=1,0
Run Code Online (Sandbox Code Playgroud)

桥接模式——标准模式除外(参见下面的补充)

answer VNET_#_DHCP no
answer VNET_#_VIRTUAL_ADAPTER no
Run Code Online (Sandbox Code Playgroud)

仅具有 DHCP 的主机

answer VNET_#_DHCP yes
answer VNET_#_DHCP_CFG_HASH [enter_hash]
answer VNET_#_HOSTONLY_NETMASK 255.255.255.0
answer VNET_#_HOSTONLY_SUBNET 192.168.0.0
answer VNET_#_VIRTUAL_ADAPTER yes
Run Code Online (Sandbox Code Playgroud)

仅主机,无 DHCP

answer VNET_#_DHCP yes
answer VNET_#_DHCP_CFG_HASH [enter_hash]
answer VNET_#_HOSTONLY_NETMASK 255.255.255.248
answer VNET_#_HOSTONLY_SUBNET 173.239.151.176
answer VNET_#_NAT no
answer VNET_#_VIRTUAL_ADAPTER yes
Run Code Online (Sandbox Code Playgroud)

网络地址转换

answer VNET_#_DHCP yes
answer VNET_#_DHCP_CFG_HASH [enter_hash]
answer VNET_#_HOSTONLY_NETMASK 255.255.255.0
answer VNET_#_HOSTONLY_SUBNET 192.168.1.0
answer VNET_#_NAT yes
answer VNET_#_VIRTUAL_ADAPTER yes
Run Code Online (Sandbox Code Playgroud)

非标准桥接模式(即非Auto) 末尾的数字为VMnet#

answer VNL_DEFAULT_BRIDGE_VNET -1
add_bridge_mapping eth0 0
add_bridge_mapping eth1 1
Run Code Online (Sandbox Code Playgroud)

文件---结束

我发现当我运行service vmware start某些进程时失败。此外,正如我所希望的那样,相关的和必需的文件没有添加或更新。

修复:卸载 VMware Player,然后重新安装。Vmware Player 将使用您的 /etc/vmware/networking 文件创建新的网络设置

卸载: vmware-installer -u vmware-player *version.build*(version.build = 产品版本,即 5.0.4.1945795;请参阅vmware-installer -l捆绑包文件名以获取信息)

注意:标准自动桥接模式没有条目,VMnet0 在桥接(自动或分配)时被假定且不包含在文件声明中