使用Ansible 2.9.6更改VMware VM端口组

使用Ansible 2.9.6更改VMware VM端口组,ansible,vmware,Ansible,Vmware,我的脚本没有更改VM网络适配器的端口组,我做错了什么 假设我想将当前名为“A”的端口组更改为另一个名为“B”的端口组 我得到的输出有变化,但在虚拟机设置中没有变化 TASK [Changing Portgroup for Network Adapter 1] ****************************************************************************** changed: [localhost -> localhost] 我

我的脚本没有更改VM网络适配器的端口组,我做错了什么

假设我想将当前名为“A”的端口组更改为另一个名为“B”的端口组

我得到的输出有变化,但在虚拟机设置中没有变化

TASK [Changing Portgroup for Network Adapter 1] 
******************************************************************************
changed: [localhost -> localhost] 
我发现删除和添加网络适配器会改变端口组,但当我这样做时,我无法添加我最初拥有的网络适配器类型Flexible

Edit1:在将Ansible更新到2.9.12之后,我在运行脚本时得到了OK输出,因此它实际上没有改变任何东西

TASK [Changing Portgroup for Network Adapter 1] ******************************************************************************
ok: [localhost]
Edit2:经过几天的搜索,我发现仅仅用Ansible更改端口组是不可能的,所以我使用PowerCLI来帮助我完成这项任务

---
- hosts: localhost
  gather_facts: no
  vars:
    vm_name: "VM"
  tasks:
  - name: "Changing the portgroup for {{ vm_name }}"
    win_command: 'powershell.exe -ExecutionPolicy ByPass -File C:\Scripts\change_portgroup.ps1 {{ vm_name }}'
    delegate_to: WIN_SRV
powershell脚本如下所示:

$OldNetwork = "PG old"
$NewNetwork = "PG new"

Get-VM -Name $args[0] |Get-NetworkAdapter |Where {$_.NetworkName -eq $OldNetwork } |Set-NetworkAdapter -NetworkName $NewNetwork -Confirm:$false
  - name: Change network
    community.vmware.vmware_guest_network:
      validate_certs: no
      hostname: '{{ vc_host }}'
      username: '{{ vc_user }}'
      password: '{{ vc_pass }}'
      name: '{{ vm_name }}'
      label: "Network adapter 1"
      network_name: "B"
      state: present
    delegate_to: localhost
编辑3: 我让它与vmware社区模块一起工作。(谢谢@sky jokerxx)

首先,我使用以下命令安装它:

ansible-galaxy collection install community.vmware
然后使用如下模块:

$OldNetwork = "PG old"
$NewNetwork = "PG new"

Get-VM -Name $args[0] |Get-NetworkAdapter |Where {$_.NetworkName -eq $OldNetwork } |Set-NetworkAdapter -NetworkName $NewNetwork -Confirm:$false
  - name: Change network
    community.vmware.vmware_guest_network:
      validate_certs: no
      hostname: '{{ vc_host }}'
      username: '{{ vc_user }}'
      password: '{{ vc_pass }}'
      name: '{{ vm_name }}'
      label: "Network adapter 1"
      network_name: "B"
      state: present
    delegate_to: localhost

vmware\u guest\u网络
模块存在很多问题

以下
vmware\u guest\u网络
模块解决了一些问题

在以下步骤中,您可以使用上述模块

# ansible-galaxy collection install community.vmware -p collections
# mkdir library
# cd library/
# curl -L https://raw.githubusercontent.com/ansible-collections/community.vmware/7ac9ebb9bf5df0f1ead3ef1a3ed35f2d4ad45622/plugins/modules/vmware_guest_network.py -O
# cd ..


也许它已经修复了,那么试一试怎么样?

vmware\u guest\u网络模块有很多问题

以下
vmware\u guest\u网络
模块解决了一些问题

在以下步骤中,您可以使用上述模块

# ansible-galaxy collection install community.vmware -p collections
# mkdir library
# cd library/
# curl -L https://raw.githubusercontent.com/ansible-collections/community.vmware/7ac9ebb9bf5df0f1ead3ef1a3ed35f2d4ad45622/plugins/modules/vmware_guest_network.py -O
# cd ..


也许已经修好了,试一试怎么样?

在centos8上遇到了与ansible相同的问题。感谢您发布它将不起作用的帖子,以及解决方法。在centos8上遇到了与ansible相同的问题。谢谢你的帖子,它不会工作,以及周围的工作。谢谢你的帮助。模块在Ansible 2.10中仍然不起作用。我尝试了社区一,它的工作!谢谢谢谢你的帮助。模块在Ansible 2.10中仍然不起作用。我尝试了社区一,它的工作!谢谢