使用 Pyvmomi 为来宾定义 Pvlan ID

问题描述

我目前正在开展一个项目,以基于模板自动化 VM 部署。为了继续,我使用 Ansible 2.10 和 pyvmomi 7.0.1。

我在尝试定义 Pvlan id (51) 时遇到问题,对于我的客人,这是我的剧本:

---
- hosts: localhost
  gather_facts: no
  vars:
    vcenter_server: "100.64.31.5"
    vcenter_user: "xxxxx"
    vcenter_pass: 'xxxxxx'
    datacenter_name: "xxxxxx"
    cluster_name: "xxxxxx"
  tasks:
  - name: Clone the template
    vmware_guest:
      hostname: "{{ vcenter_server }}"
      username: "{{ vcenter_user }}"
      password: "{{ vcenter_pass }}"
      validate_certs: False
      name: NewVmName    
      template: "mytemplate"
      datacenter: "{{ datacenter_name }}"
      folder: "/vm"
      cluster: "{{ cluster_name }}"
      datastore: "SAN08T2lunHDS1"
      networks:
      - vlan: 51
        ip: 100.64.67.13
        netmask: 255.255.240.0
        type: static

但我不断收到以下错误AttributeError: 'vim.dvs.VmwaredistributedVirtualSwitch.PvlanSpec' object has no attribute 'vlanId'

我已经检查了我对 Vswitch、Datastore 和 VM 的用户权限,这边没有什么要声明的。

解决方法

好的,刚刚发现如何继续,而不是使用 vlan ID,您应该使用端口组名称。

要继续,一旦连接到您的 Vcenter :

  1. 单击 VMware Host Client 清单中的网络,然后单击端口组。 (或 Ctrl + Shift + N)
  2. 右键单击您的 vlan => 更新设置
  3. 端口组名称是“名称”字段