ansible vmware windows服务器

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:

我正在尝试执行ansible playbook以启动具有IP设置的VMware windows server,但VM正在启动,但没有IP设置

在执行playbook之后,我没有收到任何错误,它显示的更改也已完成,但当我签入Vmware环境时,IP没有反映

尝试了所有可能的方法,有人能帮我吗。 谢谢

这是我的剧本:

---
- 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正在分配。