The Open NX-OS architecture allows users to expand base functionality on the Cisco Nexus switching platforms through the installation of compatible packages. Third-party applications or tools may address:
- Configuration Management
- Network Telemetry and Analytics
- Network Monitoring
- Custom Network Requirements
Cisco Open NX-OS supports intent-based automation through integration of agent software for Puppet and Chef. Automation of various network provisioning, configuration, and management tasks from a central server will enable a dramatic reduction in network deployment and configuration times, while eliminating manual tasks that are repetitive and error-prone.
Scalable Network Management with Configuration Management Tools
The provisioning of network constructs like VLANs, ports, network routes, quality of service (QoS) parameters, and access control can be optimized with automation tool integration. Lifecycle management operations such as firmware and configuration management, compliance auditing, and performance monitoring are made substantially easier.
Puppet and Chef Agents
Using Standard Tools like YUM to Install Puppet and Chef Agents
The graphic depicts the workflow for the Puppet/Chef agent support.
- The Puppet agent is installed via yum as an RPM.
- Configure agent to talk to proper server / master.
- User installs Chef cookbook / Puppet manifest as an example along with Cisco utility libraries on the server/master.
- User creates a recipe or defines a manifest using the resources available in the cookbook/module.
- Switch agent stays in sync with Puppet/Chef master for updated catalog/cookbooks.
- If agent is configured to run periodically, it will obtain and download the cookbook/catalog and attempt to remediate the network element/switch to the desired state.
- The Puppet/Chef agent utilizes NX-API to apply changes as defined by the Puppet/Chef master server to the switch.
Types and Providers for Puppet and Chef Supported Out-of-the-Box with Open NX-OS
The graphic list samples supported agents / provider capabilities. The list can be extended, leveraging the puppet workflow via the utility classes. The user can develop extensions to Cisco Puppet modules on GitHub. The agent is also extensible by passing CLI commands.
cisco_command_config resource:
cisco_command_config { " feature-portchannel1":
command => " interface port channel1\n
description nwk1-0106-ic4-gw1|Po2407\n
no switchport\n
ip address 10.1.1.51/31\n }
Sample Puppet Manifest
The Puppet manifest for interface configuration sets Ethernet 1/1 with an IP address of 10.1.43.43/24.
cisco_interface { "ethernet1/1" :
shutdown => false,
description => 'managed by puppet',
switchport_mode => disabled,
ipv4_address => '10.1.43.43',
ipv4_netmask_length => 24,
}
Sample Puppet manifest for the installation of tcollector
Ansible
Ansible is an automation tool for cloud provisioning, configuration management and application deployment. It is agent-less, and uses the YAML markup language in the form of Ansible Playbooks.
Ansible Configuration Management Workflow
Here is a sample Ansible playbook that creates a static route on a NX-OS device. Within this sample a static route for 10.10.1.0/24 is created with a next hop of 10.20.2.2.
Sample Ansible Playbook
#
Static route with tag and preference set
- nxos_static_routes: prefix=10.10.1.0/24 next_hop=10.20.2.2 tag=90 pref=80 host={{ inventory_hostname }}
- Open NX-OS supports a range of configuration management tools like Puppet, Chef, and Ansible and is extensible to support Salt, CFEngine, and others.