automated provisioning/orchestration for vendor agnostic ... · 12/18/2019  · agenda •elements...

16
Automated Provisioning/Orchestration for vendor agnostic networks Kapil Agrawal, Network Engineer

Upload: others

Post on 20-Aug-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Automated Provisioning/Orchestration for vendor agnostic networks Kapil Agrawal, Network Engineer

Page 2: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Agenda • Elements of provisioning devices on a network

• Manual vs Automated

• Orchestrating a provisioning workflow with Ansible• Current workflow at NCSA

• Quick Demo

• Vendor neutral ZTP• progress, challenges and possible solutions

• Questions

Page 3: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Manual provisioning process• Baseline config

• per device platform • per device role (L2/L3 or both etc.)

• Add device(s) to various network management systems• Inventory• IPAM• Config backup tool (Rancid/Oxidized etc.)• Monitoring systems etc.

• Perform a software upgrade (optional)• Standard/blessed code version

Page 4: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Auto Provisioning Elements1. Define network infrastructure as code

- YAML based network data modeling- Base config in YAML (key : value pairs)

2. Templating- Jinja2 based config templates- per platform (Juniper, Arista etc..)

3. Automation tool (Ansible)- Playbook- gather facts- conditionals- tasks

Page 5: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

YAML based data modeling • Identify and define common config bits

• User accounts • Loopback filters• Prefix lists• ACL’s• SNMP, Radius, Syslog, NTP etc..

• YAML defines everything in KEY : VALUE pairs

• Common across ALL your devices on the network!• Independent of the Platform/Vendor

Page 6: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Sample YAML’ized base config

Page 7: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Jinja2 templating • Contains variables and other text

• Common config elements and some CLI based syntax

• Variables are replaced by the values • Values assigned from the YAML file.

• Values are passed when the template is rendered

• Jinja2 resembles Python!

Page 8: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Sample Jinja2 template

Page 9: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

WORKFLOW

Page 10: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning
Page 11: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning
Page 12: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning
Page 13: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Vendor neutral Zero Touch Provisioning (ZTP)• Bootstrapping config is still very much manual right now!

• Add a mgmt. IP address to the device• Enable SSH service• Add a route to talk to Ansible• Add root-auth password (Juniper)

• Challenges with bootstrapping over DHCP• Different vendors use different DHCP options!

• No common ground!

• Alternative methods : • Aeon-ZTPS by Apstra (No support for Juniper!)• Pyserial – Limited success with limited testing

• Screen scraping over console (Ew!)

• Any other known/proposed solution?

Page 14: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

Resources/contact

https://github.com/netops2devops/auto-provisioning-techx2019

kagraw [at] ncsa.illinois.edu

https://www.linkedin.com/in/k4pil/

@netops2devops

Page 15: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

QUESTIONS ?

Page 16: Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019  · Agenda •Elements of provisioning devices on a network •Manual vs Automated •Orchestrating a provisioning

THANK YOU 🙏