Automated, Elastic Resource Provisioning for NoSQL clusters Using TIRAMOLA
Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019 · Agenda •Elements...
Transcript of Automated Provisioning/Orchestration for vendor agnostic ... · 12/18/2019 · Agenda •Elements...
![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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/1.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/2.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/3.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/4.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/5.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/6.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/7.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/8.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/10.jpg)
![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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/11.jpg)
![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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/12.jpg)
![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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/13.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/15.jpg)
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](https://reader036.fdocuments.net/reader036/viewer/2022071009/5fc6d6f706a3577e342c2a30/html5/thumbnails/16.jpg)
THANK YOU 🙏