ansible vmware windows服务器
我正在尝试执行ansible playbook以启动具有IP设置的VMware windows server,但VM正在启动,但没有IP设置 在执行playbook之后,我没有收到任何错误,它显示的更改也已完成,但当我签入Vmware环境时,IP没有反映 尝试了所有可能的方法,有人能帮我吗。 谢谢 这是我的剧本:ansible vmware windows服务器,ansible,vmware,ipconfig,Ansible,Vmware,Ipconfig,我正在尝试执行ansible playbook以启动具有IP设置的VMware windows server,但VM正在启动,但没有IP设置 在执行playbook之后,我没有收到任何错误,它显示的更改也已完成,但当我签入Vmware环境时,IP没有反映 尝试了所有可能的方法,有人能帮我吗。 谢谢 这是我的剧本: --- - hosts: vm-windows-server2012 gather_facts: false connection: local vars_files:
---
- hosts: vm-windows-server2012
gather_facts: false
connection: local
vars_files:
- group_vars/vm-windows-server2012
tasks:
- name: "PROVISION | Create Windows server 2012 from template"
vmware_guest:
validate_certs: false
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter }}"
name: "{{ guest_name }}"
folder: "{{ folder }}"
template: "{{ vmtemplate }}"
state: poweredon
esxi_hostname: "{{ esxi_host }}"
hardware:
num_cpus: "{{ cpu }}"
memory_mb: "{{ mem_mb }}"
disk:
- size_gb: "{{ disk }}"
type: thin
datastore: "{{ datastore }}"
register: new_vm
- name: Wait for VMware tools to become available
vmware_guest_tools_wait:
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
name: "{{ vm_name }}"
folder: "/{{ datacenter }}/vm/{{ folder }}"
- name: "IP configuration"
local_action:
module: vmware_vm_shell
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
datacenter: "{{ datacenter }}"
vm_id: "{{ vm_name }}"
vm_username: "{{ v_username }}"
vm_password: "{{ v_password }}"
vm_shell: 'C:\Windows\System32\WindowsPowershell\v1.0\powershell.exe'
vm_shell_args: 'netsh interface ip set address "Ethernet0 2" static 10.193.34.250 255.255.255.192 10.193.34.193'
vm_shell_cwd: 'C:\Users\Administrator'
validate_certs: False
您的代码很好,但您必须等待VMWare工具在VM上处于活动状态,才能使用
VMWare\u VM\u shell
在您的vmware\u vm\u shell
之前使用此选项:
- name: Wait for VMware tools to become available
vmware_guest_tools_wait:
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
name: "{{ vm_name }}"
folder: "/{{ vcenter_datacenter }}/vm/{{ default_vm_folder }}"
- name: Change IP Address for Windows Machine
vmware_vm_shell:
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
datacenter: "{{ vcenter_datacenter }}"
folder: "/{{ datacenter }}/vm/{{ folder }}"
vm_id: "{{ vm_name }}"
vm_username: "{{ v_username }}"
vm_password: "{{ v_password }}"
vm_shell: netsh.exe
vm_shell_args: ' interface ip set address name="Ethernet0 2" static 10.193.34.250 255.255.255.192 10.193.34.193'
vm_shell_cwd: "C:\\Windows\\System32"
- name: Change DNS for Windows Machine
vmware_vm_shell:
hostname: "{{ vcenter_host }}"
username: "{{ vcenter_username }}"
password: "{{ vcenter_password }}"
validate_certs: False
datacenter: "{{ vcenter_datacenter }}"
folder: "/{{ datacenter }}/vm/{{ folder }}"
vm_id: "{{ vm_name }}"
vm_username: "{{ v_username }}"
vm_password: "{{ v_password }}"
vm_shell : netsh.exe
vm_shell_args : ' interface ip set dns name="Ethernet0 2" static 8.8.8.8'
vm_shell_cwd : "C:\\Windows\\System32"
- name: Wait until the ipaddress of machine is ready
wait_for:
port: 5986
delay: 20
state: started
host: "10.193.34.250"
您好,正如您所说,我已经修改了脚本并添加了vmware_guest_tools_wait模块,尽管结果相同,但我的vmware环境中并没有反映IP。你能帮我解决这个问题吗?与其分配我的实际IP,不如在vmware中分配一些apipa地址。不确定问题到底出在哪里。有人能帮我解决上述问题吗?我已经用完整的代码修改了我的答案。这对我很有效。请确认已添加vmware\u guest\u tools\u wait模块并运行剧本,但结果相同。没有IP正在分配。