# vyos_vlan – Manage VLANs on VyOS network devices

New in version 2.5.

- Synopsis
- Parameters
- Notes
- Examples
- Return Values
- Status

## Synopsis

- This module provides declarative management of VLANs on VyOS network devices.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
address - |  | Configure Virtual interface address.
aggregate - |  | List of VLANs definitions.
associated_interfaces - added in 2.5 |  | This is a intent option and checks the operational state of the for given vlan `name` for associated interfaces. If the value in the `associated_interfaces` does not match with the operational state of vlan on device it will result in failure.
delay - | Default: 10 | Delay the play should wait to check for declarative intent params values.
interfaces - / required |  | List of interfaces that should be associated to the VLAN.
name - |  | Name of the VLAN.

provider
dictionary

Deprecated
Starting with Ansible 2.5 we recommend using `connection: network_cli`.
For more information please see the Network Guide.

A dict object containing connection details.

| host string / required |  | Specifies the DNS host name or address for connecting to the remote device over the specified transport. The value of host is used as the destination address for the transport.
| password string |  | Specifies the password to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable `ANSIBLE_NET_PASSWORD` will be used instead.
| port integer | Default: 22 | Specifies the port to use when building the connection to the remote device.
| ssh_keyfile path |  | Specifies the SSH key to use to authenticate the connection to the remote device. This value is the path to the key used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable `ANSIBLE_NET_SSH_KEYFILE` will be used instead.
| timeout integer | Default: 10 | Specifies the timeout in seconds for communicating with the network device for either connecting or sending commands. If the timeout is exceeded before the operation is completed, the module will error.
| username string |  | Configures the username to use to authenticate the connection to the remote device. This value is used to authenticate the SSH session. If the value is not specified in the task, the value of environment variable `ANSIBLE_NET_USERNAME` will be used instead.

purge
boolean

Choices:
- no ←
- yes

Purge VLANs not defined in the aggregate parameter.

state
-

Choices:
- present ←
- absent

State of the VLAN configuration.

vlan_id - / required |  | ID of the VLAN. Range 0-4094.

## Notes

Note

- Tested against VyOS 1.1.8 (helium).
- This module works with connection `network_cli`. See the VyOS OS Platform Options.
- For more information on using Ansible to manage network devices see the Ansible Network Guide

## Examples

    - name: Create vlan
      vyos_vlan:
        vlan_id: 100
        name: vlan-100
        interfaces: eth1
        state: present

    - name: Add interfaces to VLAN
      vyos_vlan:
        vlan_id: 100
        interfaces:
          - eth1
          - eth2

    - name: Configure virtual interface address
      vyos_vlan:
        vlan_id: 100
        interfaces: eth1
        address: 172.26.100.37/24

    - name: vlan interface config + intent
      vyos_vlan:
        vlan_id: 100
        interfaces: eth0
        associated_interfaces:
        - eth0

    - name: vlan intent check
      vyos_vlan:
        vlan_id: 100
        associated_interfaces:
        - eth3
        - eth4

    - name: Delete vlan
      vyos_vlan:
        vlan_id: 100
        interfaces: eth1
        state: absent

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
commands list | always | The list of configuration mode commands to send to the device Sample: ['set interfaces ethernet eth1 vif 100 description VLAN 100', 'set interfaces ethernet eth1 vif 100 address 172.26.100.37/24', 'delete interfaces ethernet eth1 vif 100']

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Network Team. [network]

### Red Hat Support

More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.

### Authors

- Trishna Guha (@trishnaguha)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.