The vsphere_host_virtual_switch
resource can be used to manage vSphere standard switches on an ESXi host. These switches can be used as a backing for standard port groups, which can be managed by the vsphere_host_port_group
resource.
For an overview on vSphere networking concepts, see this page.
Create a virtual switch with one active and one standby NIC:
data "vsphere_datacenter" "datacenter" { name = "dc1" } data "vsphere_host" "host" { name = "esxi1" datacenter_id = "${data.vsphere_datacenter.datacenter.id}" } resource "vsphere_host_virtual_switch" "switch" { name = "vSwitchTerraformTest" host_system_id = "${data.vsphere_host.host.id}" network_adapters = ["vmnic0", "vmnic1"] active_nics = ["vmnic0"] standby_nics = ["vmnic1"] }
Create a virtual switch with extra networking policy options:
data "vsphere_datacenter" "datacenter" { name = "dc1" } data "vsphere_host" "host" { name = "esxi1" datacenter_id = "${data.vsphere_datacenter.datacenter.id}" } resource "vsphere_host_virtual_switch" "switch" { name = "vSwitchTerraformTest" host_system_id = "${data.vsphere_host.host.id}" network_adapters = ["vmnic0", "vmnic1"] active_nics = ["vmnic0"] standby_nics = ["vmnic1"] teaming_policy = "failover_explicit" allow_promiscuous = false allow_forged_transmits = false allow_mac_changes = false shaping_enabled = true shaping_average_bandwidth = 50000000 shaping_peak_bandwidth = 100000000 shaping_burst_size = 1000000000 }
The following arguments are supported:
name
- (Required) The name of the virtual switch. Forces a new resource if changed. host_system_id
- (Required) The managed object ID of the host to set the virtual switch up on. Forces a new resource if changed. mtu
- (Optional) The maximum transmission unit (MTU) for the virtual switch. Default: 1500
. number_of_ports
- (Optional) The number of ports to create with this virtual switch. Default: 128
. NOTE: Changing the port count requires a reboot of the host. Terraform will not restart the host for you.
The following arguments are related to how the virtual switch binds to physical NICs:
network_adapters
- (Required) The network interfaces to bind to the bridge. beacon_interval
- (Optional) The interval, in seconds, that a NIC beacon packet is sent out. This can be used with check_beacon
to offer link failure capability beyond link status only. Default: 1
. link_discovery_operation
- (Optional) Whether to advertise
or listen
for link discovery traffic. Default: listen
. link_discovery_protocol
- (Optional) The discovery protocol type. Valid types are cpd
and lldp
. Default: cdp
. The following options relate to how network traffic is handled on this virtual switch. It also controls the NIC failover order. This subset of options is shared with the vsphere_host_port_group
resource, in which options can be omitted to ensure options are inherited from the switch configuration here.
NOTE on NIC failover order: An adapter can be in
active_nics
,standby_nics
, or neither to flag it as unused. However, virtual switch creation or update operations will fail if a NIC is present in both settings, or if the NIC is not a valid NIC innetwork_adapters
.
NOTE: VMware recommends using a minimum of 3 NICs when using beacon probing (configured with
check_beacon
).
active_nics
- (Required) The list of active network adapters used for load balancing. standby_nics
- (Required) The list of standby network adapters used for failover. check_beacon
- (Optional) Enable beacon probing - this requires that the beacon_interval
option has been set in the bridge options. If this is set to false
, only link status is used to check for failed NICs. Default: false
. teaming_policy
- (Optional) The network adapter teaming policy. Can be one of loadbalance_ip
, loadbalance_srcmac
, loadbalance_srcid
, or failover_explicit
. Default: loadbalance_srcid
. notify_switches
- (Optional) If set to true
, the teaming policy will notify the broadcast network of a NIC failover, triggering cache updates. Default: true
. failback
- (Optional) If set to true
, the teaming policy will re-activate failed interfaces higher in precedence when they come back up. Default: true
. allow_promiscuous
- (Optional) Enable promiscuous mode on the network. This flag indicates whether or not all traffic is seen on a given port. Default: false
. allow_forged_transmits
- (Optional) Controls whether or not the virtual network adapter is allowed to send network traffic with a different MAC address than that of its own. Default: true
. allow_mac_changes
- (Optional) Controls whether or not the Media Access Control (MAC) address can be changed. Default: true
. shaping_enabled
- (Optional) Set to true
to enable the traffic shaper for ports managed by this virtual switch. Default: false
. shaping_average_bandwidth
- (Optional) The average bandwidth in bits per second if traffic shaping is enabled. Default: 0
shaping_peak_bandwidth
- (Optional) The peak bandwidth during bursts in bits per second if traffic shaping is enabled. Default: 0
shaping_burst_size
- (Optional) The maximum burst size allowed in bytes if shaping is enabled. Default: 0
The only exported attribute, other than the attributes above, is the id
of the resource. This is set to an ID value unique to Terraform - the convention is a prefix, the host system ID, and the virtual switch name. An example would be tf-HostVirtualSwitch:host-10:vSwitchTerraformTest
.
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/vsphere/r/host_virtual_switch.html