Skip to content
This repository has been archived by the owner on Nov 7, 2024. It is now read-only.

Commit

Permalink
Modify Original AVD Guide - Add L3LS CI AVD Guide (#157)
Browse files Browse the repository at this point in the history
* rename l2ls guide - add l3ls guide

* update l2ls links

* fix dead links

* fix spelling errors

* fix spelling errors from pre-commit

* add l2ls cd step

* update readme to fix dead links

* update day2 ops multi-site l2ls to l3ls

* update mkdocs.yml to remove extension mdx_truly_sane_lists breaking multiple things

* update  readme

* update  index indenting

* update verification formatting

* update verification formatting

* fix broken links to configs

* updating markdowncli and pre-commit fixes

* updating spacing to correctly render uolists

---------

Co-authored-by: JulioPDX <[email protected]>
  • Loading branch information
RestlessWanderer and JulioPDX authored Aug 22, 2024
1 parent fd13a8f commit e67ceaa
Show file tree
Hide file tree
Showing 16 changed files with 2,573 additions and 65 deletions.
2 changes: 1 addition & 1 deletion .github/.markdownlint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ MD004:
# unordered list indentation (2-spaces)
# keep it tight yo!
MD007:
indent: 2
indent: 4

# line length
MD013:
Expand Down
6 changes: 6 additions & 0 deletions .github/styles/Vocab/Workshop/accept.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ devcontainer
Dockerfile
eos
github
global_dc_vars
group_vars
host_vars
hostname\w*\b
Expand All @@ -28,9 +29,11 @@ makefile
mkdocs
mlag
mlagpeer
Multicast
netcommon
node_group\w*
node_type_key\w*
peerings
port_profile\w*
(?i)reachability
repo
Expand All @@ -41,8 +44,11 @@ syslog
toolchain
uncomment
untracked
Unicast
vlan
VRF\w*\b
VNIs
VTEPs
yaml
yml
Yu
Expand Down
2 changes: 1 addition & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ repos:
- id: requirements-txt-fixer

- repo: https://github.com/igorshubovych/markdownlint-cli
rev: v0.37.0
rev: v0.41.0
hooks:
- id: markdownlint
name: Check for Linting errors on MarkDown files
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@
The Arista CI Workshops are intended for engineers looking to learn the fundamentals of automation tools and get hands-on experience deploying network-wide configurations with Arista Validated Designs (AVD). The workshops are split into two in-person sessions allowing time to grasp the basic automation concepts before moving into building Data Models to deploy AVD. The content on this site is an overview of the concepts we will cover in person with full details and examples.

- **Workshop #1** - Automation Fundamentals 101
- **Workshop #2** - Arista CI - AVD
- **Workshop #3** - Arista CI - AVD with CI/CD
- **Workshop #2 (L2LS)** - Arista CI / AVD - L2LS
- **Workshop #2 (L3LS)** - Arista CI / AVD - L3LS EVPN/VXLAN
- **Workshop #3** - Arista CI / AVD with CI/CD

## Fundamentals

Expand All @@ -17,7 +18,8 @@ The Arista CI Workshops are intended for engineers looking to learn the fundamen

## Arista CI

- [AVD](workshops/avd.md)
- [AVD - L2LS](workshops/l2ls/overview.md)
- [AVD - L3LS with EVPN/VXLAN](workshops/l3ls/overview.md)
- [CI/CD Basics](workshops/cicd-basics.md)

## Contributing
Expand Down
11 changes: 7 additions & 4 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,12 @@ nav:
- Jinja/YAML: jinja-yaml.md
- Ansible: ansible.md
- Arista CI:
- AVD:
- Overview: avd.md
- Lab Guide: avd-lab-guide.md
- AVD L2LS:
- Overview: l2ls/overview.md
- Lab Guide: l2ls/l2ls-lab-guide.md
- AVD L3LS EVPN/VXLAN:
- Overview: l3ls/overview.md
- Lab Guide: l3ls/l3ls-lab-guide.md
- CI/CD Basics: cicd-basics.md

copyright: Copyright &copy; 2023 Arista Networks
Expand Down Expand Up @@ -43,7 +46,7 @@ markdown_extensions:
- def_list
- footnotes
- md_in_html
- mdx_truly_sane_lists
# - mdx_truly_sane_lists
- pymdownx.arithmatex
- pymdownx.caret
- pymdownx.critic
Expand Down
Binary file added workshops/assets/images/l3ls_ansible_groups.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added workshops/assets/images/l3ls_dci.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added workshops/assets/images/l3ls_dualdc_topo.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added workshops/assets/images/l3ls_topo_overview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion workshops/cicd-basics.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# CI/CD

This section walks you through an example CI/CD pipeline leveraging GitHub Actions, Arista Validated Designs (AVD), and the Arista CloudVision Platform (CVP). In addition, the lab leverages the Arista Test Drive (ATD) solution to give you a pre-built environment to get started quickly. This section assumes readers have completed the [AVD workshop](avd-lab-guide.md) within their ATD environment.
This section walks you through an example CI/CD pipeline leveraging GitHub Actions, Arista Validated Designs (AVD), and the Arista CloudVision Platform (CVP). In addition, the lab leverages the Arista Test Drive (ATD) solution to give you a pre-built environment to get started quickly. This section assumes readers have completed the [AVD L2LS workshop](l2ls/l2ls-lab-guide.md) within their ATD environment.

Readers should be familiar with the following concepts.

Expand Down
14 changes: 9 additions & 5 deletions workshops/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,9 @@ The Arista CI Workshops are intended for engineers looking to learn the fundamen
The workshops are meant to be leveraged within an Arista Test Drive (ATD) lab. You may follow along using a personal environment; additional setup may apply.

- **Workshop #1** - Automation Fundamentals 101
- **Workshop #2** - Arista CI - AVD
- **Workshop #3** - Arista CI - AVD with CI/CD
- **Workshop #2 (L2LS)** - Arista CI / AVD - L2LS
- **Workshop #2 (L3LS)** - Arista CI / AVD - L3LS EVPN/VXLAN
- **Workshop #3** - Arista CI / AVD with CI/CD

## Fundamentals

Expand All @@ -21,7 +22,10 @@ The Arista CI Workshops are intended for engineers looking to learn the fundamen

## Arista CI

- AVD
- [Overview](avd.md)
- [Lab Guide](avd-lab-guide.md)
- AVD L2LS
- [Overview](l2ls/overview.md)
- [Lab Guide](l2ls/l2ls-lab-guide.md)
- AVD L3LS EVPN/VXLAN
- [Overview](l3ls/overview.md)
- [Lab Guide](l3ls/l3ls-lab-guide.md)
- [CI/CD Basics](cicd-basics.md)
30 changes: 19 additions & 11 deletions workshops/avd-lab-guide.md → workshops/l2ls/l2ls-lab-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## AVD Lab Guide Overview

The AVD Lab Guide is a follow-along set of instructions to deploy a dual data center L2LS fabric design. The data model overview and details can be found [here](avd.md). In the following steps, we will explore updating the data models to add services, ports, and WAN links to our fabrics and test traffic between sites.
The AVD Lab Guide is a follow-along set of instructions to deploy a dual data center L2LS fabric design. The data model overview and details can be found [here](overview.md). In the following steps, we will explore updating the data models to add services, ports, and WAN links to our fabrics and test traffic between sites.

In this example, the ATD lab is used to create the L2LS Dual Data Center topology below. The IP Network cloud (orange area) is pre-provisioned and is comprised of the border and core nodes in the ATD topology. Our focus will be creating the L2LS AVD data models to build and deploy configurations for Site 1 and Site 2 (blue areas) and connect them to the IP Network.

![Dual DC Topology](assets/images/topologies.svg)
![Dual DC Topology](../assets/images/topologies.svg)

### Host Addresses

Expand Down Expand Up @@ -67,6 +67,14 @@ ansible-galaxy collection install -r requirements.yml

You must run these commands when you start your lab or a new shell (terminal).

### Change To Lab Working Directory

Now that AVD is updated, lets move into the appropriate directory so we can access the files necessary for this L3LS Lab!

```bash
cd labs/L2LS
```

### Setup Lab Password Environment Variable

Each lab comes with a unique password. We set an environment variable called `LABPASSPHRASE` with the following command. The variable is later used to generate local user passwords and connect to our switches to push configs.
Expand Down Expand Up @@ -129,7 +137,7 @@ make build-site-1

AVD creates a separate markdown and EOS configuration file per switch. In addition, you can review the files in the `documentation` and `intended` folders per site.

![Docs and Configs](assets/images/docs-configs.png){: style="width:300px"}
![Docs and Configs](../assets/images/docs-configs.png){: style="width:300px"}

Now, deploy the configurations to Site 1 switches.

Expand Down Expand Up @@ -282,7 +290,7 @@ The WAN IP Network is defined by the `core_interfaces` data model. Full data mod

The data model defines P2P links (`/31s`) on the spines with a stanza per link. See details in the graphic below. Each spine has two links to the WAN IP Network configured on ports `Ethernet7` and `Ethernet8`. OSPF is added to these links as well.

![Core Interfaces](assets/images/avd-core-interfaces.svg)
![Core Interfaces](../assets/images/avd-core-interfaces.svg)

### **Add P2P Links to WAN IP Network for Site 1 and 2**

Expand Down Expand Up @@ -419,27 +427,27 @@ git push
If this is our first time pushing to our forked repository, then VS Code will provide us with the following
sign-in prompt:

![VS Code GitHub Sign in Prompt](assets/images/git_login_request.png){: style="width:400px"}
![VS Code GitHub Sign in Prompt](../assets/images/git_login_request.png){: style="width:400px"}

Choose **Allow**, and another prompt will come up, showing your unique login code:

![VS Code GitHub Login Code Prompt](assets/images/git_login_code.png){: style="width:400px"}
![VS Code GitHub Login Code Prompt](../assets/images/git_login_code.png){: style="width:400px"}

Choose **Copy & Continue to GitHub**, and *another* prompt will come up asking if it's ok to open an external website (GitHub).

![VS Code External Site Prompt](assets/images/git_login_external_site.png){: style="width:400px"}
![VS Code External Site Prompt](../assets/images/git_login_external_site.png){: style="width:400px"}

Choose **Open** and then an external site (GitHub) will open, asking for your login code.

![GitHub Login Code Entry](assets/images/git_login_code_entry.png){: style="width:400px"}
![GitHub Login Code Entry](../assets/images/git_login_code_entry.png){: style="width:400px"}

Paste in your login code and choose **Continue**. You will then be prompted to Authorize VS Code.

![GitHub Authorize VS Code](assets/images/git_login_authorize_vscode.png){: style="width:400px"}
![GitHub Authorize VS Code](../assets/images/git_login_authorize_vscode.png){: style="width:400px"}

Choose **Authorize Visual-Studio-Code**, and you should be presented with the coveted Green Check Mark!

![VS Code Git Login Complete](assets/images/git_login_complete.png){: style="width:400px"}
![VS Code Git Login Complete](../assets/images/git_login_complete.png){: style="width:400px"}

Whew! Alright. Now that we have that complete, let's keep moving...

Expand Down Expand Up @@ -548,7 +556,7 @@ On our forked repository, let's create the Pull Request.
When creating the PR, ensure that the `base repository` is the **main** branch of **your fork**. This can
be selected via the dropdown as shown below:

![PR Base Repository Selection](assets/images/pr_open_request.png){: style="width:800px"}
![PR Base Repository Selection](../assets/images/pr_open_request.png){: style="width:800px"}

Take a minute to review the contents of the PR. Assuming all looks good, let's earn the **YOLO** GitHub badge
by approving and merging your PR!
Expand Down
29 changes: 4 additions & 25 deletions workshops/avd.md → workshops/l2ls/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,32 +18,11 @@ Attendees will need the following:
- An account on [GitHub](https://github.com/)
- Familiarity with the concepts and tools covered in the previous [Automation Fundamentals workshop](https://aristanetworks.github.io/avd-workshops/) (Git, VS Code, Jinja/YAML, Ansible)

## Installation Requirements

### ATD Environment

The ATD lab environment was provisioned with Ansible and Git. First, however, we must update AVD and the required modules to the latest version. The following commands will install AVD and the required modules.

???+ Note

IMPORTANT: The installation steps below assume the [ci-workshop-avd repository](https://github.com/aristanetworks/ci-workshops-avd) has already been forked and cloned to the IDE. The following steps must be run each time you start your lab. We will walk through these steps during the next section

``` bash
pip3 config set global.break-system-packages true
pip3 config set global.disable-pip-version-check true
pip3 install "pyavd[ansible-collection]==4.10.0"
ansible-galaxy collection install -r requirements.yml
```

### Other Environments

Install AVD and required modules - Installation guide found **[here](https://avd.arista.com/4.10/docs/installation/collection-installation.html)**.

## Lab Topology Overview

Throughout this section, we will use the following dual data center topology. Click on the image to zoom in for details.

![Dual DC Topology](assets/images/dual-dc-topo.svg)
![Dual DC Topology](../assets/images/dual-dc-topo.svg)

## Basic EOS Switch Configuration

Expand Down Expand Up @@ -78,7 +57,7 @@ Our lab L2LS topology contains two sites, `Site 1` and `Site 2`. We need to crea

The following is a graphical representation of the Ansible inventory groups and naming scheme used for `Site 1` in this example. This is replicated for `Site 2`.

![Ansible Groups](assets/images/ansible_groups_site1.svg)
![Ansible Groups](../assets/images/ansible_groups_site1.svg)

## AVD Fabric Variables

Expand Down Expand Up @@ -324,7 +303,7 @@ core_interfaces:

The following diagram shows the P2P links to the IP Network from all four spine nodes. The WAN IP Network is pre-configured in our lab with /31's running OSPF in area 0.0.0.0. The core_interfaces for the spines in `Site 1` and `Site 2` are configured and deployed with AVD.

![Core Interfaces](assets/images/avd-core-interfaces.svg)
![Core Interfaces](../assets/images/avd-core-interfaces.svg)

### Fabric Services

Expand Down Expand Up @@ -495,4 +474,4 @@ make deploy-site-2

## Next Steps

[Continue to Lab Guide](avd-lab-guide.md){ .md-button .md-button--primary }
[Continue to Lab Guide](l2ls-lab-guide.md){ .md-button .md-button--primary }
Loading

0 comments on commit e67ceaa

Please sign in to comment.