v
Simplifying the Network with Ansible &
Cumulus® Linux®
Sep 3rd 2014
Introduction
Michael DeHaan CTO, Ansible Inc.
Meena Sankaran Ecosystem & Solutions
Cumulus Networks
The Ansible Project
§ Open Source IT Automation Tool § Top 5 Project on GitHub last year for numbers of contributors
(now ~840) § 7500+ stars, 2200 Forks, Millions of Downloads
Example Ansible Users
Why Ansible ?
§ Automation language approaches English
§ Order-based, well suited for both imperative and declarative operations
§ Designed from Day 1 for Multi-Tier Operation
§ Agentless: No Extra Software Install Required
§ Uses Native SSH, which you already have
Example of Playbook Language
Example of Playbook Language
Ansible, Inc.
§ Company behind Ansible § Produces Ansible-Tower, a GUI and Central Server automation solution for
Ansible, also offers support/services
ansible.com/tower Optional Central Console Logging, RBAC, Compliance
Scheduling Push Button Automation
Ansible Tower
Benefits of Ansible + Cumulus Linux
§ Cumulus exposes IT automation as native Linux § Ansible can treat Cumulus Linux powered hardware as just another computer § Config files are extremely simple to template and deploy § A single point of management for both compute and networking infrastructures § Powerful support for role-based and team-based access to management
Unifying The Automation Stack
§ Cloud/Virt Provisioning (ex: OpenStack) § Base OS configuration § Application Deployment § Application Lifecycle § Network Device Configuration
Best of Networking and Linux come together
What is Cumulus® Linux®?
§ IPv4/IPv6 routing and bridging at line rate
§ Network Operating System and App Ecosystem
§ Cumulus® Linux® is Linux®
A multi-platform operating system for networking hardware that makes building, managing and automating massive-capacity next-generation datacenter networks simple.
®
Cumulus® Linux®
Open Networking Hardware
Empowered Natively by Linux Tools
v No vendor lock-in
NW Automation Routing Monitoring Other NW Virtualization Orchestration
Choice of Apps - Rich Open Ecosystem
The Modern Datacenter with Cumulus® Linux® and Ansible
Problems trying to be solved: § Rapid network provisioning § Automation of Routine Tasks § Next-Gen Ideas to make Networks Smarter Lets talk some scenarios where this makes sense for switches……
Host running Ansible (could be a Cumulus Linux on a Bare Metal Switch, or VM, etc)
OOBM
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 1: Rapid Network Provisioning
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 1: Rapid Network Provisioning
eBGP tcp multipath
AS65001
AS65002
AS65003
AS65004
AS65005
AS65006
AS65007
AS65008 AS65009 AS65010 AS65011
Ansible Snapshot -1
PLAY RECAP ***************************************************************host0 : ok=6 changed=5 unreachable=0 failed=0 leaf0 : ok=10 changed=9 unreachable=0 failed=0 leaf1 : ok=10 changed=9 unreachable=0 failed=0 leaf2 : ok=10 changed=9 unreachable=0 failed=0 leaf3 : ok=10 changed=9 unreachable=0 failed=0 tier1spine0 : ok=10 changed=9 unreachable=0 failed=0 tier1spine1 : ok=10 changed=9 unreachable=0 failed=0 tier1spine2 : ok=10 changed=9 unreachable=0 failed=0 tier1spine3 : ok=10 changed=9 unreachable=0 failed=0 tier2spine0 : ok=10 changed=9 unreachable=0 failed=0 tier2spine1 : ok=10 changed=9 unreachable=0 failed=0 tier2spine2 : ok=10 changed=9 unreachable=0 failed=0 tier2spine3 : ok=10 changed=9 unreachable=0 failed=0
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 2: Hot Swapping The Whole Switch
PLAY RECAP ******************************************************************** host0 : ok=4 changed=0 unreachable=0 failed=0 leaf0 : ok=7 changed=0 unreachable=0 failed=0 leaf1 : ok=7 changed=0 unreachable=0 failed=0 leaf2 : ok=7 changed=0 unreachable=0 failed=0 leaf3 : ok=7 changed=0 unreachable=0 failed=0 tier1spine0 : ok=7 changed=0 unreachable=0 failed=0 tier1spine1 : ok=10 changed=9 unreachable=0 failed=0 tier1spine2 : ok=7 changed=0 unreachable=0 failed=0 tier1spine3 : ok=7 changed=0 unreachable=0 failed=0 tier2spine0 : ok=7 changed=0 unreachable=0 failed=0 tier2spine1 : ok=7 changed=0 unreachable=0 failed=0 tier2spine2 : ok=7 changed=0 unreachable=0 failed=0 tier2spine3 : ok=7 changed=0 unreachable=0 failed=0
Ansible Snapshot - 2
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 3: Configuration Management
Ansible Snapshot - 3
TASK: [demo| configure /etc/network/interfaces] ************************ ok: [tier1spine0] ok: [tier1spine2] ok: [tier2spine0] ok: [tier1spine3] changed: [tier1spine1] ok: [tier2spine1] ok: [tier2spine3] ok: [tier2spine2]
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 4: Gracefully Change the Network
Leaf3 Leaf7y
Spine2
Scenario 4: Gracefully Change the Network
The Ansible Playbook: • configure Spine2 with higher metric (OSPF cost or
prepend AS for BGP) to make it less desirable • check routes on Leaf3 to make sure Spine2 is no
longer being used
• Update network admin to let him know Spine2 is ready for decommissioning
The Modern Datacenter with Cumulus® Linux® and Ansible
OOBM
Scenario 4: Gracefully Change the Network
Leaf3 Leaf7
Spine2 (B)
Next Steps
§ Resources available at http://cumulusnetworks.com/solutions/networking-automation/
§ Cumulus Workbench § GitHub – Sample Configuration § Demo Videos § Blog Posts § Knowledge Base Articles § User-Guides
§ Customer Support available through the sales field teams at Ansible and Cumulus Networks
Demo Topology – 2 Leaf , 2 Spine
© 2014 Cumulus Networks. Cumulus Networks, the Cumulus Networks Logo, and Cumulus Linux are trademarks or registered trademarks of Cumulus Networks, Inc. or its affiliates in the U.S. and other countries. Other names may be trademarks of their respective owners. The registered trademark Linux® is used pursuant to a sublicense from LMI, the exclusive licensee of Linus Torvalds, owner of the mark on a world-wide basis.
§ Thank You!
Bringing the Linux Revolution to Networking