summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changelogs/config.yaml2
-rw-r--r--changelogs/fragments/update_intf_doc.yaml3
-rw-r--r--docs/vyos.vyos.vyos_interfaces_module.rst994
-rw-r--r--plugins/modules/vyos_interfaces.py996
4 files changed, 754 insertions, 1241 deletions
diff --git a/changelogs/config.yaml b/changelogs/config.yaml
index 7a1e3ed..53e4399 100644
--- a/changelogs/config.yaml
+++ b/changelogs/config.yaml
@@ -26,5 +26,7 @@ sections:
- Bugfixes
- - known_issues
- Known Issues
+ - - doc_changes
+ - Documentation Changes
title: Vyos Collection
trivial_section_name: trivial
diff --git a/changelogs/fragments/update_intf_doc.yaml b/changelogs/fragments/update_intf_doc.yaml
new file mode 100644
index 0000000..41aa659
--- /dev/null
+++ b/changelogs/fragments/update_intf_doc.yaml
@@ -0,0 +1,3 @@
+---
+doc_changes:
+ - vyos_interfaces - Updated documentation with examples and task output.
diff --git a/docs/vyos.vyos.vyos_interfaces_module.rst b/docs/vyos.vyos.vyos_interfaces_module.rst
index d1cdf0b..1203c20 100644
--- a/docs/vyos.vyos.vyos_interfaces_module.rst
+++ b/docs/vyos.vyos.vyos_interfaces_module.rst
@@ -313,6 +313,7 @@ Notes
.. note::
- Tested against VyOS 1.1.8 (helium).
- This module works with connection ``ansible.netcommon.network_cli``. See `the VyOS OS Platform Options <../network/user_guide/platform_vyos.html>`_.
+ - The examples use the stdout_callback as yaml to produce task outputs.
@@ -322,24 +323,22 @@ Examples
.. code-block:: yaml
# Using merged
- #
- # -------------
+
# Before state:
# -------------
- #
# vyos@vyos:~$ show configuration commands | grep interfaces
+ # set interfaces bonding 'bond0'
+ # set interfaces bonding 'bond1'
+ # set interfaces bonding bond2 'ip'
+ # set interfaces bonding bond2 'ipv6'
# set interfaces ethernet eth0 address 'dhcp'
- # set interfaces ethernet eth0 address 'dhcpv6'
# set interfaces ethernet eth0 duplex 'auto'
- # set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
- # set interfaces ethernet eth0 smp-affinity 'auto'
+ # set interfaces ethernet eth0 'ip'
+ # set interfaces ethernet eth0 'ipv6'
+ # set interfaces ethernet eth0 smp_affinity 'auto'
# set interfaces ethernet eth0 speed 'auto'
- # set interfaces ethernet eth1 hw-id '08:00:27:ea:0f:b9'
- # set interfaces ethernet eth1 smp-affinity 'auto'
- # set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
- # set interfaces ethernet eth2 smp-affinity 'auto'
- # set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
- # set interfaces loopback lo
+ # set interfaces ethernet 'eth1'
+ # set interfaces ethernet 'eth2'
- name: Merge provided configuration with device configuration
vyos.vyos.vyos_interfaces:
@@ -350,115 +349,74 @@ Examples
vifs:
- vlan_id: 200
description: VIF 200 - ETH2
-
- name: eth3
description: Configured by Ansible
mtu: 1500
-
- name: bond1
description: Bond - 1
mtu: 1200
-
- name: vti2
description: VTI - 2
enabled: false
state: merged
- #
- #
- # -------------------------
- # Module Execution Result
- # -------------------------
- #
- # "before": [
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "enabled": true,
- # "name": "eth3"
- # },
- # {
- # "enabled": true,
- # "name": "eth2"
- # },
- # {
- # "enabled": true,
- # "name": "eth1"
- # },
- # {
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- # "commands": [
- # "set interfaces ethernet eth2 description 'Configured by Ansible'",
- # "set interfaces ethernet eth2 vif 200",
- # "set interfaces ethernet eth2 vif 200 description 'VIF 200 - ETH2'",
- # "set interfaces ethernet eth3 description 'Configured by Ansible'",
- # "set interfaces ethernet eth3 mtu '1500'",
- # "set interfaces bonding bond1",
- # "set interfaces bonding bond1 description 'Bond - 1'",
- # "set interfaces bonding bond1 mtu '1200'",
- # "set interfaces vti vti2",
- # "set interfaces vti vti2 description 'VTI - 2'",
- # "set interfaces vti vti2 disable"
- # ]
- #
- # "after": [
- # {
- # "description": "Bond - 1",
- # "enabled": true,
- # "mtu": 1200,
- # "name": "bond1"
- # },
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "description": "VTI - 2",
- # "enabled": false,
- # "name": "vti2"
- # },
- # {
- # "description": "Configured by Ansible",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth3"
- # },
- # {
- # "description": "Configured by Ansible",
- # "enabled": true,
- # "name": "eth2",
- # "vifs": [
- # {
- # "description": "VIF 200 - ETH2",
- # "enabled": true,
- # "vlan_id": "200"
- # }
- # ]
- # },
- # {
- # "enabled": true,
- # "name": "eth1"
- # },
- # {
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- #
- # -------------
+
+ # Task Output
+ # -----------
+ # before:
+ # - enabled: true
+ # name: lo
+ # - enabled: true
+ # name: eth3
+ # - enabled: true
+ # name: eth2
+ # - enabled: true
+ # name: eth1
+ # - duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+ # commands:
+ # - set interfaces ethernet eth2 description 'Configured by Ansible'
+ # - set interfaces ethernet eth2 vif 200
+ # - set interfaces ethernet eth2 vif 200 description 'VIF 200 - ETH2'
+ # - set interfaces ethernet eth3 description 'Configured by Ansible'
+ # - set interfaces ethernet eth3 mtu '1500'
+ # - set interfaces bonding bond1
+ # - set interfaces bonding bond1 description 'Bond - 1'
+ # - set interfaces bonding bond1 mtu '1200'
+ # - set interfaces vti vti2
+ # - set interfaces vti vti2 description 'VTI - 2'
+ # - set interfaces vti vti2 disable
+ # after:
+ # - description: Bond - 1
+ # enabled: true
+ # mtu: 1200
+ # name: bond1
+ # - enabled: true
+ # name: lo
+ # - description: VTI - 2
+ # enabled: false
+ # name: vti2
+ # - description: Configured by Ansible
+ # enabled: true
+ # mtu: 1500
+ # name: eth3
+ # - description: Configured by Ansible
+ # enabled: true
+ # name: eth2
+ # vifs:
+ # - description: VIF 200 - ETH2
+ # enabled: true
+ # vlan_id: '200'
+ # - enabled: true
+ # name: eth1
+ # - duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+
# After state:
- # -------------
- #
+ # ------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1200'
@@ -480,15 +438,11 @@ Examples
# set interfaces loopback lo
# set interfaces vti vti2 description 'VTI - 2'
# set interfaces vti vti2 disable
- #
# Using replaced
- #
- # -------------
# Before state:
# -------------
- #
# vyos:~$ show configuration commands | grep eth
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1400'
@@ -517,137 +471,93 @@ Examples
# set interfaces ethernet eth3 smp_affinity 'auto'
# set interfaces ethernet eth3 speed '100'
# set interfaces loopback lo
- #
- #
+
- name: Replace device configurations of listed interfaces with provided configurations
vyos.vyos.vyos_interfaces:
config:
- name: eth2
description: Replaced by Ansible
-
- name: eth3
description: Replaced by Ansible
-
- name: eth1
description: Replaced by Ansible
state: replaced
- #
- #
- # -----------------------
- # Module Execution Result
- # -----------------------
- #
- # "before": [
- # {
- # "description": "Bond - 1",
- # "enabled": true,
- # "mtu": 1400,
- # "name": "bond1"
- # },
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "description": "Configured by Ansible",
- # "duplex": "full",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth3",
- # "speed": "100"
- # },
- # {
- # "description": "Configured by Ansible",
- # "duplex": "full",
- # "enabled": true,
- # "mtu": 500,
- # "name": "eth2",
- # "speed": "100",
- # "vifs": [
- # {
- # "description": "VIF 200 - ETH2",
- # "enabled": true,
- # "vlan_id": "200"
- # }
- # ]
- # },
- # {
- # "description": "Configured by Ansible Eng Team",
- # "duplex": "full",
- # "enabled": true,
- # "name": "eth1",
- # "speed": "100"
- # },
- # {
- # "description": "Management Interface for the Appliance",
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- # "commands": [
- # "delete interfaces ethernet eth2 speed",
- # "delete interfaces ethernet eth2 duplex",
- # "delete interfaces ethernet eth2 mtu",
- # "delete interfaces ethernet eth2 vif 200 description",
- # "set interfaces ethernet eth2 description 'Replaced by Ansible'",
- # "delete interfaces ethernet eth3 speed",
- # "delete interfaces ethernet eth3 duplex",
- # "delete interfaces ethernet eth3 mtu",
- # "set interfaces ethernet eth3 description 'Replaced by Ansible'",
- # "delete interfaces ethernet eth1 speed",
- # "delete interfaces ethernet eth1 duplex",
- # "set interfaces ethernet eth1 description 'Replaced by Ansible'"
- # ]
- #
- # "after": [
- # {
- # "description": "Bond - 1",
- # "enabled": true,
- # "mtu": 1400,
- # "name": "bond1"
- # },
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "description": "Replaced by Ansible",
- # "enabled": true,
- # "name": "eth3"
- # },
- # {
- # "description": "Replaced by Ansible",
- # "enabled": true,
- # "name": "eth2",
- # "vifs": [
- # {
- # "enabled": true,
- # "vlan_id": "200"
- # }
- # ]
- # },
- # {
- # "description": "Replaced by Ansible",
- # "enabled": true,
- # "name": "eth1"
- # },
- # {
- # "description": "Management Interface for the Appliance",
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- #
- # -------------
+
+ # Task Output
+ # -----------
+ # before:
+ # - description: Bond - 1
+ # enabled: true
+ # mtu: 1400
+ # name: bond1
+ # - enabled: true
+ # name: lo
+ # - description: Configured by Ansible
+ # duplex: full
+ # enabled: true
+ # mtu: 1500
+ # name: eth3
+ # speed: '100'
+ # - description: Configured by Ansible
+ # duplex: full
+ # enabled: true
+ # mtu: 500
+ # name: eth2
+ # speed: '100'
+ # vifs:
+ # - description: VIF 200 - ETH2
+ # enabled: true
+ # vlan_id: '200'
+ # - description: Configured by Ansible Eng Team
+ # duplex: full
+ # enabled: true
+ # name: eth1
+ # speed: '100'
+ # - description: Management Interface for the Appliance
+ # duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+ # commands:
+ # - delete interfaces ethernet eth2 speed
+ # - delete interfaces ethernet eth2 duplex
+ # - delete interfaces ethernet eth2 mtu
+ # - delete interfaces ethernet eth2 vif 200 description
+ # - set interfaces ethernet eth2 description 'Replaced by Ansible'
+ # - delete interfaces ethernet eth3 speed
+ # - delete interfaces ethernet eth3 duplex
+ # - delete interfaces ethernet eth3 mtu
+ # - set interfaces ethernet eth3 description 'Replaced by Ansible'
+ # - delete interfaces ethernet eth1 speed
+ # - delete interfaces ethernet eth1 duplex
+ # - set interfaces ethernet eth1 description 'Replaced by Ansible'
+ # after:
+ # - description: Bond - 1
+ # enabled: true
+ # mtu: 1400
+ # name: bond1
+ # - enabled: true
+ # name: lo
+ # - description: Replaced by Ansible
+ # enabled: true
+ # name: eth3
+ # - description: Replaced by Ansible
+ # enabled: true
+ # name: eth2
+ # vifs:
+ # - enabled: true
+ # vlan_id: '200'
+ # - description: Replaced by Ansible
+ # enabled: true
+ # name: eth1
+ # - description: Management Interface for the Appliance
+ # duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+
# After state:
- # -------------
- #
+ # ------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1400'
@@ -668,15 +578,12 @@ Examples
# set interfaces ethernet eth3 description 'Replaced by Ansible'
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces loopback lo
- #
- #
+
+
# Using overridden
- #
- #
- # --------------
- # Before state
- # --------------
- #
+
+ # Before state:
+ # -------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 address 'dhcpv6'
@@ -702,8 +609,7 @@ Examples
# set interfaces loopback lo
# set interfaces vti vti1 description 'Virtual Tunnel Interface - 1'
# set interfaces vti vti1 mtu '68'
- #
- #
+
- name: Overrides all device configuration with provided configuration
vyos.vyos.vyos_interfaces:
config:
@@ -711,127 +617,84 @@ Examples
description: Outbound Interface For The Appliance
speed: auto
duplex: auto
-
- name: eth2
speed: auto
duplex: auto
-
- name: eth3
mtu: 1200
state: overridden
- #
- #
- # ------------------------
- # Module Execution Result
- # ------------------------
- #
- # "before": [
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "description": "Virtual Tunnel Interface - 1",
- # "enabled": true,
- # "mtu": 68,
- # "name": "vti1"
- # },
- # {
- # "description": "Configured by Ansible Network",
- # "enabled": true,
- # "name": "eth3"
- # },
- # {
- # "description": "Configured by Ansible Team (Admin Down)",
- # "enabled": false,
- # "mtu": 600,
- # "name": "eth2"
- # },
- # {
- # "description": "Configured by Ansible Eng Team",
- # "enabled": true,
- # "mtu": 100,
- # "name": "eth1",
- # "vifs": [
- # {
- # "description": "VIF 100 - ETH1",
- # "enabled": false,
- # "vlan_id": "100"
- # }
- # ]
- # },
- # {
- # "description": "Ethernet Interface - 0",
- # "duplex": "auto",
- # "enabled": true,
- # "mtu": 1200,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- # "commands": [
- # "delete interfaces vti vti1 description",
- # "delete interfaces vti vti1 mtu",
- # "delete interfaces ethernet eth1 description",
- # "delete interfaces ethernet eth1 mtu",
- # "delete interfaces ethernet eth1 vif 100 description",
- # "delete interfaces ethernet eth1 vif 100 disable",
- # "delete interfaces ethernet eth0 mtu",
- # "set interfaces ethernet eth0 description 'Outbound Interface For The Appliance'",
- # "delete interfaces ethernet eth2 description",
- # "delete interfaces ethernet eth2 mtu",
- # "set interfaces ethernet eth2 duplex 'auto'",
- # "delete interfaces ethernet eth2 disable",
- # "set interfaces ethernet eth2 speed 'auto'",
- # "delete interfaces ethernet eth3 description",
- # "set interfaces ethernet eth3 mtu '1200'"
- # ],
- #
- # "after": [
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "enabled": true,
- # "name": "vti1"
- # },
- # {
- # "enabled": true,
- # "mtu": 1200,
- # "name": "eth3"
- # },
- # {
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth2",
- # "speed": "auto"
- # },
- # {
- # "enabled": true,
- # "name": "eth1",
- # "vifs": [
- # {
- # "enabled": true,
- # "vlan_id": "100"
- # }
- # ]
- # },
- # {
- # "description": "Outbound Interface For The Appliance",
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- #
- # ------------
- # After state
+
+ # Task Output
+ # -----------
+ # before:
+ # - enabled: true
+ # name: lo
+ # - description: Virtual Tunnel Interface - 1
+ # enabled: true
+ # mtu: 68
+ # name: vti1
+ # - description: Configured by Ansible Network
+ # enabled: true
+ # name: eth3
+ # - description: Configured by Ansible Team (Admin Down)
+ # enabled: false
+ # mtu: 600
+ # name: eth2
+ # - description: Configured by Ansible Eng Team
+ # enabled: true
+ # mtu: 100
+ # name: eth1
+ # vifs:
+ # - description: VIF 100 - ETH1
+ # enabled: false
+ # vlan_id: '100'
+ # - description: Ethernet Interface - 0
+ # duplex: auto
+ # enabled: true
+ # mtu: 1200
+ # name: eth0
+ # speed: auto
+ # commands:
+ # - delete interfaces vti vti1 description
+ # - delete interfaces vti vti1 mtu
+ # - delete interfaces ethernet eth1 description
+ # - delete interfaces ethernet eth1 mtu
+ # - delete interfaces ethernet eth1 vif 100 description
+ # - delete interfaces ethernet eth1 vif 100 disable
+ # - delete interfaces ethernet eth0 mtu
+ # - set interfaces ethernet eth0 description 'Outbound Interface For The Appliance'
+ # - delete interfaces ethernet eth2 description
+ # - delete interfaces ethernet eth2 mtu
+ # - set interfaces ethernet eth2 duplex 'auto'
+ # - delete interfaces ethernet eth2 disable
+ # - set interfaces ethernet eth2 speed 'auto'
+ # - delete interfaces ethernet eth3 description
+ # - set interfaces ethernet eth3 mtu '1200'
+ # after:
+ # - enabled: true
+ # name: lo
+ # - enabled: true
+ # name: vti1
+ # - enabled: true
+ # mtu: 1200
+ # name: eth3
+ # - duplex: auto
+ # enabled: true
+ # name: eth2
+ # speed: auto
+ # - enabled: true
+ # name: eth1
+ # vifs:
+ # - enabled: true
+ # vlan_id: '100'
+ # - description: Outbound Interface For The Appliance
+ # duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+
+ # After state:
# ------------
- #
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 address 'dhcpv6'
@@ -851,15 +714,12 @@ Examples
# set interfaces ethernet eth3 mtu '1200'
# set interfaces loopback lo
# set interfaces vti vti1
- #
- #
+
+
# Using deleted
- #
- #
- # -------------
- # Before state
+
+ # Before state:
# -------------
- #
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond0 mtu '1300'
# set interfaces bonding bond1 description 'LAG - 1'
@@ -887,130 +747,87 @@ Examples
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces ethernet eth3 speed '100'
# set interfaces loopback lo
- #
- #
+
- name: Delete attributes of given interfaces (Note - This won't delete the interfaces
themselves)
vyos.vyos.vyos_interfaces:
config:
- name: bond1
-
- name: eth1
-
- name: eth2
-
- name: eth3
state: deleted
- #
- #
- # ------------------------
- # Module Execution Results
- # ------------------------
- #
- # "before": [
- # {
- # "enabled": true,
- # "mtu": 1300,
- # "name": "bond0"
- # },
- # {
- # "description": "LAG - 1",
- # "enabled": true,
- # "name": "bond1"
- # },
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "description": "Configured by Ansible Network",
- # "duplex": "full",
- # "enabled": true,
- # "name": "eth3",
- # "speed": "100"
- # },
- # {
- # "description": "Configured by Ansible",
- # "duplex": "full",
- # "enabled": false,
- # "mtu": 600,
- # "name": "eth2",
- # "speed": "100"
- # },
- # {
- # "description": "Configured by Ansible Network",
- # "duplex": "full",
- # "enabled": true,
- # "name": "eth1",
- # "speed": "100"
- # },
- # {
- # "description": "Outbound Interface for this appliance",
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- # "commands": [
- # "delete interfaces bonding bond1 description",
- # "delete interfaces ethernet eth1 speed",
- # "delete interfaces ethernet eth1 duplex",
- # "delete interfaces ethernet eth1 description",
- # "delete interfaces ethernet eth2 speed",
- # "delete interfaces ethernet eth2 disable",
- # "delete interfaces ethernet eth2 duplex",
- # "delete interfaces ethernet eth2 disable",
- # "delete interfaces ethernet eth2 description",
- # "delete interfaces ethernet eth2 disable",
- # "delete interfaces ethernet eth2 mtu",
- # "delete interfaces ethernet eth2 disable",
- # "delete interfaces ethernet eth3 speed",
- # "delete interfaces ethernet eth3 duplex",
- # "delete interfaces ethernet eth3 description"
- # ]
- #
- # "after": [
- # {
- # "enabled": true,
- # "mtu": 1300,
- # "name": "bond0"
- # },
- # {
- # "enabled": true,
- # "name": "bond1"
- # },
- # {
- # "enabled": true,
- # "name": "lo"
- # },
- # {
- # "enabled": true,
- # "name": "eth3"
- # },
- # {
- # "enabled": true,
- # "name": "eth2"
- # },
- # {
- # "enabled": true,
- # "name": "eth1"
- # },
- # {
- # "description": "Outbound Interface for this appliance",
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- #
- # ------------
- # After state
+
+ # Task Output
+ # -----------
+ # before:
+ # - enabled: true
+ # mtu: 1300
+ # name: bond0
+ # - description: LAG - 1
+ # enabled: true
+ # name: bond1
+ # - enabled: true
+ # name: lo
+ # - description: Configured by Ansible Network
+ # duplex: full
+ # enabled: true
+ # name: eth3
+ # speed: '100'
+ # - description: Configured by Ansible
+ # duplex: full
+ # enabled: false
+ # mtu: 600
+ # name: eth2
+ # speed: '100'
+ # - description: Configured by Ansible Network
+ # duplex: full
+ # enabled: true
+ # name: eth1
+ # speed: '100'
+ # - description: Outbound Interface for this appliance
+ # duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+ # commands:
+ # - delete interfaces bonding bond1 description
+ # - delete interfaces ethernet eth1 speed
+ # - delete interfaces ethernet eth1 duplex
+ # - delete interfaces ethernet eth1 description
+ # - delete interfaces ethernet eth2 speed
+ # - delete interfaces ethernet eth2 disable
+ # - delete interfaces ethernet eth2 duplex
+ # - delete interfaces ethernet eth2 disable
+ # - delete interfaces ethernet eth2 description
+ # - delete interfaces ethernet eth2 disable
+ # - delete interfaces ethernet eth2 mtu
+ # - delete interfaces ethernet eth2 disable
+ # - delete interfaces ethernet eth3 speed
+ # - delete interfaces ethernet eth3 duplex
+ # - delete interfaces ethernet eth3 description
+ # after:
+ # - enabled: true
+ # mtu: 1300
+ # name: bond0
+ # - enabled: true
+ # name: bond1
+ # - enabled: true
+ # name: lo
+ # - enabled: true
+ # name: eth3
+ # - enabled: true
+ # name: eth2
+ # - enabled: true
+ # name: eth1
+ # - description: Outbound Interface for this appliance
+ # duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
+
+ # After state:
# ------------
- #
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond0 mtu '1300'
# set interfaces bonding bond1
@@ -1027,15 +844,12 @@ Examples
# set interfaces ethernet eth2 smp-affinity 'auto'
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces loopback lo
- #
- #
# Using gathered
- #
+
# Before state:
# -------------
- #
# vyos@192# run show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 duplex 'auto'
@@ -1057,76 +871,38 @@ Examples
vyos.vyos.vyos_interfaces:
config:
state: gathered
- #
- #
- # -------------------------
- # Module Execution Result
- # -------------------------
- #
- # "gathered": [
- # {
- # "description": "Configured by Ansible",
- # "duplex": "auto",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth2",
- # "speed": "auto",
- # "vifs": [
- # {
- # "description": "VIF - 200",
- # "enabled": true,
- # "vlan_id": 200
- # }
- # ]
- # },
- # {
- # "description": "Configured by Ansible",
- # "duplex": "auto",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth1",
- # "speed": "auto",
- # "vifs": [
- # {
- # "description": "VIF - 200",
- # "enabled": true,
- # "vlan_id": 200
- # }
- # ]
- # },
- # {
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
- #
- #
- # After state:
- # -------------
- #
- # vyos@192# run show configuration commands | grep interfaces
- # set interfaces ethernet eth0 address 'dhcp'
- # set interfaces ethernet eth0 duplex 'auto'
- # set interfaces ethernet eth0 hw-id '08:00:27:50:5e:19'
- # set interfaces ethernet eth0 smp_affinity 'auto'
- # set interfaces ethernet eth0 speed 'auto'
- # set interfaces ethernet eth1 description 'Configured by Ansible'
- # set interfaces ethernet eth1 duplex 'auto'
- # set interfaces ethernet eth1 mtu '1500'
- # set interfaces ethernet eth1 speed 'auto'
- # set interfaces ethernet eth1 vif 200 description 'VIF - 200'
- # set interfaces ethernet eth2 description 'Configured by Ansible'
- # set interfaces ethernet eth2 duplex 'auto'
- # set interfaces ethernet eth2 mtu '1500'
- # set interfaces ethernet eth2 speed 'auto'
- # set interfaces ethernet eth2 vif 200 description 'VIF - 200'
+
+ # Task output
+ # -----------
+ # gathered:
+ # - description: Configured by Ansible
+ # duplex: auto
+ # enabled: true
+ # mtu: 1500
+ # name: eth2
+ # speed: auto
+ # vifs:
+ # - description: VIF - 200
+ # enabled: true
+ # vlan_id: 200
+ # - description: Configured by Ansible
+ # duplex: auto
+ # enabled: true
+ # mtu: 1500
+ # name: eth1
+ # speed: auto
+ # vifs:
+ # - description: VIF - 200
+ # enabled: true
+ # vlan_id: 200
+ # - duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
# Using rendered
- #
- #
+
- name: Render the commands for provided configuration
vyos.vyos.vyos_interfaces:
config:
@@ -1153,34 +929,29 @@ Examples
mtu: 600
enabled: false
state: rendered
- #
- #
- # -------------------------
- # Module Execution Result
- # -------------------------
- #
- #
- # "rendered": [
- # "set interfaces ethernet eth0 duplex 'auto'",
- # "set interfaces ethernet eth0 speed 'auto'",
- # "delete interfaces ethernet eth0 disable",
- # "set interfaces ethernet eth1 duplex 'auto'",
- # "delete interfaces ethernet eth1 disable",
- # "set interfaces ethernet eth1 speed 'auto'",
- # "set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1'",
- # "set interfaces ethernet eth1 mtu '1500'",
- # "set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100'",
- # "set interfaces ethernet eth1 vif 100 mtu '400'",
- # "set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101'",
- # "set interfaces ethernet eth2 disable",
- # "set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)'",
- # "set interfaces ethernet eth2 mtu '600'"
- # ]
+
+ # Task Output
+ # -----------
+ # rendered:
+ # - set interfaces ethernet eth0 duplex 'auto'
+ # - set interfaces ethernet eth0 speed 'auto'
+ # - delete interfaces ethernet eth0 disable
+ # - set interfaces ethernet eth1 duplex 'auto'
+ # - delete interfaces ethernet eth1 disable
+ # - set interfaces ethernet eth1 speed 'auto'
+ # - set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1'
+ # - set interfaces ethernet eth1 mtu '1500'
+ # - set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100'
+ # - set interfaces ethernet eth1 vif 100 mtu '400'
+ # - set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101'
+ # - set interfaces ethernet eth2 disable
+ # - set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN
+ # DOWN)'
+ # - set interfaces ethernet eth2 mtu '600'
# Using parsed
- #
- #
+
- name: Parse the configuration.
vyos.vyos.vyos_interfaces:
running_config:
@@ -1200,51 +971,34 @@ Examples
set interfaces ethernet eth2 speed 'auto'
set interfaces ethernet eth2 vif 200 description 'VIF - 200'"
state: parsed
- #
- #
- # -------------------------
- # Module Execution Result
- # -------------------------
- #
- #
- # "parsed": [
- # {
- # "description": "Configured by Ansible",
- # "duplex": "auto",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth2",
- # "speed": "auto",
- # "vifs": [
- # {
- # "description": "VIF - 200",
- # "enabled": true,
- # "vlan_id": 200
- # }
- # ]
- # },
- # {
- # "description": "Configured by Ansible",
- # "duplex": "auto",
- # "enabled": true,
- # "mtu": 1500,
- # "name": "eth1",
- # "speed": "auto",
- # "vifs": [
- # {
- # "description": "VIF - 200",
- # "enabled": true,
- # "vlan_id": 200
- # }
- # ]
- # },
- # {
- # "duplex": "auto",
- # "enabled": true,
- # "name": "eth0",
- # "speed": "auto"
- # }
- # ]
+
+ # Task output
+ # -----------
+ # parsed:
+ # - description: Configured by Ansible
+ # duplex: auto
+ # enabled: true
+ # mtu: 1500
+ # name: eth2
+ # speed: auto
+ # vifs:
+ # - description: VIF - 200
+ # enabled: true
+ # vlan_id: 200
+ # - description: Configured by Ansible
+ # duplex: auto
+ # enabled: true
+ # mtu: 1500
+ # name: eth1
+ # speed: auto
+ # vifs:
+ # - description: VIF - 200
+ # enabled: true
+ # vlan_id: 200
+ # - duplex: auto
+ # enabled: true
+ # name: eth0
+ # speed: auto
diff --git a/plugins/modules/vyos_interfaces.py b/plugins/modules/vyos_interfaces.py
index 47ff604..f0772ab 100644
--- a/plugins/modules/vyos_interfaces.py
+++ b/plugins/modules/vyos_interfaces.py
@@ -42,6 +42,7 @@ version_added: 1.0.0
notes:
- Tested against VyOS 1.1.8 (helium).
- This module works with connection C(ansible.netcommon.network_cli). See L(the VyOS OS Platform Options,../network/user_guide/platform_vyos.html).
+- The examples use the stdout_callback as yaml to produce task outputs.
author:
- Nilashish Chakraborty (@nilashishc)
- Rohit Thakur (@rohitthakur2590)
@@ -143,26 +144,25 @@ options:
- parsed
default: merged
"""
+
EXAMPLES = """
# Using merged
-#
-# -------------
+
# Before state:
# -------------
-#
# vyos@vyos:~$ show configuration commands | grep interfaces
+# set interfaces bonding 'bond0'
+# set interfaces bonding 'bond1'
+# set interfaces bonding bond2 'ip'
+# set interfaces bonding bond2 'ipv6'
# set interfaces ethernet eth0 address 'dhcp'
-# set interfaces ethernet eth0 address 'dhcpv6'
# set interfaces ethernet eth0 duplex 'auto'
-# set interfaces ethernet eth0 hw-id '08:00:27:30:f0:22'
-# set interfaces ethernet eth0 smp-affinity 'auto'
+# set interfaces ethernet eth0 'ip'
+# set interfaces ethernet eth0 'ipv6'
+# set interfaces ethernet eth0 smp_affinity 'auto'
# set interfaces ethernet eth0 speed 'auto'
-# set interfaces ethernet eth1 hw-id '08:00:27:ea:0f:b9'
-# set interfaces ethernet eth1 smp-affinity 'auto'
-# set interfaces ethernet eth2 hw-id '08:00:27:c2:98:23'
-# set interfaces ethernet eth2 smp-affinity 'auto'
-# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
-# set interfaces loopback lo
+# set interfaces ethernet 'eth1'
+# set interfaces ethernet 'eth2'
- name: Merge provided configuration with device configuration
vyos.vyos.vyos_interfaces:
@@ -173,115 +173,74 @@ EXAMPLES = """
vifs:
- vlan_id: 200
description: VIF 200 - ETH2
-
- name: eth3
description: Configured by Ansible
mtu: 1500
-
- name: bond1
description: Bond - 1
mtu: 1200
-
- name: vti2
description: VTI - 2
enabled: false
state: merged
-#
-#
-# -------------------------
-# Module Execution Result
-# -------------------------
-#
-# "before": [
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "enabled": true,
-# "name": "eth3"
-# },
-# {
-# "enabled": true,
-# "name": "eth2"
-# },
-# {
-# "enabled": true,
-# "name": "eth1"
-# },
-# {
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-# "commands": [
-# "set interfaces ethernet eth2 description 'Configured by Ansible'",
-# "set interfaces ethernet eth2 vif 200",
-# "set interfaces ethernet eth2 vif 200 description 'VIF 200 - ETH2'",
-# "set interfaces ethernet eth3 description 'Configured by Ansible'",
-# "set interfaces ethernet eth3 mtu '1500'",
-# "set interfaces bonding bond1",
-# "set interfaces bonding bond1 description 'Bond - 1'",
-# "set interfaces bonding bond1 mtu '1200'",
-# "set interfaces vti vti2",
-# "set interfaces vti vti2 description 'VTI - 2'",
-# "set interfaces vti vti2 disable"
-# ]
-#
-# "after": [
-# {
-# "description": "Bond - 1",
-# "enabled": true,
-# "mtu": 1200,
-# "name": "bond1"
-# },
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "description": "VTI - 2",
-# "enabled": false,
-# "name": "vti2"
-# },
-# {
-# "description": "Configured by Ansible",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth3"
-# },
-# {
-# "description": "Configured by Ansible",
-# "enabled": true,
-# "name": "eth2",
-# "vifs": [
-# {
-# "description": "VIF 200 - ETH2",
-# "enabled": true,
-# "vlan_id": "200"
-# }
-# ]
-# },
-# {
-# "enabled": true,
-# "name": "eth1"
-# },
-# {
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-#
-# -------------
+
+# Task Output
+# -----------
+# before:
+# - enabled: true
+# name: lo
+# - enabled: true
+# name: eth3
+# - enabled: true
+# name: eth2
+# - enabled: true
+# name: eth1
+# - duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+# commands:
+# - set interfaces ethernet eth2 description 'Configured by Ansible'
+# - set interfaces ethernet eth2 vif 200
+# - set interfaces ethernet eth2 vif 200 description 'VIF 200 - ETH2'
+# - set interfaces ethernet eth3 description 'Configured by Ansible'
+# - set interfaces ethernet eth3 mtu '1500'
+# - set interfaces bonding bond1
+# - set interfaces bonding bond1 description 'Bond - 1'
+# - set interfaces bonding bond1 mtu '1200'
+# - set interfaces vti vti2
+# - set interfaces vti vti2 description 'VTI - 2'
+# - set interfaces vti vti2 disable
+# after:
+# - description: Bond - 1
+# enabled: true
+# mtu: 1200
+# name: bond1
+# - enabled: true
+# name: lo
+# - description: VTI - 2
+# enabled: false
+# name: vti2
+# - description: Configured by Ansible
+# enabled: true
+# mtu: 1500
+# name: eth3
+# - description: Configured by Ansible
+# enabled: true
+# name: eth2
+# vifs:
+# - description: VIF 200 - ETH2
+# enabled: true
+# vlan_id: '200'
+# - enabled: true
+# name: eth1
+# - duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+
# After state:
-# -------------
-#
+# ------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1200'
@@ -303,15 +262,11 @@ EXAMPLES = """
# set interfaces loopback lo
# set interfaces vti vti2 description 'VTI - 2'
# set interfaces vti vti2 disable
-#
# Using replaced
-#
-# -------------
# Before state:
# -------------
-#
# vyos:~$ show configuration commands | grep eth
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1400'
@@ -340,137 +295,93 @@ EXAMPLES = """
# set interfaces ethernet eth3 smp_affinity 'auto'
# set interfaces ethernet eth3 speed '100'
# set interfaces loopback lo
-#
-#
+
- name: Replace device configurations of listed interfaces with provided configurations
vyos.vyos.vyos_interfaces:
config:
- name: eth2
description: Replaced by Ansible
-
- name: eth3
description: Replaced by Ansible
-
- name: eth1
description: Replaced by Ansible
state: replaced
-#
-#
-# -----------------------
-# Module Execution Result
-# -----------------------
-#
-# "before": [
-# {
-# "description": "Bond - 1",
-# "enabled": true,
-# "mtu": 1400,
-# "name": "bond1"
-# },
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "description": "Configured by Ansible",
-# "duplex": "full",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth3",
-# "speed": "100"
-# },
-# {
-# "description": "Configured by Ansible",
-# "duplex": "full",
-# "enabled": true,
-# "mtu": 500,
-# "name": "eth2",
-# "speed": "100",
-# "vifs": [
-# {
-# "description": "VIF 200 - ETH2",
-# "enabled": true,
-# "vlan_id": "200"
-# }
-# ]
-# },
-# {
-# "description": "Configured by Ansible Eng Team",
-# "duplex": "full",
-# "enabled": true,
-# "name": "eth1",
-# "speed": "100"
-# },
-# {
-# "description": "Management Interface for the Appliance",
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-# "commands": [
-# "delete interfaces ethernet eth2 speed",
-# "delete interfaces ethernet eth2 duplex",
-# "delete interfaces ethernet eth2 mtu",
-# "delete interfaces ethernet eth2 vif 200 description",
-# "set interfaces ethernet eth2 description 'Replaced by Ansible'",
-# "delete interfaces ethernet eth3 speed",
-# "delete interfaces ethernet eth3 duplex",
-# "delete interfaces ethernet eth3 mtu",
-# "set interfaces ethernet eth3 description 'Replaced by Ansible'",
-# "delete interfaces ethernet eth1 speed",
-# "delete interfaces ethernet eth1 duplex",
-# "set interfaces ethernet eth1 description 'Replaced by Ansible'"
-# ]
-#
-# "after": [
-# {
-# "description": "Bond - 1",
-# "enabled": true,
-# "mtu": 1400,
-# "name": "bond1"
-# },
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "description": "Replaced by Ansible",
-# "enabled": true,
-# "name": "eth3"
-# },
-# {
-# "description": "Replaced by Ansible",
-# "enabled": true,
-# "name": "eth2",
-# "vifs": [
-# {
-# "enabled": true,
-# "vlan_id": "200"
-# }
-# ]
-# },
-# {
-# "description": "Replaced by Ansible",
-# "enabled": true,
-# "name": "eth1"
-# },
-# {
-# "description": "Management Interface for the Appliance",
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-#
-# -------------
+
+# Task Output
+# -----------
+# before:
+# - description: Bond - 1
+# enabled: true
+# mtu: 1400
+# name: bond1
+# - enabled: true
+# name: lo
+# - description: Configured by Ansible
+# duplex: full
+# enabled: true
+# mtu: 1500
+# name: eth3
+# speed: '100'
+# - description: Configured by Ansible
+# duplex: full
+# enabled: true
+# mtu: 500
+# name: eth2
+# speed: '100'
+# vifs:
+# - description: VIF 200 - ETH2
+# enabled: true
+# vlan_id: '200'
+# - description: Configured by Ansible Eng Team
+# duplex: full
+# enabled: true
+# name: eth1
+# speed: '100'
+# - description: Management Interface for the Appliance
+# duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+# commands:
+# - delete interfaces ethernet eth2 speed
+# - delete interfaces ethernet eth2 duplex
+# - delete interfaces ethernet eth2 mtu
+# - delete interfaces ethernet eth2 vif 200 description
+# - set interfaces ethernet eth2 description 'Replaced by Ansible'
+# - delete interfaces ethernet eth3 speed
+# - delete interfaces ethernet eth3 duplex
+# - delete interfaces ethernet eth3 mtu
+# - set interfaces ethernet eth3 description 'Replaced by Ansible'
+# - delete interfaces ethernet eth1 speed
+# - delete interfaces ethernet eth1 duplex
+# - set interfaces ethernet eth1 description 'Replaced by Ansible'
+# after:
+# - description: Bond - 1
+# enabled: true
+# mtu: 1400
+# name: bond1
+# - enabled: true
+# name: lo
+# - description: Replaced by Ansible
+# enabled: true
+# name: eth3
+# - description: Replaced by Ansible
+# enabled: true
+# name: eth2
+# vifs:
+# - enabled: true
+# vlan_id: '200'
+# - description: Replaced by Ansible
+# enabled: true
+# name: eth1
+# - description: Management Interface for the Appliance
+# duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+
# After state:
-# -------------
-#
+# ------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond1 description 'Bond - 1'
# set interfaces bonding bond1 mtu '1400'
@@ -491,15 +402,12 @@ EXAMPLES = """
# set interfaces ethernet eth3 description 'Replaced by Ansible'
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces loopback lo
-#
-#
+
+
# Using overridden
-#
-#
-# --------------
-# Before state
-# --------------
-#
+
+# Before state:
+# -------------
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 address 'dhcpv6'
@@ -525,8 +433,7 @@ EXAMPLES = """
# set interfaces loopback lo
# set interfaces vti vti1 description 'Virtual Tunnel Interface - 1'
# set interfaces vti vti1 mtu '68'
-#
-#
+
- name: Overrides all device configuration with provided configuration
vyos.vyos.vyos_interfaces:
config:
@@ -534,127 +441,84 @@ EXAMPLES = """
description: Outbound Interface For The Appliance
speed: auto
duplex: auto
-
- name: eth2
speed: auto
duplex: auto
-
- name: eth3
mtu: 1200
state: overridden
-#
-#
-# ------------------------
-# Module Execution Result
-# ------------------------
-#
-# "before": [
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "description": "Virtual Tunnel Interface - 1",
-# "enabled": true,
-# "mtu": 68,
-# "name": "vti1"
-# },
-# {
-# "description": "Configured by Ansible Network",
-# "enabled": true,
-# "name": "eth3"
-# },
-# {
-# "description": "Configured by Ansible Team (Admin Down)",
-# "enabled": false,
-# "mtu": 600,
-# "name": "eth2"
-# },
-# {
-# "description": "Configured by Ansible Eng Team",
-# "enabled": true,
-# "mtu": 100,
-# "name": "eth1",
-# "vifs": [
-# {
-# "description": "VIF 100 - ETH1",
-# "enabled": false,
-# "vlan_id": "100"
-# }
-# ]
-# },
-# {
-# "description": "Ethernet Interface - 0",
-# "duplex": "auto",
-# "enabled": true,
-# "mtu": 1200,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-# "commands": [
-# "delete interfaces vti vti1 description",
-# "delete interfaces vti vti1 mtu",
-# "delete interfaces ethernet eth1 description",
-# "delete interfaces ethernet eth1 mtu",
-# "delete interfaces ethernet eth1 vif 100 description",
-# "delete interfaces ethernet eth1 vif 100 disable",
-# "delete interfaces ethernet eth0 mtu",
-# "set interfaces ethernet eth0 description 'Outbound Interface For The Appliance'",
-# "delete interfaces ethernet eth2 description",
-# "delete interfaces ethernet eth2 mtu",
-# "set interfaces ethernet eth2 duplex 'auto'",
-# "delete interfaces ethernet eth2 disable",
-# "set interfaces ethernet eth2 speed 'auto'",
-# "delete interfaces ethernet eth3 description",
-# "set interfaces ethernet eth3 mtu '1200'"
-# ],
-#
-# "after": [
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "enabled": true,
-# "name": "vti1"
-# },
-# {
-# "enabled": true,
-# "mtu": 1200,
-# "name": "eth3"
-# },
-# {
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth2",
-# "speed": "auto"
-# },
-# {
-# "enabled": true,
-# "name": "eth1",
-# "vifs": [
-# {
-# "enabled": true,
-# "vlan_id": "100"
-# }
-# ]
-# },
-# {
-# "description": "Outbound Interface For The Appliance",
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-#
-# ------------
-# After state
+
+# Task Output
+# -----------
+# before:
+# - enabled: true
+# name: lo
+# - description: Virtual Tunnel Interface - 1
+# enabled: true
+# mtu: 68
+# name: vti1
+# - description: Configured by Ansible Network
+# enabled: true
+# name: eth3
+# - description: Configured by Ansible Team (Admin Down)
+# enabled: false
+# mtu: 600
+# name: eth2
+# - description: Configured by Ansible Eng Team
+# enabled: true
+# mtu: 100
+# name: eth1
+# vifs:
+# - description: VIF 100 - ETH1
+# enabled: false
+# vlan_id: '100'
+# - description: Ethernet Interface - 0
+# duplex: auto
+# enabled: true
+# mtu: 1200
+# name: eth0
+# speed: auto
+# commands:
+# - delete interfaces vti vti1 description
+# - delete interfaces vti vti1 mtu
+# - delete interfaces ethernet eth1 description
+# - delete interfaces ethernet eth1 mtu
+# - delete interfaces ethernet eth1 vif 100 description
+# - delete interfaces ethernet eth1 vif 100 disable
+# - delete interfaces ethernet eth0 mtu
+# - set interfaces ethernet eth0 description 'Outbound Interface For The Appliance'
+# - delete interfaces ethernet eth2 description
+# - delete interfaces ethernet eth2 mtu
+# - set interfaces ethernet eth2 duplex 'auto'
+# - delete interfaces ethernet eth2 disable
+# - set interfaces ethernet eth2 speed 'auto'
+# - delete interfaces ethernet eth3 description
+# - set interfaces ethernet eth3 mtu '1200'
+# after:
+# - enabled: true
+# name: lo
+# - enabled: true
+# name: vti1
+# - enabled: true
+# mtu: 1200
+# name: eth3
+# - duplex: auto
+# enabled: true
+# name: eth2
+# speed: auto
+# - enabled: true
+# name: eth1
+# vifs:
+# - enabled: true
+# vlan_id: '100'
+# - description: Outbound Interface For The Appliance
+# duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+
+# After state:
# ------------
-#
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 address 'dhcpv6'
@@ -674,15 +538,12 @@ EXAMPLES = """
# set interfaces ethernet eth3 mtu '1200'
# set interfaces loopback lo
# set interfaces vti vti1
-#
-#
+
+
# Using deleted
-#
-#
-# -------------
-# Before state
+
+# Before state:
# -------------
-#
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond0 mtu '1300'
# set interfaces bonding bond1 description 'LAG - 1'
@@ -710,130 +571,87 @@ EXAMPLES = """
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces ethernet eth3 speed '100'
# set interfaces loopback lo
-#
-#
+
- name: Delete attributes of given interfaces (Note - This won't delete the interfaces
themselves)
vyos.vyos.vyos_interfaces:
config:
- name: bond1
-
- name: eth1
-
- name: eth2
-
- name: eth3
state: deleted
-#
-#
-# ------------------------
-# Module Execution Results
-# ------------------------
-#
-# "before": [
-# {
-# "enabled": true,
-# "mtu": 1300,
-# "name": "bond0"
-# },
-# {
-# "description": "LAG - 1",
-# "enabled": true,
-# "name": "bond1"
-# },
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "description": "Configured by Ansible Network",
-# "duplex": "full",
-# "enabled": true,
-# "name": "eth3",
-# "speed": "100"
-# },
-# {
-# "description": "Configured by Ansible",
-# "duplex": "full",
-# "enabled": false,
-# "mtu": 600,
-# "name": "eth2",
-# "speed": "100"
-# },
-# {
-# "description": "Configured by Ansible Network",
-# "duplex": "full",
-# "enabled": true,
-# "name": "eth1",
-# "speed": "100"
-# },
-# {
-# "description": "Outbound Interface for this appliance",
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-# "commands": [
-# "delete interfaces bonding bond1 description",
-# "delete interfaces ethernet eth1 speed",
-# "delete interfaces ethernet eth1 duplex",
-# "delete interfaces ethernet eth1 description",
-# "delete interfaces ethernet eth2 speed",
-# "delete interfaces ethernet eth2 disable",
-# "delete interfaces ethernet eth2 duplex",
-# "delete interfaces ethernet eth2 disable",
-# "delete interfaces ethernet eth2 description",
-# "delete interfaces ethernet eth2 disable",
-# "delete interfaces ethernet eth2 mtu",
-# "delete interfaces ethernet eth2 disable",
-# "delete interfaces ethernet eth3 speed",
-# "delete interfaces ethernet eth3 duplex",
-# "delete interfaces ethernet eth3 description"
-# ]
-#
-# "after": [
-# {
-# "enabled": true,
-# "mtu": 1300,
-# "name": "bond0"
-# },
-# {
-# "enabled": true,
-# "name": "bond1"
-# },
-# {
-# "enabled": true,
-# "name": "lo"
-# },
-# {
-# "enabled": true,
-# "name": "eth3"
-# },
-# {
-# "enabled": true,
-# "name": "eth2"
-# },
-# {
-# "enabled": true,
-# "name": "eth1"
-# },
-# {
-# "description": "Outbound Interface for this appliance",
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-#
-# ------------
-# After state
+
+# Task Output
+# -----------
+# before:
+# - enabled: true
+# mtu: 1300
+# name: bond0
+# - description: LAG - 1
+# enabled: true
+# name: bond1
+# - enabled: true
+# name: lo
+# - description: Configured by Ansible Network
+# duplex: full
+# enabled: true
+# name: eth3
+# speed: '100'
+# - description: Configured by Ansible
+# duplex: full
+# enabled: false
+# mtu: 600
+# name: eth2
+# speed: '100'
+# - description: Configured by Ansible Network
+# duplex: full
+# enabled: true
+# name: eth1
+# speed: '100'
+# - description: Outbound Interface for this appliance
+# duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+# commands:
+# - delete interfaces bonding bond1 description
+# - delete interfaces ethernet eth1 speed
+# - delete interfaces ethernet eth1 duplex
+# - delete interfaces ethernet eth1 description
+# - delete interfaces ethernet eth2 speed
+# - delete interfaces ethernet eth2 disable
+# - delete interfaces ethernet eth2 duplex
+# - delete interfaces ethernet eth2 disable
+# - delete interfaces ethernet eth2 description
+# - delete interfaces ethernet eth2 disable
+# - delete interfaces ethernet eth2 mtu
+# - delete interfaces ethernet eth2 disable
+# - delete interfaces ethernet eth3 speed
+# - delete interfaces ethernet eth3 duplex
+# - delete interfaces ethernet eth3 description
+# after:
+# - enabled: true
+# mtu: 1300
+# name: bond0
+# - enabled: true
+# name: bond1
+# - enabled: true
+# name: lo
+# - enabled: true
+# name: eth3
+# - enabled: true
+# name: eth2
+# - enabled: true
+# name: eth1
+# - description: Outbound Interface for this appliance
+# duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
+
+# After state:
# ------------
-#
# vyos@vyos:~$ show configuration commands | grep interfaces
# set interfaces bonding bond0 mtu '1300'
# set interfaces bonding bond1
@@ -850,15 +668,12 @@ EXAMPLES = """
# set interfaces ethernet eth2 smp-affinity 'auto'
# set interfaces ethernet eth3 hw-id '08:00:27:43:70:8c'
# set interfaces loopback lo
-#
-#
# Using gathered
-#
+
# Before state:
# -------------
-#
# vyos@192# run show configuration commands | grep interfaces
# set interfaces ethernet eth0 address 'dhcp'
# set interfaces ethernet eth0 duplex 'auto'
@@ -880,76 +695,38 @@ EXAMPLES = """
vyos.vyos.vyos_interfaces:
config:
state: gathered
-#
-#
-# -------------------------
-# Module Execution Result
-# -------------------------
-#
-# "gathered": [
-# {
-# "description": "Configured by Ansible",
-# "duplex": "auto",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth2",
-# "speed": "auto",
-# "vifs": [
-# {
-# "description": "VIF - 200",
-# "enabled": true,
-# "vlan_id": 200
-# }
-# ]
-# },
-# {
-# "description": "Configured by Ansible",
-# "duplex": "auto",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth1",
-# "speed": "auto",
-# "vifs": [
-# {
-# "description": "VIF - 200",
-# "enabled": true,
-# "vlan_id": 200
-# }
-# ]
-# },
-# {
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-#
-#
-# After state:
-# -------------
-#
-# vyos@192# run show configuration commands | grep interfaces
-# set interfaces ethernet eth0 address 'dhcp'
-# set interfaces ethernet eth0 duplex 'auto'
-# set interfaces ethernet eth0 hw-id '08:00:27:50:5e:19'
-# set interfaces ethernet eth0 smp_affinity 'auto'
-# set interfaces ethernet eth0 speed 'auto'
-# set interfaces ethernet eth1 description 'Configured by Ansible'
-# set interfaces ethernet eth1 duplex 'auto'
-# set interfaces ethernet eth1 mtu '1500'
-# set interfaces ethernet eth1 speed 'auto'
-# set interfaces ethernet eth1 vif 200 description 'VIF - 200'
-# set interfaces ethernet eth2 description 'Configured by Ansible'
-# set interfaces ethernet eth2 duplex 'auto'
-# set interfaces ethernet eth2 mtu '1500'
-# set interfaces ethernet eth2 speed 'auto'
-# set interfaces ethernet eth2 vif 200 description 'VIF - 200'
+
+# Task output
+# -----------
+# gathered:
+# - description: Configured by Ansible
+# duplex: auto
+# enabled: true
+# mtu: 1500
+# name: eth2
+# speed: auto
+# vifs:
+# - description: VIF - 200
+# enabled: true
+# vlan_id: 200
+# - description: Configured by Ansible
+# duplex: auto
+# enabled: true
+# mtu: 1500
+# name: eth1
+# speed: auto
+# vifs:
+# - description: VIF - 200
+# enabled: true
+# vlan_id: 200
+# - duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
# Using rendered
-#
-#
+
- name: Render the commands for provided configuration
vyos.vyos.vyos_interfaces:
config:
@@ -976,34 +753,29 @@ EXAMPLES = """
mtu: 600
enabled: false
state: rendered
-#
-#
-# -------------------------
-# Module Execution Result
-# -------------------------
-#
-#
-# "rendered": [
-# "set interfaces ethernet eth0 duplex 'auto'",
-# "set interfaces ethernet eth0 speed 'auto'",
-# "delete interfaces ethernet eth0 disable",
-# "set interfaces ethernet eth1 duplex 'auto'",
-# "delete interfaces ethernet eth1 disable",
-# "set interfaces ethernet eth1 speed 'auto'",
-# "set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1'",
-# "set interfaces ethernet eth1 mtu '1500'",
-# "set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100'",
-# "set interfaces ethernet eth1 vif 100 mtu '400'",
-# "set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101'",
-# "set interfaces ethernet eth2 disable",
-# "set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN DOWN)'",
-# "set interfaces ethernet eth2 mtu '600'"
-# ]
+
+# Task Output
+# -----------
+# rendered:
+# - set interfaces ethernet eth0 duplex 'auto'
+# - set interfaces ethernet eth0 speed 'auto'
+# - delete interfaces ethernet eth0 disable
+# - set interfaces ethernet eth1 duplex 'auto'
+# - delete interfaces ethernet eth1 disable
+# - set interfaces ethernet eth1 speed 'auto'
+# - set interfaces ethernet eth1 description 'Configured by Ansible - Interface 1'
+# - set interfaces ethernet eth1 mtu '1500'
+# - set interfaces ethernet eth1 vif 100 description 'Eth1 - VIF 100'
+# - set interfaces ethernet eth1 vif 100 mtu '400'
+# - set interfaces ethernet eth1 vif 101 description 'Eth1 - VIF 101'
+# - set interfaces ethernet eth2 disable
+# - set interfaces ethernet eth2 description 'Configured by Ansible - Interface 2 (ADMIN
+# DOWN)'
+# - set interfaces ethernet eth2 mtu '600'
# Using parsed
-#
-#
+
- name: Parse the configuration.
vyos.vyos.vyos_interfaces:
running_config:
@@ -1023,54 +795,36 @@ EXAMPLES = """
set interfaces ethernet eth2 speed 'auto'
set interfaces ethernet eth2 vif 200 description 'VIF - 200'"
state: parsed
-#
-#
-# -------------------------
-# Module Execution Result
-# -------------------------
-#
-#
-# "parsed": [
-# {
-# "description": "Configured by Ansible",
-# "duplex": "auto",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth2",
-# "speed": "auto",
-# "vifs": [
-# {
-# "description": "VIF - 200",
-# "enabled": true,
-# "vlan_id": 200
-# }
-# ]
-# },
-# {
-# "description": "Configured by Ansible",
-# "duplex": "auto",
-# "enabled": true,
-# "mtu": 1500,
-# "name": "eth1",
-# "speed": "auto",
-# "vifs": [
-# {
-# "description": "VIF - 200",
-# "enabled": true,
-# "vlan_id": 200
-# }
-# ]
-# },
-# {
-# "duplex": "auto",
-# "enabled": true,
-# "name": "eth0",
-# "speed": "auto"
-# }
-# ]
-
+# Task output
+# -----------
+# parsed:
+# - description: Configured by Ansible
+# duplex: auto
+# enabled: true
+# mtu: 1500
+# name: eth2
+# speed: auto
+# vifs:
+# - description: VIF - 200
+# enabled: true
+# vlan_id: 200
+# - description: Configured by Ansible
+# duplex: auto
+# enabled: true
+# mtu: 1500
+# name: eth1
+# speed: auto
+# vifs:
+# - description: VIF - 200
+# enabled: true
+# vlan_id: 200
+# - duplex: auto
+# enabled: true
+# name: eth0
+# speed: auto
"""
+
RETURN = """
before:
description: The configuration as structured data prior to module invocation.