New in version 2.9.
The below requirements are needed on the host that executes this module.
Parameter | Choices/Defaults | Comments | ||
---|---|---|---|---|
config list / elements=dictionary | A dictionary of Layer-2 interface options | |||
access dictionary | Configure the interface as a Layer 2 access mode. | |||
vlan string | Configure the access VLAN ID. | |||
enhanced_layer boolean |
| True if your device has Enhanced Layer 2 Software (ELS). If the l2 configuration is under interface-mode the value is True else if the l2 configuration is under port-mode value is False | ||
name string / required | Full name of interface, e.g. ge-0/0/1. | |||
trunk dictionary | Configure the interface as a Layer 2 trunk mode. | |||
allowed_vlans list | List of VLANs to be configured in trunk port. It's used as the VLAN range to ADD or REMOVE from the trunk. | |||
native_vlan string | Native VLAN to be configured in trunk port. It is used as the trunk native VLAN ID. | |||
unit integer | Logical interface number. Value of unit should be of type integer. | |||
state string |
| The state of the configuration after module completion |
Note
netconf
. See the Junos OS Platform Options.# Using deleted # Before state: # ------------- # # ansible@junos01# show interfaces # ge-0/0/1 { # description "L2 interface"; # speed 1g; # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { # members vlan30; # } # } # } #} #ge-0/0/2 { # description "non L2 interface"; # unit 0 { # family inet { # address 192.168.56.14/24; # } # } - name: "Delete L2 attributes of given interfaces (Note: This won't delete the interface itself)." junos_l2_interfaces: config: - name: ge-0/0/1 - name: ge-0/0/2 state: deleted # After state: # ------------ # # ansible@junos01# show interfaces # ge-0/0/1 { # description "L2 interface"; # speed 1g; # } #ge-0/0/2 { # description "non L2 interface"; # unit 0 { # family inet { # address 192.168.56.14/24; # } # } # Using merged # Before state: # ------------- # ansible@junos01# show interfaces # ge-0/0/3 { # description "test interface"; # speed 1g; #} # ge-0/0/4 { # description interface-trunk; # native-vlan-id 100; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan40 ]; # } # } # } # } - name: "Merge provided configuration with device configuration (default operation is merge)" junos_l2_interfaces: config: - name: ge-0/0/3 access: vlan: v101 - name: ge-0/0/4 trunk: allowed_vlans: - vlan30 native_vlan: 50 state: merged # After state: # ------------ # user@junos01# show interfaces # ge-0/0/3 { # description "test interface"; # speed 1g; # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { # members v101; # } # } # } # } # ge-0/0/4 { # description interface-trunk; # native-vlan-id 50; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan40 vlan30 ]; # } # } # } # } # Using overridden # Before state: # ------------- # ansible@junos01# show interfaces # ge-0/0/3 { # description "test interface"; # speed 1g; #} # ge-0/0/4 { # description interface-trunk; # native-vlan-id 100; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan40 ]; # } # } # } # } # ge-0/0/5 { # description "Configured by Ansible-11"; # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { # members v101; # } # } # } # } - name: "Override provided configuration with device configuration" junos_l2_interfaces: config: - name: ge-0/0/3 access: vlan: v101 - name: ge-0/0/4 trunk: allowed_vlans: - vlan30 native_vlan: 50 state: overridden # After state: # ------------ # user@junos01# show interfaces # ge-0/0/3 { # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { # members v101; # } # } # } # } # ge-0/0/4 { # description interface-trunk; # native-vlan-id 50; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan30 ]; # } # } # } # } # Using replaced # Before state: # ------------- # ansible@junos01# show interfaces # ge-0/0/3 { # description "test interface"; # speed 1g; #} # ge-0/0/4 { # description interface-trunk; # native-vlan-id 100; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan40 ]; # } # } # } # } - name: "Replace provided configuration with device configuration" junos_l2_interfaces: config: - name: ge-0/0/3 access: vlan: v101 - name: ge-0/0/4 trunk: allowed_vlans: - vlan30 native_vlan: 50 state: replaced # After state: # ------------ # user@junos01# show interfaces # ge-0/0/3 { # unit 0 { # family ethernet-switching { # interface-mode access; # vlan { # members v101; # } # } # } # } # ge-0/0/4 { # description interface-trunk; # native-vlan-id 50; # unit 0 { # family ethernet-switching { # interface-mode trunk; # vlan { # members [ vlan30 ]; # } # } # } # }
Common return values are documented here, the following are the fields unique to this module:
Key | Returned | Description |
---|---|---|
after list | when changed | The configuration as structured data after module completion. Sample: The configuration returned will always be in the same format of the parameters above. |
before list | always | The configuration as structured data prior to module invocation. Sample: The configuration returned will always be in the same format of the parameters above. |
commands list | always | The set of commands pushed to the remote device. Sample: ['command 1', 'command 2', 'command 3'] |
More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.
Hint
If you notice any issues in this documentation, you can edit this document to improve it.
© 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
https://docs.ansible.com/ansible/2.9/modules/junos_l2_interfaces_module.html