From 409621196ceb100a0808a1f68365552482231240 Mon Sep 17 00:00:00 2001 From: Sagar Paul Date: Wed, 29 Mar 2023 01:35:12 +0530 Subject: vyos_interfaces docs updated (#303) * vyos docs interfaces * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Kate Case --- changelogs/config.yaml | 2 + changelogs/fragments/update_intf_doc.yaml | 3 + docs/vyos.vyos.vyos_interfaces_module.rst | 994 +++++++++++------------------ plugins/modules/vyos_interfaces.py | 996 +++++++++++------------------- 4 files changed, 754 insertions(+), 1241 deletions(-) create mode 100644 changelogs/fragments/update_intf_doc.yaml 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. -- cgit v1.2.3