Skip to content

Commit daa1f28

Browse files
mtacheJulioPDX
andauthored
Update labs for AVD 6.1.0 (#336)
* Update AVD variables for AVD 6.0.0 * Update requirements files * Update .gitignore * Updated README * Adding backups to gitignore and Updating build steps to stay with Management0, moved to cleartext_password on user creation * updating to avd 6.1, anta 1.8, and reverting gitignore * Implement review comments --------- Co-authored-by: juliopdx <julioperez@arista.com> Co-authored-by: JulioPDX <juliop503@gmail.com>
1 parent 0f983a0 commit daa1f28

9 files changed

Lines changed: 83 additions & 86 deletions

File tree

README.md

Lines changed: 20 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,25 @@
1-
# Arista CI Workshops
1+
# Arista Automation Workshops
22

3-
## **ATD Dual Datacenter Topology**
3+
This repository contains lab materials for learning network automation with **Arista AVD** and **CI/CD practices**. The labs are designed for use with the Arista Test Drive (ATD) environment.
44

5-
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.
5+
## **Overview**
66

7-
![Topologies](images/topologies.png)
7+
These workshops demonstrate infrastructure-as-code practices for network automation:
88

9-
## **Lab Instructions**
9+
- **Configuration Generation** using [Arista AVD](https://avd.arista.com/) with Ansible
10+
- **Network Validation** using [ANTA (Arista Network Test Automation)](https://anta.arista.com/)
11+
- **Deployment** via eAPI or CloudVision
12+
- **CI/CD Integration** with GitHub Actions for automated testing and deployment
1013

11-
The instructions to build and deploy this L2LS Multi-site topology are located in the Lab Guide **[here](https://aristanetworks.github.io/avd-workshops/avd-lab-guide/)**.
14+
## **Labs**
15+
16+
This repository contains the following labs:
17+
18+
| Lab | Description | Lab Guide |
19+
|-----|-------------|-----------|
20+
| [L2LS](labs/L2LS/) | Layer 2 Leaf-Spine Dual Data Center | [CI/AVD L2LS Guide](https://labguides.testdrive.arista.com/2025.3/automation/ci_avd_l2ls/overview/) |
21+
| [L3LS_EVPN](labs/L3LS_EVPN/) | Layer 3 Leaf-Spine with EVPN/VXLAN | [CI/AVD L3LS EVPN/VXLAN Guide](https://labguides.testdrive.arista.com/2025.3/automation/ci_avd_l3ls/overview/) |
22+
| [CAMPUS_L2LS](labs/CAMPUS_L2LS/) | Campus Layer 2 Leaf-Spine | [AVD/CV Campus L2LS Guide](https://labguides.testdrive.arista.com/2025.3/automation/avd_cv_campus_l2ls/overview/) |
23+
| [NET_TESTING](labs/NET_TESTING/) | Network Testing with ANTA | [Arista Network Test Automation Guide](https://labguides.testdrive.arista.com/2025.3/automation/validation/overview/) |
24+
25+
For the full list of automation labs, visit the [Arista ATD Automation Lab Guides](https://labguides.testdrive.arista.com/2025.3/automation/workshops_overview/).

ansible.cfg

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ retry_files_enabled = False
1515
# Path(s) to search for installed Ansible Galaxy Collections
1616
collections_path = ~/.ansible/collections
1717

18-
# Enable additional Jinja2 Extensions (https://jinja.palletsprojects.com/en/3.1.x/extensions/)
19-
jinja2_extensions = jinja2.ext.loopcontrols,jinja2.ext.do,jinja2.ext.i18n
20-
2118
# Enable the YAML callback plugin, providing much easier to read terminal output. (https://docs.ansible.com/ansible/latest/plugins/callback.html#callback-plugins)
2219
stdout_callback = yaml
2320

21+
# error when a duplicate dict key is encountered in YAML
22+
# https://avd.arista.com/6.1/docs/installation/collection-installation.html#ansible-configuration-file
23+
duplicate_dict_key=error
24+
2425
# Permit the use of callback plugins when running ad-hoc commands
2526
bin_ansible_callbacks = True
2627

labs/CAMPUS_L2LS/global_vars/global_campus_vars.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ ansible_httpapi_use_ssl: true
1313
ansible_httpapi_validate_certs: false
1414
ansible_python_interpreter: $(which python3)
1515

16+
# AVD 6.0 defaults to Management1 for cEOS, override
17+
custom_platform_settings:
18+
- platforms:
19+
- cEOS
20+
management_interface: Management0
21+
1622
# arista.avd.cv_deploy role parameters
1723
# Export token using 'export CV_TOKEN=<generated token here>'
1824
cv_token: "{{ lookup('env', 'CV_TOKEN') }}"
@@ -37,7 +43,7 @@ aaa_settings:
3743
- name: arista
3844
privilege: 15
3945
role: network-admin
40-
sha512_password: "{{ ansible_password | password_hash('sha512', salt='arista', rounds=5000) }}"
46+
cleartext_password: "{{ ansible_password }}"
4147
ssh_key: "{{ lookup('ansible.builtin.file', '~/.ssh/id_rsa.pub') }}"
4248

4349
# DNS settings
@@ -55,7 +61,10 @@ ntp_settings:
5561
# OOB Management network default gateway.
5662
mgmt_gateway: 192.168.0.1
5763
mgmt_interface_vrf: default
58-
mgmt_interface: Management0
5964

6065
# Point to Point Links MTU Override for Lab
6166
p2p_uplinks_mtu: 1500
67+
68+
# eAPI must be explicitly enabled in AVD 6.0.0
69+
management_eapi:
70+
enabled: true

labs/L2LS/complete/global_vars/global_dc_vars.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ ansible_httpapi_use_ssl: true
1313
ansible_httpapi_validate_certs: false
1414
ansible_python_interpreter: $(which python3)
1515

16+
# AVD 6.0 defaults to Management1 for cEOS, override
17+
custom_platform_settings:
18+
- platforms:
19+
- cEOS
20+
management_interface: Management0
21+
1622
# arista.avd.cv_deploy role parameters
1723
# Export token using 'export CV_TOKEN=<generated token here>'
1824
cv_token: "{{ lookup('env', 'CV_TOKEN') }}"
@@ -37,12 +43,11 @@ aaa_settings:
3743
- name: arista
3844
privilege: 15
3945
role: network-admin
40-
sha512_password: "{{ ansible_password | password_hash('sha512', salt='arista', rounds=5000) }}"
46+
cleartext_password: "{{ ansible_password }}"
4147

4248
# OOB Management network default gateway.
4349
mgmt_gateway: 192.168.0.1
4450
mgmt_interface_vrf: default
45-
mgmt_interface: Management0
4651

4752
# NTP Servers IP or DNS name, first NTP server will be preferred, and sourced from Management VRF
4853
ntp_settings:
@@ -58,3 +63,7 @@ dns_settings:
5863

5964
# Point to Point Links MTU Override for Lab
6065
p2p_uplinks_mtu: 1500
66+
67+
# eAPI must be explicitly enabled in AVD 6.0.0
68+
management_eapi:
69+
enabled: true

labs/L2LS/global_vars/global_dc_vars.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ ansible_httpapi_use_ssl: true
1313
ansible_httpapi_validate_certs: false
1414
ansible_python_interpreter: $(which python3)
1515

16+
# AVD 6.0 defaults to Management1 for cEOS, override
17+
custom_platform_settings:
18+
- platforms:
19+
- cEOS
20+
management_interface: Management0
21+
1622
# arista.avd.cv_deploy role parameters
1723
# Export token using 'export CV_TOKEN=<generated token here>'
1824
cv_token: "{{ lookup('env', 'CV_TOKEN') }}"
@@ -37,13 +43,12 @@ aaa_settings:
3743
- name: arista
3844
privilege: 15
3945
role: network-admin
40-
sha512_password: "{{ ansible_password | password_hash('sha512', salt='arista', rounds=5000) }}"
46+
cleartext_password: "{{ ansible_password }}"
4147
ssh_key: "{{ lookup('ansible.builtin.file', '~/.ssh/id_rsa.pub') }}"
4248

4349
# OOB Management network default gateway.
4450
mgmt_gateway: 192.168.0.1
4551
mgmt_interface_vrf: default
46-
mgmt_interface: Management0
4752

4853
# NTP Servers IP or DNS name, first NTP server will be preferred, and sourced from Management VRF
4954
ntp_settings:
@@ -59,3 +64,7 @@ dns_settings:
5964

6065
# Point to Point Links MTU Override for Lab
6166
p2p_uplinks_mtu: 1500
67+
68+
# eAPI must be explicitly enabled in AVD 6.0.0
69+
management_eapi:
70+
enabled: true

labs/L3LS_EVPN/global_vars/global_dc_vars.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,12 @@ ansible_httpapi_use_ssl: true
1313
ansible_httpapi_validate_certs: false
1414
ansible_python_interpreter: $(which python3)
1515

16+
# AVD 6.0 defaults to Management1 for cEOS, override
17+
custom_platform_settings:
18+
- platforms:
19+
- cEOS
20+
management_interface: Management0
21+
1622
# arista.avd.cv_deploy role parameters
1723
# Export token using 'export CV_TOKEN=<generated token here>'
1824
cv_token: "{{ lookup('env', 'CV_TOKEN') }}"
@@ -37,13 +43,12 @@ aaa_settings:
3743
- name: arista
3844
privilege: 15
3945
role: network-admin
40-
sha512_password: "{{ ansible_password | password_hash('sha512', salt='arista', rounds=5000) }}"
46+
cleartext_password: "{{ ansible_password }}"
4147
ssh_key: "{{ lookup('ansible.builtin.file', '~/.ssh/id_rsa.pub') }}"
4248

4349
# OOB Management network default gateway.
4450
mgmt_gateway: 192.168.0.1
4551
mgmt_interface_vrf: default
46-
mgmt_interface: Management0
4752

4853
# NTP Servers IP or DNS name, first NTP server will be preferred, and sourced from Management VRF
4954
ntp_settings:
@@ -60,6 +65,10 @@ dns_settings:
6065
# Point to Point Links MTU Override for Lab
6166
p2p_uplinks_mtu: 1500
6267

68+
# eAPI must be explicitly enabled in AVD 6.0.0
69+
management_eapi:
70+
enabled: true
71+
6372
# Set IPv4 Underlay Routing and EVPN Overlay Routing to use eBGP
6473
underlay_routing_protocol: ebgp
6574
overlay_routing_protocol: ebgp

labs/NET_TESTING/global_vars/global_dc_vars.yml

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,12 @@ ansible_httpapi_use_ssl: true
1414
ansible_httpapi_validate_certs: false
1515
ansible_python_interpreter: $(which python3)
1616

17+
# AVD 6.0 defaults to Management1 for cEOS, override
18+
custom_platform_settings:
19+
- platforms:
20+
- cEOS
21+
management_interface: Management0
22+
1723
# arista.avd.cv_deploy role parameters
1824
# Export token using 'export CV_TOKEN=<generated token here>'
1925
cv_token: "{{ lookup('env', 'CV_TOKEN') }}"
@@ -38,13 +44,12 @@ aaa_settings:
3844
- name: arista
3945
privilege: 15
4046
role: network-admin
41-
sha512_password: "{{ ansible_password | password_hash('sha512', salt='arista', rounds=5000) }}"
47+
cleartext_password: "{{ ansible_password }}"
4248
ssh_key: "{{ lookup('ansible.builtin.file', '~/.ssh/id_rsa.pub') }}"
4349

4450
# OOB Management network default gateway.
4551
mgmt_gateway: 192.168.0.1
4652
mgmt_interface_vrf: default
47-
mgmt_interface: Management0
4853

4954
# NTP Servers IP or DNS name, first NTP server will be preferred, and sourced from Management VRF
5055
ntp_settings:
@@ -61,6 +66,10 @@ dns_settings:
6166
# Point to Point Links MTU Override for Lab
6267
p2p_uplinks_mtu: 1500
6368

69+
# eAPI must be explicitly enabled in AVD 6.0.0
70+
management_eapi:
71+
enabled: true
72+
6473
# Set IPv4 Underlay Routing and EVPN Overlay Routing to use eBGP
6574
underlay_routing_protocol: ebgp
6675
overlay_routing_protocol: ebgp

requirements.txt

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,2 @@
1-
aiocache==0.12.3
2-
annotated-types==0.7.0
3-
ansible-core==2.16.14
4-
anta==1.6.0
5-
anyio==4.10.0
6-
aristaproto==0.1.4
7-
asyncssh==2.21.0
8-
attrs==25.3.0
9-
certifi==2025.8.3
10-
cffi==1.17.1
11-
charset-normalizer==3.4.3
12-
click==8.3.0
13-
cryptography==45.0.6
14-
cvprac==1.4.1
15-
deepmerge==2.0
16-
distlib==0.4.0
17-
eval_type_backport==0.2.2
18-
grpclib==0.4.8
19-
h11==0.16.0
20-
h2==4.2.0
21-
hpack==4.1.0
22-
httpcore==1.0.9
23-
httpx==0.28.1
24-
hyperframe==6.1.0
25-
idna==3.10
26-
Jinja2==3.1.6
27-
jsonrpclib-pelix==0.4.3.4
28-
jsonschema==4.25.0
29-
jsonschema-specifications==2025.4.1
30-
markdown-it-py==4.0.0
31-
MarkupSafe==3.0.2
32-
mdurl==0.1.2
33-
multidict==6.6.4
34-
netaddr==1.3.0
35-
packaging==25.0
36-
passlib==1.7.4
37-
pyavd==5.7.1
38-
pycparser==2.22
39-
pydantic==2.11.7
40-
pydantic-extra-types==2.10.5
41-
pydantic-settings==2.11.0
42-
pydantic_core==2.33.2
43-
pyeapi==1.0.4
44-
Pygments==2.19.2
45-
PySocks==1.7.1
46-
python-dateutil==2.9.0.post0
47-
python-dotenv==1.2.1
48-
PyYAML==6.0.2
49-
referencing==0.36.2
50-
requests==2.32.4
51-
resolvelib==1.0.1
52-
rich==13.9.4
53-
rpds-py==0.27.0
54-
shyaml==0.6.2
55-
six==1.17.0
56-
sniffio==1.3.1
57-
treelib==1.8.0
58-
typing-inspection==0.4.1
59-
typing_extensions==4.14.1
60-
urllib3==2.5.0
1+
pyavd[ansible]==6.1.0
2+
anta[cli]==1.8.0

requirements.yml

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
---
22
collections:
3-
43
- name: arista.avd
5-
version: 5.7.1
6-
7-
- name: community.general
8-
version: 11.2.1
9-
4+
version: 6.1.0
105
- name: ansible.posix
11-
version: 2.1.0
6+
version: 2.2.0

0 commit comments

Comments
 (0)