community.vmware.vmware_guest_file_operation 模块 – 在 VMware 虚拟机操作系统中进行无需网络的文件操作
注意
此模块是 community.vmware 集合 (版本 5.2.0) 的一部分。
如果您使用的是 ansible
包,则可能已安装此集合。它不包含在 ansible-core
中。要检查它是否已安装,请运行 ansible-galaxy collection list
。
要安装它,请使用: ansible-galaxy collection install community.vmware
。
要在剧本中使用它,请指定: community.vmware.vmware_guest_file_operation
。
概要
此模块用于将文件复制到虚拟机、从虚拟机获取文件以及在客户操作系统中创建或删除目录。
参数
参数 |
注释 |
---|---|
托管虚拟机的群集。 如果设置,它将有助于加快虚拟机搜索速度。 |
|
无需网络即可将文件复制到虚拟机。 |
|
文件目标,路径必须存在。 |
|
是否覆盖。 选项
|
|
文件源绝对路径或相对路径。 |
|
托管虚拟机的 vCenter 数据中心。 如果设置,它将有助于加快虚拟机搜索速度。 |
|
创建或删除目录。 可用于使用 mktemp 操作在客户机中创建临时目录。 mktemp 在结果中设置变量 |
|
要执行的操作。 选项
|
|
目录路径。 对于 |
|
临时目录前缀。 对于 |
|
非必填。 选项
|
|
临时目录后缀。 对于 |
|
无需网络即可从虚拟机获取文件。 |
|
本地主机上的文件目标,路径必须存在。 |
|
要从中获取文件的远程系统上的文件。 这 *必须* 是一个文件,而不是一个目录。 |
|
目标文件夹,查找现有客户机或创建新客户机的绝对路径。 该文件夹应包含数据中心。ESX 的数据中心为 ha-datacenter 仅当 示例 folder: /ha-datacenter/vm folder: ha-datacenter/vm folder: /datacenter1/vm folder: datacenter1/vm folder: /datacenter1/vm/folder1 folder: datacenter1/vm/folder1 folder: /folder1/datacenter1/vm folder: folder1/datacenter1/vm folder: /folder1/datacenter1/vm/folder2 folder: vm/folder2 folder: folder2 |
|
vSphere vCenter 或 ESXi 服务器的主机名或 IP 地址。 如果任务中未指定该值,则将使用环境变量 |
|
vSphere vCenter 或 ESXi 服务器的密码。 如果任务中未指定该值,则将使用环境变量 |
|
将接收所有 HTTPS 请求并转发它们的 HTTP 代理的端口。 如果任务中未指定该值,则将使用环境变量 |
|
获取或复制文件的超时秒数。 默认值: |
|
vSphere vCenter 或 ESXi 服务器的用户名。 如果任务中未指定值,则将使用环境变量 |
|
要操作的虚拟机的名称。 |
|
用于标识虚拟机的VMware标识方法。 选项
|
|
用于登录虚拟机的密码。 |
|
用于登录虚拟机的用户名。 |
备注
注意
即使存在多个匹配项,也只使用与vm_id的第一个匹配项。
所有模块都需要API写权限,因此在免费ESXi许可证上不受支持。
所有变量和VMware对象名称都区分大小写。
示例
- name: Create directory inside a vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
directory:
path: "/test"
operation: create
recurse: false
delegate_to: localhost
- name: copy file to vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
copy:
src: "files/test.zip"
dest: "/root/test.zip"
overwrite: false
delegate_to: localhost
- name: fetch file from vm
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
fetch:
src: "/root/test.zip"
dest: "files/test.zip"
delegate_to: localhost
- name: If a timeout error occurs, specify a high(er) timeout value
community.vmware.vmware_guest_file_operation:
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter_name }}"
vm_id: "{{ guest_name }}"
vm_username: "{{ guest_username }}"
vm_password: "{{ guest_userpassword }}"
timeout: 10000
copy:
src: "files/test.zip"
dest: "/root/test.zip"
overwrite: false
delegate_to: localhost