[英]Excecute command in vSphere Guest machine with Ansible
我正在尝试使用vmware_vm_shell模块更改Windows Server 2012R2 vmware来宾计算机的IP 。 到目前为止,我已经能够使用vsphere_guest模块从模板克隆虚拟机而没有问题,但是当我尝试执行以下任务来更改IP时:
- name: Configure IP address
local_action:
module: vmware_vm_shell
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_password }}"
cluster: "{{ Cluster }}"
vm_id: "{{ machine }}"
vm_username: "{{ machineUser }}"
vm_password: "{{ ansible_windows_password }}"
vm_shell: "C:\\Windows\\System32\\WindowsPowershell\\1.0\\powershell.exe"
vm_shell_args: " -command (Get-NetAdapter -Name Ethernet |New-NetIPAddress -InterfaceAlias Ethernet -AddressFamily IPv4 -IPAddress {{ new_machine_ip }} -PrefixLength {{ new_machine_mask_bits }} -DefaultGateway {{ new_machine_gateway }} )-and (Set-DnsClientServerAddress -InterfaceAlias Ethernet -ServerAddresses {{ new_machine_dns }})"
vm_shell_cwd: "C:\\Windows\\Temp"
validate_certs: False
来自Ansible的响应是"msg": "File <unspecified filename> was not found"
。
当我尝试从pyvmomi-community-samples运行execute_program_in_vm.py
脚本时遇到相同的错误: Caught vmodl fault : File <unspecified filename> was not found
我拥有的vmware用户已设置了所有“ Guest Operations
权限。 我在这里想念什么?
PS:我遵循了本指南 。
请按照我完成的任务再试一次。 有时,此模块在解析powershell命令时会遇到问题。 至少那是我的经验。 我不知道为什么我的命令有效,而您的命令却无效。 我在“ vm_shell_args”中替换了命令。
您只需要替换方括号中的值即可。
编辑:也请尝试重新编写剧本,但变量不要包含空格(例如, "{{vcenter_hostname}}"
而不是"{{ vcenter_hostname }}"
- name: change IP
local_action:
module: vmware_vm_shell
hostname: "{{ vcenter_hostname }}"
username: "{{ vcenter_user }}"
password: "{{ vcenter_password }}"
cluster: "{{ Cluster }}"
vm_id: "{{ machine }}"
vm_username: "{{ machineUser }}"
vm_password: "{{ ansible_windows_password }}"
vm_shell: 'C:\Windows\System32\WindowsPowershell\1.0\powershell.exe'
vm_shell_args: 'netsh interface ip set address [Interface name] static [New IP] [Subnetmask] [Gateway]'
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.