| marp | true |
|---|---|
| theme | default |
| author | Petr Ankudinov |
| size | 58140 |
| paginate | true |
| math | mathjax |
| style | :root { background: linear-gradient(to left, #abbaab, #ffffff); } img[alt~="custom"] { float: right; } .columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; } footer { font-size: 14px; } section::after { font-size: 14px; } img { background-color: transparent; } pre { background: linear-gradient(to top, #abbaab, #ffffff); background-color: transparent; } |
Provisioning Workflow Demo
Petr Ankudinov
Sep 2023
<style scoped>section {font-size: 18px;}</style>
-
Petr Ankudinov github.com/ankudinov
- Advanced Services Engineer at Arista Networks
- Over 20 years of experience in IT with a bit of everything
- ACE: L5, CCIE 37521
- Passionate DC and network automation engineer
- Daily (and nightly) VSCode user
<style scoped>section {font-size: 22px;}</style>
- Ansible AVD collection overview
- The demo
- Credits and references
<style scoped>section {font-size: 20px;}</style>
- AVD stands for Arista Validated Design as it was based on the EVPN Deployment Guide
- A very successful community project used to deploy EVPN based Data Center fabrics
- Over 200 stars on Github and 79 contributors as of Sep 2023
- The most active Arista collection on Ansible Galaxy
- High level workflow:
- Define abstracted group/host vars using AVD data model
- Generate low level device specific variables (aka structured configs)
- Parse templates, build plain text configs
- Deliver configs to network devices using Ansible
arista.eos.eos_config
<style scoped>section {font-size: 22px;}</style>
- CVaaS is cloud based
- Customers are assigned to a region with disaster recovery plan relying on availability zones (AZ)
- CVaaS backups are multi-region
- CVaaS is maintained by a dedicated Cloud SRE team and is always up to date
- Users authenticate to CVaaS via OAuth/SAML providers: Google, Okta, OneLogin, Microsoft Azure AD and custom SAML/OAuth providers
- The API access for AVD orchestration, etc. is authenticated using service account tokens
- The only traffic required is HTTPS initiated by switch to CVaaS with cert based authentication and HTTPS from AVD host to CVaaS with token based authentication
- References:
<style scoped>section {font-size: 20px;}</style>
- Start container as Github Codespace (or on any host with dev container supporting tool)
- Start a simple leaf-spine topology in Containerlab
- Build EVPN configuration with
arista.avdAnsible collection - Wait until the lab switches will start streaming using a pre-defined token
- Deploy configuration to CVP using
arista.avdAnsible collection and pre-defined API token - Create change control, review and execute the change
<style scoped>section {font-size: 12px;}</style>
This repository is based on many awesome open source repositories and some free/commercial Github features:
| Tool | Purpose |
|---|---|
| VS Code | create this repository code |
| DevContainers | our topic for today |
| Marpit | Markdown slide deck framework |
| Github Actions | build slides and containers |
| Github Pages | publish slides |
| Github Packages | publish containers |
| Github Codespaces | run the demo container |
| Carbon | code snippets |
| Pexels and Unsplash | Excellent free stock photos resources. It's not possible to reference every author individually, but their work is highly appreciated. |
| excalidraw, drawio, tldraw | VSCode plugins to create drawings |
| Containerlab | Orchestration tool for container based networking labs |
| Arista AVD Ansible Collection | Ansible collection used to build EVPN network |
| Ansible | Automation for everyone. |
<style scoped>section {font-size: 45px;}</style>





