community.vmware.vmware_vswitch (4.2.0) — module

Manage a VMware Standard Switch to an ESXi host.

Authors: Joseph Callen (@jcpowermac), Russell Teague (@mtnbikenc), Abhijeet Kasurde (@Akasurde) <akasurde@redhat.com>

Install collection

Install with ansible-galaxy collection install community.vmware:==4.2.0


Add to requirements.yml

  collections:
    - name: community.vmware
      version: 4.2.0

Description

This module can be used to add, remove and update a VMware Standard Switch to an ESXi host.

Usage examples

  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    switch: vswitch_name
    nics: vmnic_name
    mtu: 9000
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch without any physical NIC attached
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    switch: vswitch_0001
    mtu: 9000
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch with multiple NICs
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    switch: vmware_vswitch_0004
    nics:
    - vmnic1
    - vmnic2
    mtu: 9000
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch to a specific host system
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    esxi_hostname: DC0_H0
    switch_name: vswitch_001
    nic_name: vmnic0
    mtu: 9000
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch to a specific host system with Promiscuous Mode Enabled
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    esxi_hostname: DC0_H0
    switch_name: vswitch_001
    nic_name: vmnic0
    mtu: 9000
    security:
        promiscuous_mode: true
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch to a specific host system with active/standby teaming
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    esxi_hostname: DC0_H0
    switch_name: vswitch_001
    nic_name:
      - vmnic0
      - vmnic1
    teaming:
      active_adapters:
        - vmnic0
      standby_adapters:
        - vmnic1
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Add a VMware vSwitch to a specific host system with traffic shaping
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    esxi_hostname: DC0_H0
    switch_name: vswitch_001
    nic_name:
      - vmnic0
      - vmnic1
    traffic_shaping:
        enabled: true
        average_bandwidth: 100000
        peak_bandwidth: 100000
        burst_size: 102400
  delegate_to: localhost
  • Success
    Steampunk Spotter scan finished with no errors, warnings or hints.
- name: Delete a VMware vSwitch in a specific host system
  community.vmware.vmware_vswitch:
    hostname: '{{ esxi_hostname }}'
    username: '{{ esxi_username }}'
    password: '{{ esxi_password }}'
    esxi_hostname: DC0_H0
    switch_name: vswitch_001
    state: absent
  delegate_to: localhost

Inputs

    
mtu:
    default: 1500
    description:
    - MTU to configure on vSwitch.
    type: int

nics:
    aliases:
    - nic_name
    default: []
    description:
    - A list of vmnic names or vmnic name to attach to vSwitch.
    elements: str
    type: list

port:
    default: 443
    description:
    - The port number of the vSphere vCenter or ESXi server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PORT)
      will be used instead.
    type: int

state:
    choices:
    - absent
    - present
    default: present
    description:
    - Add or remove the switch.
    type: str

switch:
    aliases:
    - switch_name
    description:
    - vSwitch name to add.
    required: true
    type: str

teaming:
    aliases:
    - teaming_policy
    description:
    - Dictionary which configures the different teaming values for portgroup.
    required: false
    suboptions:
      active_adapters:
        description:
        - List of active adapters used for load balancing.
        - All vmnics are used as active adapters if O(teaming.active_adapters) and O(teaming.standby_adapters)
          are not defined.
        elements: str
        type: list
      failback:
        description: Indicate whether or not to use a failback when restoring links.
        type: bool
      load_balancing:
        aliases:
        - load_balance_policy
        choices:
        - loadbalance_ip
        - loadbalance_srcmac
        - loadbalance_srcid
        - failover_explicit
        description:
        - Network adapter teaming policy.
        type: str
      network_failure_detection:
        choices:
        - link_status_only
        - beacon_probing
        description: Network failure detection.
        type: str
      notify_switches:
        description: Indicate whether or not to notify the physical switch if a link fails.
        type: bool
      standby_adapters:
        description:
        - List of standby adapters used for failover.
        - All vmnics are used as active adapters if O(teaming.active_adapters) and O(teaming.standby_adapters)
          are not defined.
        elements: str
        type: list
    type: dict

hostname:
    description:
    - The hostname or IP address of the vSphere vCenter or ESXi server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_HOST)
      will be used instead.
    type: str

password:
    aliases:
    - pass
    - pwd
    description:
    - The password of the vSphere vCenter or ESXi server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PASSWORD)
      will be used instead.
    type: str

security:
    aliases:
    - security_policy
    - network_policy
    description:
    - Network policy specifies layer 2 security settings for a portgroup such as promiscuous
      mode, where guest adapter listens to all the packets, MAC address changes and forged
      transmits.
    - Dict which configures the different security values for portgroup.
    required: false
    suboptions:
      forged_transmits:
        description: Indicates whether forged transmits are allowed.
        type: bool
      mac_changes:
        description: Indicates whether mac changes are allowed.
        type: bool
      promiscuous_mode:
        description: Indicates whether promiscuous mode is allowed.
        type: bool
    type: dict

username:
    aliases:
    - admin
    - user
    description:
    - The username of the vSphere vCenter or ESXi server.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_USER)
      will be used instead.
    type: str

proxy_host:
    description:
    - Address of a proxy that will receive all HTTPS requests and relay them.
    - The format is a hostname or a IP.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PROXY_HOST)
      will be used instead.
    required: false
    type: str

proxy_port:
    description:
    - Port of the HTTP proxy that will receive all HTTPS requests and relay them.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_PROXY_PORT)
      will be used instead.
    required: false
    type: int

esxi_hostname:
    aliases:
    - host
    description:
    - Manage the vSwitch using this ESXi host system.
    type: str

validate_certs:
    default: true
    description:
    - Allows connection when SSL certificates are not valid. Set to V(false) when certificates
      are not trusted.
    - If the value is not specified in the task, the value of environment variable E(VMWARE_VALIDATE_CERTS)
      will be used instead.
    type: bool

number_of_ports:
    default: 128
    description:
    - Number of port to configure on vSwitch.
    type: int

traffic_shaping:
    description:
    - Dictionary which configures traffic shaping for the switch.
    required: false
    suboptions:
      average_bandwidth:
        description: Average bandwidth (kbit/s).
        type: int
      burst_size:
        description: Burst size (KB).
        type: int
      enabled:
        description: Status of Traffic Shaping Policy.
        type: bool
      peak_bandwidth:
        description: Peak bandwidth (kbit/s).
        type: int
    type: dict

Outputs

result:
  description: information about performed operation
  returned: always
  sample: vSwitch 'vSwitch_1002' is created successfully
  type: str