The Ansible Ciena Waveserver 5 collection includes a variety of Ansible content to help automate the management of Ciena Waveserver 5 network appliances.
This collection has been tested against following Ansible versions: >=2.16.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.
The Ciena Waveserver5 collection supports netconf connections.
| Name | Description |
|---|---|
| ciena.waveserver5.waveserver5 | Use ciena netconf plugin to run netconf commands on Ciena Waveserver5 platform |
| Name | Description |
|---|---|
| ciena.waveserver5.waveserver5_aaa | Waveserver AAA configuration data and operational data. |
| ciena.waveserver5.waveserver5_facts | Get facts about waveserver5 devices. |
| ciena.waveserver5.waveserver5_inventory | Gather chassis and component inventory from Waveserver 5. |
| ciena.waveserver5.waveserver5_pm | Waveserver System configuration data and operational data. |
| ciena.waveserver5.waveserver5_ports | Waveserver Port configuration data and operational data. |
| ciena.waveserver5.waveserver5_ptps | Waveserver PTP configuration data and operational data. |
| ciena.waveserver5.waveserver5_system | Waveserver System configuration data and operational data. |
| ciena.waveserver5.waveserver5_xcvrs | Waveserver Transceiver configuration data and operational data. |
Install the Ciena Waveserver 5 collection with the Ansible Galaxy CLI:
ansible-galaxy collection install ciena.waveserver5You 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: ciena.waveserver5The collection communicates with Waveserver 5 over NETCONF; it does not execute device CLI commands. Resource reads use NETCONF get operations, and configuration changes use edit-config against the running configuration.
Install the collection and its declared ansible.netcommon dependency:
ansible-galaxy collection install ciena.waveserver5Configure the device in inventory. Keep credentials in Ansible Vault instead of clear text:
all:
hosts:
waveserver5:
ansible_host: 192.0.2.10
ansible_port: 830
ansible_user: automation
ansible_password: "{{ vault_waveserver5_password }}"
ansible_connection: ansible.netcommon.netconf
ansible_network_os: ciena.waveserver5.waveserver5The collection is tested with Ansible 2.12 or newer. The controller also needs the ncclient Python package required by the NETCONF modules.
The table summarizes the resource models implemented by this collection. Each module reference documents its full nested schema, field types, accepted values, examples, and return data.
| FQCN | Supported model/data | Module reference |
|---|---|---|
ciena.waveserver5.waveserver5_facts |
Base device facts and selectable legacy and network-resource subsets. | Facts |
ciena.waveserver5.waveserver5_inventory |
Read-only chassis and installed-component inventory from OpenConfig platform components. | Inventory |
ciena.waveserver5.waveserver5_aaa |
Authentication methods and users; TACACS+, RADIUS, and RADSec configuration and servers. | AAA |
ciena.waveserver5.waveserver5_pm |
Global performance-monitoring configuration, PM instances, and threshold-crossing alert settings. | PM |
ciena.waveserver5.waveserver5_ports |
Port identity and state, Ethernet/OTN properties, connection peers, and channels. | Ports |
ciena.waveserver5.waveserver5_ptps |
PTP identity and state; type, transceiver, FEC, thresholds, and transmitter properties. | PTPs |
ciena.waveserver5.waveserver5_system |
Device/network/site/member identity, hostname, time, management services, and system settings. | System |
ciena.waveserver5.waveserver5_xcvrs |
Transceiver identity and state, operating mode, and supported transceiver properties. | XCVRs |
The facts module accepts gather_network_resources values aaa, inventory, pm, ports, ptps, system, and xcvrs; all gathers every supported resource subset. Base facts include model, serial number, software version, platform, and hostname. gather_subset controls the legacy default and config subsets. For a direct inventory read, use ciena.waveserver5.waveserver5_inventory with state: gathered; the facts subset remains available when collecting inventory together with other network facts.
This is the collection's supported model coverage, not an exhaustive implementation of every Waveserver 5 YANG model or RPC. In particular, inventory returns the platform component data exposed by the device.
Gather chassis inventory and ports with the facts module:
- name: Gather chassis inventory and ports
ciena.waveserver5.waveserver5_facts:
gather_network_resources:
- inventory
- ports
register: waveserver_data
- name: Display chassis components
ansible.builtin.debug:
var: waveserver_data.ansible_facts.ansible_network_resources.inventory
- name: Display ports
ansible.builtin.debug:
var: waveserver_data.ansible_facts.ansible_network_resources.portsFor a system-specific read, use the module with state: gathered. This is the collection equivalent of system show:
- name: Show current system data
ciena.waveserver5.waveserver5_system:
state: gathered
register: system_data
- ansible.builtin.debug:
var: system_data.gatheredThe system resource includes the fields defined by the system model. Other resource modules use the same gathered pattern to return current data for their respective models.
The complete read-only example is available at examples/show_waveserver5.yml. Run it with an inventory containing a waveservers group and the NETCONF connection variables shown above:
ansible-playbook -i inventory.yml examples/show_waveserver5.ymlUse config to provide fields from the module's model and state: merged to apply the supplied values while leaving unrelated settings unchanged. For example:
- name: Disable a port
ciena.waveserver5.waveserver5_ports:
config:
- port_id: 5-1
state:
admin_state: disabled
state: mergedSystem configuration is nested under the module's config model:
- name: Set the device hostname
ciena.waveserver5.waveserver5_system:
config:
host_name:
config_host_name: waveserver-a
state: mergedReview each module reference for other advertised states and the exact impact of applying them before changing a device.
We welcome community contributions to this collection. If you find problems, please open an issue or create a PR against the Ciena SAOS 10 collection repository.
Release is done automatically using Github Actions as part of merging to master.
The modules in this project were built using the resource module builder hosted by Ciena.
See LICENSE to see the full text.