用于vmware fusion cli工具的python api。
vmfusion的Python项目详细描述
#vmfusion python
vmfusion python是vmware fusion命令的低级python接口 行工具vmrun和vmware vdiskmanager。它的目标是让人可读(因为 我仍然不知道为什么-k是shrink,-n是rename,-r是convert)和 易于使用。
vmrun命令带有大量的命令行选项。目前,只有 因为我还没有找到实际的用途,所以实现了常见的命令 剩下的案子。如果需要未实现的命令,请打开一个问题 或向我发送请求。
#安装
< Buff行情> $pip安装vmfusion#概述
##vmrun
vmrun
工具可用于控制vm的运行时状态。
注意:与vmrun的行为相反,api将使用 _以及相对vmx路径。
###列表
返回所有正在运行的虚拟机的信息。
用法:vmrun.list()
示例:
< Buff行情>>>> from vmfusion import vmrun >>> print vmrun.list() { 'count': 3, 'machines': [ '/Users/msteinhoff/Documents/Virtual Machines/test1/test1.vmx', '/Users/msteinhoff/Documents/Virtual Machines/test1/test2.vmx', '/Users/Shared/Virtual Machines/test3/test3.vmx', ] }
注意:这将只返回实际运行的vm,与 来自vmware fusion gui的虚拟机库,它还显示暂停 以及挂起的虚拟机。
###开始
打开虚拟机电源。
用法:
< Buff行情> vmrun.start(vmx)注意/警告:有一个可选的gui
参数可以设置为false
在nogui模式下启动vm
Nogui模式很奇怪。在nogui模式下,vm窗口将不可见,但 已运行时在vmware fusion.app中显示。如果fusion gui是 如果不运行,而您启动或关闭/启动它,vm将转换回 图形用户界面模式。如果关闭vmware fusion.app,vm将被挂起。(AT) 至少这是发生在我系统上的事情。
###停止
关闭虚拟机。
用法:
< Buff行情> vmrun.stop(vmx,soft=true)当soft
设置为true(默认值)时,配置的关闭脚本将为
执行并向来宾操作系统发送关闭信号。为了让它起作用,
需要安装vmware工具。否则,虚拟机将被无情地杀死。
###复位
重新启动虚拟机。
用法:
< Buff行情> vmrun.reset(vmx,soft=true)当soft
设置为true(默认值)时,配置的关机/开机脚本将
执行并向来宾操作系统发送关闭信号。为此
好的,需要安装vmware工具。否则,vm将被杀死
慈悲. < /P>
###暂停
将虚拟机状态挂起到磁盘。
用法:
< Buff行情> vmrun.suspend(vmx,soft=true)当soft
设置为true(默认值)时,配置的挂起脚本将为
在系统挂起之前执行。
###暂停
停止虚拟机的CPU执行。
用法:
< Buff行情> vmrun.pause(vmx)###取消暂停
继续执行m的cpu操作。
用法:
< Buff行情> vmrun.unpause(vmx)##vdiskmanager
使用vdiskmanager
工具可以管理vmdk磁盘。对于所有方法,vmdk
参数总是期望vmdk文件的相对路径。
###创建
使用给定参数创建新的vmdk文件。
用法:
< Buff行情> vdiskmanager.create(vmdk,size,disk_type=none,adapter_type=none)参数:
< Buff行情>大小
工具可读取的尺寸规格,例如
100MB
,20GB
,1TB
。不 执行验证。
< Buff行情>磁盘类型
要创建的磁盘的可选类型,如下之一:
sparse_single
:一个可增长的vmdk文件稀疏分割
:许多可增长的vmdk文件,分割成2 GB的片预分配单文件
:一个预分配的vmdk文件前置放大器lloc_split
:许多预先分配的2 GB VMDK文件
默认为
sparse_split
< Buff行情>适配器类型
磁盘适配器的可选类型,如下之一:
ide
lsilogic
总线逻辑
默认值为
lsilogic
###碎片整理
在vmware级别对vmdk文件进行碎片整理(不要与guest混淆 文件系统重组)。
用法:
< Buff行情> vdiskmanager.defragment(vmdk)###收缩
这将在vmware级别上执行vmdk的收缩(guest 必须准备好文件系统,以使其正常工作,例如启用zerofill工具 LINUX).< /P>
用法:
< Buff行情> vdiskmanager.shrink(vmdk)###重命名
这将重命名vmdk文件。适用于容量超过9000 2GB的大型拆分磁盘 切片:
用法:
< Buff行情> vdiskmanager.rename(源vmdk,目标vmdk)###转换
这将转换给定vmdk文件的磁盘类型。
用法:
< Buff行情> vdiskmanager.convert(vmdk,磁盘类型)disk_type
参数与create()中的参数相同,必须是
以下内容:
sparse_single
:一个可增长的vmdk文件稀疏分割
:许多可增长的vmdk文件,分割成2 GB的片预分配单文件
:一个预分配的vmdk文件预分配单元拆分
:许多预分配的2 GB VMDK文件
###展开
这将把vmdk扩展到给定的大小。
用法:
< Buff行情> vdiskmanager.convert(vmdk,新大小)new_size
参数必须是工具可读的大小规范,例如。
100MB
,20GB
,1TB
。不执行验证。
#供应商管理网络
收集有关本地vmware网络的某些信息通常很方便。
默认情况下,vmware创建一个仅限主机的网络和一个nat网络。那些是
由vmnet_hostonly
和vmnet_nat
表示
要检索vnet名称(例如在vmx配置文件中有用),请使用以下命令:
< Buff行情>>>> from vmfusion import vmnet_nat >>> print vmnet_nat.name vmnet8
两个网络上都有一个DHCP服务器在运行。要访问租约信息, 使用以下选项:
< Buff行情>>>> from vmfusion import vmnet_nat >>> print vmnet_nat.leases { '00:50:56:00:23:40': '192.168.128.130' '00:50:56:00:19:12': '192.168.128.129' '00:50:56:00:46:93': '192.168.128.136' }
DHCP服务器将租约信息存储在磁盘上的文件中。中的数据
租约字典是只读的,不会自动更新。重新加载
文件中的最新数据,使用reload()
方法:
#自定义工具位置
vmrun
和vdiskmanager
使用/applications/vmware fusion.app
中的默认位置。这可以通过实例化自定义的cli对象来更改。
vmrun在自定义位置:
< Buff行情>>>> from vmfusion import vmrun_cli >>> vmrun_custom = vmrun_cli( '/Volumes/External/Applications/VMware Fusion.app' )
vdiskmanager也一样:
< Buff行情>>>> from vmfusion import vdiskmanager_cli >>> vdiskmanager_custom = vdiskmanager_cli( '/Volumes/External/Applications/VMware Fusion.app' )
要创建自定义vmnet,请使用vnet cli < Buff行情>
>>> from vmfusion import vnet_cli >>> vmnet_custom = vnet_cli( 'vmnet6' ) >>> print vmnet_custom.name vmnet6
#贡献
叉,代码,拉请求:)
#许可证
参见license.txt