Skip to content
/ vyos.vyos Public

Ansible Network Collection for VyOS

License

Notifications You must be signed in to change notification settings

vyos/vyos.vyos

Repository files navigation

VyOS Collection

Codecov CI

The Ansible VyOS collection includes a variety of Ansible content to help automate the management of VyOS network appliances.

This collection has been tested against VyOS 1.1.8 (helium).

Communication

For more information about communication, see the Ansible communication guide.

Ansible version compatibility

This collection has been tested against following Ansible versions: >=2.15.0.

For collections that support Ansible 2.9, please ensure you update your network_os to use the fully qualified collection name (for example, cisco.ios.ios). Plugins and modules within a collection may be tested with only specific Ansible versions. A collection may contain metadata that identifies these versions. PEP440 is the schema used to describe the versions of Ansible.

Supported connections

The VyOS collection supports network_cli connections.

Included content

Cliconf plugins

Name Description
vyos.vyos.vyos Use vyos cliconf to run command on VyOS platform

Modules

Name Description
vyos.vyos.vyos_banner Manage multiline banners on VyOS devices
vyos.vyos.vyos_bgp_address_family BGP Address Family resource module
vyos.vyos.vyos_bgp_global BGP global resource module
vyos.vyos.vyos_command Run one or more commands on VyOS devices
vyos.vyos.vyos_config Manage VyOS configuration on remote device
vyos.vyos.vyos_facts Get facts about vyos devices.
vyos.vyos.vyos_firewall_global Firewall global resource module
vyos.vyos.vyos_firewall_interfaces Firewall interfaces resource module
vyos.vyos.vyos_firewall_rules Firewall rules resource module
vyos.vyos.vyos_hostname Manages hostname resource module
vyos.vyos.vyos_interfaces Manages interface attributes of VyOS network devices.
vyos.vyos.vyos_l3_interfaces Layer 3 interfaces resource module.
vyos.vyos.vyos_lag_interfaces LAG interfaces resource module
vyos.vyos.vyos_lldp_global LLDP global resource module
vyos.vyos.vyos_lldp_interfaces LLDP interfaces resource module
vyos.vyos.vyos_logging Manage logging on network devices
vyos.vyos.vyos_logging_global Logging resource module
vyos.vyos.vyos_ntp_global NTP global resource module
vyos.vyos.vyos_ospf_interfaces OSPF Interfaces Resource Module.
vyos.vyos.vyos_ospfv2 OSPFv2 resource module
vyos.vyos.vyos_ospfv3 OSPFv3 resource module
vyos.vyos.vyos_ping Tests reachability using ping from VyOS network devices
vyos.vyos.vyos_prefix_lists Prefix-Lists resource module for VyOS
vyos.vyos.vyos_route_maps Route Map resource module
vyos.vyos.vyos_snmp_server Manages snmp_server resource module
vyos.vyos.vyos_static_routes Static routes resource module
vyos.vyos.vyos_system Run set system commands on VyOS devices
vyos.vyos.vyos_user Manage the collection of local users on VyOS device
vyos.vyos.vyos_vlan Manage VLANs on VyOS network devices

Click the Content button to see the list of content included in this collection.

Installing this collection

You can install the VyOS collection with the Ansible Galaxy CLI:

ansible-galaxy collection install vyos.vyos

You can also include it in a requirements.yml file and install it with ansible-galaxy collection install -r requirements.yml, using the format:

---
collections:
  - name: vyos.vyos

Using this collection

This collection includes network resource modules.

Using modules from the VyOS collection in your playbooks

You can call modules by their Fully Qualified Collection Namespace (FQCN), such as vyos.vyos.vyos_static_routes. The following example task replaces configuration changes in the existing configuration on a VyOS network device, using the FQCN:

---
  - name: Replace device configurations of listed static routes with provided
      configurations
    register: result
    vyos.vyos.vyos_static_routes: &id001
      config:

        - address_families:

            - afi: ipv4
              routes:

                - dest: 192.0.2.32/28
                  blackhole_config:
                    distance: 2
                  next_hops:

                    - forward_router_address: 192.0.2.7

                    - forward_router_address: 192.0.2.8

                    - forward_router_address: 192.0.2.9
      state: replaced

NOTE: For Ansible 2.9, you may not see deprecation warnings when you run your playbooks with this collection. Use this documentation to track when a module is deprecated.

See Also:

Contributing to this collection

We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the VyOS collection repository. See Contributing to Ansible-maintained collections for complete details.

You can also join us on:

See the Ansible Community Guide for details on contributing to Ansible.

Code of Conduct

This collection follows the Ansible project's Code of Conduct. Please read and familiarize yourself with this document.

Updating from resource module models

Some of our modules were templated using resource_module_builder, but some use the newer cli_rm_builder which tempaltes baed on in-place device information, but also uses a new network parsing engine designed to simplify and standardize the parsing of network configuration.

Using older resource_module_builder modules

Last build was with a slightly-modified version of resource_module_builder. This changes the calling parameters for the resources.

To update the collection from the resource module models, run the following command:

ansible-playbook -e rm_dest=`pwd` \
                 -e structure=collection \
                 -e collection_org=vyos \
                 -e collection_name=vyos \
                 -e model=../../../resource_module_models/models/vyos/firewall_rules/vyos_firewall_rules.yaml \
                 ../../../resource_module_builder/site.yml

Using cli_rm_builder modules

The newer cli_rm_builder works similarly to the older resource_module_builder, but pulls the information directly from the DOCUMENTATION, EXAMPLES and RETURN blocks in the module itself.

To update the collection from the cli_rm_builder models, run the following command:

ansible-playbook -e rm_dest=`pwd` \
                     -e collection_org=vyos \
                     -e collection_name=vyos \
                     -e resource=bgp_address_family \
                     ../../../cli_rm_builder/run.yml

Unlike the resource_module_builder, the cli_rm_builder does not require the model parameter. Instead, it uses the resource parameter to specify the resource to build.

Testing playbooks

You can use ANSIBLE_COLLECTIONS_PATH to test the collection locally. For example:

ANSIBLE_COLLECTIONS_PATHS=~/my_dev_path ansible-playbook -i inventory.network test.yml

Changelogs

Release notes

Release notes are available here.

Roadmap

More information

Licensing

GNU General Public License v3.0 or later.

See LICENSE to see the full text.