Skip to content

Commit f7fc7d6

Browse files
Add initial documentation (#14)
Adding documentation for this repository.
1 parent 1b8794e commit f7fc7d6

31 files changed

+6924
-0
lines changed

.github/workflows/doc.yml

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Mkdocs
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "docs/**"
9+
- "mkdocs.yml"
10+
11+
jobs:
12+
build_documentation:
13+
runs-on: ubuntu-latest
14+
steps:
15+
- uses: actions/checkout@v4
16+
- name: Configure Git Credentials
17+
run: |
18+
git config user.name 'github-actions[bot]'
19+
git config user.email 'github-actions[bot]@users.noreply.github.com'
20+
- uses: actions/setup-python@v4
21+
with:
22+
python-version: 3.x
23+
- run: echo "cache_id=$(date --utc '+%V')" >> $GITHUB_ENV
24+
- uses: actions/cache@v3
25+
with:
26+
key: mkdocs-material-${{ env.cache_id }}
27+
path: .cache
28+
restore-keys: |
29+
mkdocs-material-
30+
- name: Install requirements and build documentation
31+
run: |
32+
python -m pip install --upgrade pip
33+
pip install -r ./docs/requirements.txt
34+
mkdocs build -f mkdocs.yml
35+
mkdocs gh-deploy --force

docs/images/aa_asym_mh_v2.png

937 KB
Loading

docs/images/avdasymirb_v2.png

913 KB
Loading

docs/images/avdcentralgw_v2.png

967 KB
Loading
914 KB
Loading

docs/images/avdirb_v2.png

980 KB
Loading

docs/images/mpls_v2.png

923 KB
Loading

docs/images/sa_sym_mh_v2.png

887 KB
Loading

docs/index.md

Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
# Arista Validated Designs with cEOS-lab
2+
3+
![lab-version](https://img.shields.io/github/v/release/arista-netdevops-community/avd-cEOS-Lab?color=brightgreen&logo=appveyor&style=for-the-badge)
4+
![cEOS-AVD](https://img.shields.io/badge/AVD-cEOS-brightgreen?logo=appveyor&style=for-the-badge)
5+
6+
---
7+
8+
This repository contains labs with examples to quickly deploy:
9+
10+
* Arista cEOS-Lab (*virtual*) based Leaf Spine topology using [containerlab](https://containerlab.dev/).
11+
* Configure the Leaf Spine topology using [Arista Validated Designs (AVD)](https://avd.arista.com/) role.
12+
13+
---
14+
15+
The repository currently contains the following prebuilt labs.
16+
17+
??? example "EVPN Symmetric IRB"
18+
eBGP Overlay and eBGP Underlay
19+
20+
2 Spines + 2 MLAG Leaf Pairs + 2 L2 leafs + 4 Clients
21+
22+
![Figure avd_sym_irb](./images/avdirb_v2.png)
23+
24+
??? example "EVPN Symmetric IRB"
25+
iBGP Overlay and OSFP Underlay
26+
27+
2 Spines + 2 MLAG Leaf Pairs + 4 Clients
28+
29+
![Figure avd_sym_irb_ibgp](./images/avdirb-ibgp-ospf_v2.png)
30+
31+
??? example "EVPN Asymmetric IRB"
32+
eBGP Overlay and eBGP Underlay
33+
34+
2 Spines + 2 MLAG Leaf Pairs + 4 Clients
35+
36+
![Figure avd_asym_irb](./images/avdasymirb_v2.png)
37+
38+
??? example "EVPN Centralized Anycast Gateway"
39+
eBGP Overlay and eBGP Underlay
40+
41+
2 Spines + 1 MLAG Compute leaf pairs + 1 MLAG Service Leaf pair + 4 Clients
42+
43+
![Figure avd_central_any_gw](./images/avdcentralgw_v2.png)
44+
45+
??? example "EVPN VXLAN All-active Multi-homing IRB"
46+
eBGP Overlay and eBGP Underlay
47+
48+
2 Spines + 4 PEs + 4 Clients
49+
50+
![Figure avd_asym_multihoming](./images/aa_asym_mh_v2.png)
51+
52+
??? example "EVPN Single-Active Multihoming Symmetric IRB"
53+
eBGP Overlay and eBGP Underlay
54+
55+
2 Spines + 4 PEs + 4 Clients
56+
57+
![Figure avd_asym_multihoming](./images/sa_sym_mh_v2.png)
58+
59+
??? example "EVPN MPLS LDP All-Active Multihoming (L2EVPN)"
60+
iBGP Overlay and MPLS Underlay
61+
62+
2 Ps + 4 PEs + 4 Clients
63+
64+
{==using eos_cli_config_gen==}
65+
66+
![Figure avd_asym_multihoming](./images/mpls_v2.png)
67+
68+
??? example "EVPN All-Active Multihoming IRB with MPLS Underlay"
69+
iBGP Overlay and MPLS Underlay
70+
71+
2 Ps + 4 PEs + 4 Clients
72+
73+
{==using eos_cli_config_gen==}
74+
75+
![Figure avd_asym_multihoming](./images/mpls_v2.png)

docs/install.md

Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Installation
2+
3+
## Pre-requisites
4+
5+
The following requirements must be satisfied to use the labs:
6+
7+
* The user should have `sudo` privileges
8+
* A Linux host/server/VM
9+
* [Python](https://www.python.org/downloads/) 3.8 or later
10+
* Install [ansible-core](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html) from **2.12.6** to **2.15.x** excluding **2.13.0**
11+
* Install [arista.avd](https://avd.arista.com/stable/docs/installation/collection-installation.html#install-collection-from-ansible-galaxy) collection from Ansible Galaxy
12+
* AVD additional Python [requirements](https://avd.arista.com/stable/docs/installation/collection-installation.html#python-requirements-installation)
13+
* Docker
14+
* [containerlab](https://containerlab.dev/install/)
15+
* Git
16+
* Arista cEOS-Lab image (*4.23.x or above*)
17+
* Alpine-host image
18+
* Clone the repository using `git clone`.
19+
20+
=== "HTTPS"
21+
22+
```shell
23+
git clone https://github.com/arista-netdevops-community/avd-cEOS-Lab.git
24+
```
25+
26+
=== "SSH"
27+
28+
```shell
29+
git clone git@github.com:arista-netdevops-community/avd-cEOS-Lab.git
30+
```
31+
32+
??? info
33+
34+
* For Python3, docker and ansible-core installation please refer to the installation guides based on the host OS.
35+
* For arista.avd installation please refer to the [official](https://avd.arista.com/stable/docs/installation/collection-installation.html) documenation.
36+
* For containerlab installation please refer to the [official](https://containerlab.dev/install/) documentation.
37+
38+
??? warning "Note"
39+
40+
* Containerlab topology definitions have changed starting v0.15 - [Release Notes](https://containerlab.dev/rn/0.15/). Latest [release](https://github.com/arista-netdevops-community/avd-cEOS-Lab/releases) of this repository is containerlab v0.15 (and above) compatible. For older containerlab compatible syntax download [v1.1.2](https://github.com/arista-netdevops-community/avd-cEOS-Lab/releases)
41+
* arista.avd v3.0.0 contains breaking changes to data models [Release Notes](https://avd.sh/en/latest/docs/release-notes/3.x.x.html). Latest release of this repository is arista.avd v3.0.0 and above compatible. For older avd compatible syntax download older [release](https://github.com/arista-netdevops-community/avd-cEOS-Lab/releases).
42+
* Starting Python 3.10 the default SSL/TLS ciphers have been [updated](https://bugs.python.org/issue43998). Latest [release](https://github.com/arista-netdevops-community/avd-cEOS-Lab/releases) of this repository updates the cipher suite on EOS via a security profile applied to eAPI to be compatible with Python 3.10.
43+
44+
---
45+
46+
### Installing Arista cEOS-Lab image
47+
48+
* Download the image from [www.arista.com](http://www.arista.com/) > Software Downloads > cEOS-Lab > EOS-4.2x.y > cEOS-lab-4.2x.y.tar.xz
49+
* Copy the `cEOS-lab-4.2x.y.tar.xz` to the host/server/VM.
50+
* Ensure Docker is already set up and running.
51+
52+
```shell
53+
docker version
54+
```
55+
56+
* Next, use the tar file to import the cEOS-Lab image using the following command
57+
58+
```shell
59+
docker import cEOS-lab.tar.xz ceosimage:TAG
60+
```
61+
62+
```shell title="Example"
63+
docker import cEOS64-lab-4.26.1F.tar.xz ceosimage:4.26.1F
64+
```
65+
66+
* Now you should be able to see the Arista cEOS-Lab image.
67+
68+
```shell
69+
docker images | egrep "REPO|ceos"
70+
```
71+
72+
??? note "Reveal Output"
73+
74+
```shell
75+
REPOSITORY TAG IMAGE ID CREATED SIZE
76+
ceosimage 4.26.1F 41b309a15f5c 30 hours ago 1.71GB
77+
```
78+
79+
---
80+
81+
### Installing the alpine-host image
82+
83+
!!! info
84+
85+
You have the option to use Arista cEOS-Lab or any other Linux-based container as a client/host.
86+
87+
In which case please update the `topology.yaml` in respective lab folders, as by default lab uses an alpine-host image for client/host containers
88+
89+
* Build the alpine-host image using the modified Dockerfile from [docker-topo](https://github.com/networkop/docker-topo/tree/master/topo-extra-files/host)
90+
* Navigate to `alpine_host` directory in this repository
91+
92+
```shell
93+
├── alpine_host
94+
├── Dockerfile
95+
├── README.md
96+
├── build.sh
97+
└── entrypoint.sh
98+
```
99+
100+
* Run the `build.sh` script
101+
102+
```shell
103+
./build.sh
104+
```
105+
106+
* Verify the alpine-host image is created
107+
108+
```shell
109+
docker images | egrep "TAG|alpine"
110+
```
111+
112+
??? note "Reveal Output"
113+
114+
```shell
115+
REPOSITORY TAG IMAGE ID CREATED SIZE
116+
alpine-host latest eab21450c58c 30 hours ago 68.7MB
117+
```
118+
119+
---
120+
121+
### cEOS-Lab containerlab template
122+
123+
!!! warning "Note"
124+
125+
The below steps are no longer required for containerlab v0.15 and above.
126+
127+
The v2.0.0 and above releases of this repository include this template in the `topology.yaml` itself.
128+
129+
***The Below steps are only required if using containerlab version less than v0.15***
130+
131+
Replace the containerlab cEOS default template with the `ceos.cfg.tpl` file from this repository.
132+
133+
```shell
134+
ceos_lab_template
135+
└── ceos.cfg.tpl
136+
```
137+
138+
??? danger "Warning"
139+
140+
If the default template is not replaced with the one from this repository, then for the initial AVD config replace you will observe a timeout error.
141+
142+
The default template can be usually found at `/etc/containerlab/templates/arista/ceos.cfg.tpl`
143+
144+
This is to ensure the containers by default come up with:
145+
146+
* [x] Multi agent routing model
147+
* [x] MGMT vrf for management connectivity
148+
* [x] eAPI enabled

0 commit comments

Comments
 (0)