# ce_vlan – Manages VLAN resources and attributes on Huawei CloudEngine switches

New in version 2.4.

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

## Synopsis

- Manages VLAN configurations on Huawei CloudEngine switches.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
description - |  | Specify VLAN description, minimum of 1 character, maximum of 80 characters.
name - |  | Name of VLAN, minimum of 1 character, maximum of 31 characters.

state
-

Choices:
- present ←
- absent

Manage the state of the resource.

vlan_id - |  | Single VLAN ID, in the range from 1 to 4094.
vlan_range - |  | Range of VLANs such as `2-10` or `2,5,10-15`, etc.

## Notes

Note

- This module requires the netconf system service be enabled on the remote device being managed.
- Recommended connection is `netconf`.
- This module also works with `local` connections for legacy playbooks.

## Examples

    - name: vlan module test
      hosts: cloudengine
      connection: local
      gather_facts: no
      vars:
        cli:
          host: "{{ inventory_hostname }}"
          port: "{{ ansible_ssh_port }}"
          username: "{{ username }}"
          password: "{{ password }}"
          transport: cli

      tasks:

      - name: Ensure a range of VLANs are not present on the switch
        ce_vlan:
          vlan_range: "2-10,20,50,55-60,100-150"
          state: absent
          provider: "{{ cli }}"

      - name: Ensure VLAN 50 exists with the name WEB
        ce_vlan:
          vlan_id: 50
          name: WEB
          state: absent
          provider: "{{ cli }}"

      - name: Ensure VLAN is NOT on the device
        ce_vlan:
          vlan_id: 50
          state: absent
          provider: "{{ cli }}"

## Return Values

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

Key | Returned | Description
--- | --- | ---
changed boolean | always | check to see if a change was made on the device Sample: True
end_state dictionary | always | k/v pairs of the VLAN after executing module or null when using vlan_range Sample: {'vlan_id': '20', 'name': 'VLAN_APP', 'description': 'vlan for app'}
end_state_vlans_list list | always | list of VLANs after the module is executed Sample: ['1', '2', '3', '4', '5', '20', '100']
existing dictionary | always | k/v pairs of existing vlan or null when using vlan_range Sample: {'vlan_id': '20', 'name': 'VLAN_APP', 'description': ''}
existing_vlans_list list | always | list of existing VLANs on the switch prior to making changes Sample: ['1', '2', '3', '4', '5', '20']
proposed dictionary | always | k/v pairs of parameters passed into module (does not include vlan_id or vlan_range) Sample: {'vlan_id': '20', 'name': 'VLAN_APP', 'description': 'vlan for app'}
proposed_vlans_list list | always | list of VLANs being proposed Sample: ['100']
updates list | always | command string sent to the device Sample: ['vlan 20', 'name VLAN20']

## Status

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

### Authors

- QijunPan (@QijunPan)

Hint

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