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
。
要在 playbook 中使用它,请指定:community.vmware.vmware_guest_file_operation
。
概要
此模块用于将文件复制到虚拟机、从虚拟机获取文件以及在客户机操作系统中创建或删除目录。
参数
参数 |
注释 |
---|---|
托管虚拟机的集群。 如果设置,它将有助于加快虚拟机搜索速度。 |
|
无需网络即可将文件复制到虚拟机。 |
|
文件目标,路径必须存在。 |
|
是否覆盖。 选项
|
|
文件源(绝对路径或相对路径)。 |
|
托管虚拟机的虚拟中心。 如果设置,它将有助于加快虚拟机搜索速度。 |
|
创建或删除目录。 可用于使用 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 服务器的用户名。 如果任务中未指定值,则将使用环境变量 |
|
允许在 SSL 证书无效时连接。当证书不受信任时,将其设置为 如果任务中未指定值,则将使用环境变量 选项
|
|
要使用的虚拟机的名称。 |
|
用于识别虚拟机的 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