Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minor updates to workshop #145

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 18 additions & 18 deletions workshops/ansible.md
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,13 @@ cd ~/project/labfiles/ci-workshops-fundamentals/ansible
Next, we'll confirm that Ansible is installed by running the `ansible --version` in the terminal. This should yield output similar to below:

```powershell
ansible [core 2.12.10]
config file = /home/coder/project/labfiles/ci-workshops-fundamentals/ansible/ansible.cfg
ansible [core 2.15.5]
config file = /home/coder/.ansible.cfg
configured module search path = ['/home/coder/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /home/coder/.local/lib/python3.9/site-packages/ansible
ansible collection location = /home/coder/.ansible/collections
ansible collection location = /home/coder/.ansible/collections:/usr/share/ansible/collections
executable location = /home/coder/.local/bin/ansible
python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
python version = 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110] (/usr/bin/python3)
jinja version = 3.1.2
libyaml = True
```
Expand Down Expand Up @@ -232,6 +232,9 @@ We can validate our inventory by using the `ansible-inventory` command, which is

The below command will list the entire inventory, consisting of all hosts/groups and their respective variable values.

!!! warning "Reminder"
Ensure all commands are run from the `/home/coder/project/labfiles/ci-workshops-fundamentals/ansible` directory in the terminal on the ATD VS Code IDE instance.

```bash
ansible-inventory --list --yaml
```
Expand Down Expand Up @@ -278,9 +281,6 @@ Notice the variables associated with `s1-leaf1`. Where did these come from? We'l

We can define variables in many locations with Ansible. For example, we can explicitly define a variable when running a playbook by using the `extra-vars` flag.

??? warning "Reminder"
Ensure all commands are run from the `/home/coder/project/labfiles/ci-workshops-fundamentals/ansible` directory in the terminal on the ATD VS Code IDE instance.

```bash
ansible-playbook playbooks/hello_world.yml -e 'name=Mitch'
```
Expand Down Expand Up @@ -352,14 +352,14 @@ We can verify this by running `ansible-inventory --host s2-spine1 --yaml`.
ansible-inventory --host s2-spine1 --yaml
```

??? eos-config annotate "Output of 'ansible-inventory --host s1-spine1 --yaml'"
??? eos-config annotate "Output of 'ansible-inventory --host s2-spine1 --yaml'"
```yaml

ansible_connection: ansible.netcommon.httpapi
ansible_httpapi_use_ssl: true
ansible_httpapi_validate_certs: false
ansible_network_os: arista.eos.eos
ansible_ssh_pass: arista1c7z
ansible_ssh_pass: YourLabPasswordHere
ansible_user: arista
banner_text: This banner came from group_vars/WORKSHOP_FABRIC.YML

Expand All @@ -380,7 +380,7 @@ ansible-inventory --host s1-leaf3 --yaml
ansible_httpapi_use_ssl: true
ansible_httpapi_validate_certs: false
ansible_network_os: arista.eos.eos
ansible_ssh_pass: arista1c7z
ansible_ssh_pass: YourLabPasswordHere
ansible_user: arista
banner_text: This banner came from group_vars/S1.YML
mlag_config:
Expand Down Expand Up @@ -438,7 +438,7 @@ ansible-inventory --host s1-leaf1 --yaml
ansible_httpapi_use_ssl: true
ansible_httpapi_validate_certs: false
ansible_network_os: arista.eos.eos
ansible_ssh_pass: arista1c7z
ansible_ssh_pass: YourLabPasswordHere
ansible_user: arista
banner_text: This banner came from host_vars/s1-leaf1.YML
mlag:
Expand Down Expand Up @@ -597,13 +597,13 @@ This will yield output similar to below:
# /home/coder/.ansible/collections/ansible_collections
Collection Version
----------------- -------
ansible.netcommon 4.1.0
ansible.posix 1.4.0
ansible.utils 2.8.0
arista.avd 3.6.0
arista.cvp 3.4.0
arista.eos 6.0.0
community.general 6.2.0
ansible.netcommon 5.2.0
ansible.posix 1.5.4
ansible.utils 2.11.0
arista.avd 4.4.0
arista.cvp 3.8.0
arista.eos 6.1.2
community.general 7.5.0

```

Expand Down
6 changes: 3 additions & 3 deletions workshops/avd-lab-guide.md
Original file line number Diff line number Diff line change
Expand Up @@ -279,7 +279,7 @@ At this point, you should be able to ping between hosts within a site but not be

## **Step 5 - Connect Sites to WAN IP Network**

The WAN IP Network is defined by the `core_interfaces` data model. Full data model documentation is located **[here](https://avd.arista.com/4.1/roles/eos_designs/docs/tables/core-interfaces.html?h=core+interfaces)**.
The WAN IP Network is defined by the `core_interfaces` data model. Full data model documentation is located **[here](https://avd.arista.com/4.5/roles/eos_designs/docs/input-variables.html#core-interfaces-settings)**.

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.

Expand Down Expand Up @@ -463,7 +463,7 @@ Now we're ready to start working on our changes :sunglasses:.
### **Login Banner**

When we initially deployed our multi-site topology, we should have included a login banner on all our switches.
Let's take a look at the **[AVD documentation site](https://avd.arista.com/4.1/roles/eos_cli_config_gen/docs/tables/banners.html?h=banners)** to see what the
Let's take a look at the **[AVD documentation site](https://avd.arista.com/4.5/roles/eos_cli_config_gen/docs/input-variables.html#banners)** to see what the
data model is for this configuration.

The banner on all of our switches will be the same. After reviewing the AVD documentation, we know we can accomplish this by defining the `banners` input variable
Expand Down Expand Up @@ -503,7 +503,7 @@ So far, so good! Before we publish our branch and create a Pull Request though,
### **Syslog Server**

Our next Day 2 change is adding a syslog server configuration to all our switches. Once again, we'll take
a look at the **[AVD documentation site](https://avd.arista.com/4.1/roles/eos_cli_config_gen/docs/tables/logging.html?h=logging)** to see the
a look at the **[AVD documentation site](https://avd.arista.com/4.5/roles/eos_cli_config_gen/docs/input-variables.html#logging)** to see the
data model associated with the `logging` input variable.

Like our banner operation, the syslog server configuration will be consistent on all our switches. Because of this, we can also put this into
Expand Down
17 changes: 8 additions & 9 deletions workshops/avd.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ This section will cover the following:
- Initial Deployment (Day 0 Provisioning)
- Ongoing Operations (Day 2 and Beyond)
- Validation and Troubleshooting
- Enhancing our CI/CD Pipelines with GitHub Actions

Each attendee will receive a dedicated virtual lab environment with Git, VS Code, and Ansible installed and ready to use.

Expand All @@ -23,7 +22,11 @@ Attendees will need the following:

### 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 needed modules.
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.disable-pip-version-check true
Expand All @@ -33,13 +36,9 @@ export ARISTA_AVD_DIR=$(ansible-galaxy collection list arista.avd --format yaml
pip3 install -r ${ARISTA_AVD_DIR}/arista/avd/requirements.txt
```

???+ Note

IMPORTANT: The installation steps assume the [repository](https://github.com/aristanetworks/ci-workshops-avd) has already been forked and cloned to the IDE. The above steps must be run each time you start your lab.

### Other Environments

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

## Lab Topology Overview

Expand Down Expand Up @@ -161,7 +160,7 @@ In a multi-site environment, some variables must be applied to all sites. They i

For example, in our lab, we use a global variable file `global_vars/global_dc-vars.yml`.

AVD provides a [`global_vars`](https://avd.arista.com/4.3/plugins/index.html?h=#aristaavdglobal_vars) plugin that enables the use of global variables.
AVD provides a [`global_vars`](https://avd.arista.com/4.5/docs/plugins/Vars_plugins/global_vars.html) plugin that enables the use of global variables.

The `global_vars` plugin must be enabled in the `ansible.cfg` file as shown below:

Expand Down Expand Up @@ -193,7 +192,7 @@ AVD provides a network-wide data model and is typically broken into multiple gro

### Fabric Topology

The physical fabric topology is defined by providing interface links between the spine and leaf nodes. The `group_vars/SITE1_FABRIC.yml` file defines this portion of the data model. In our lab, the spines provide layer 3 routing of SVIs and P2P links using a node type called `l3spines`. The leaf nodes are purely layer 2 and use node type `leaf`. An AVD L2LS design type provides three node type keys: l3 spine, spine, and leaf. AVD Node Type documentation can be found **[here](https://avd.arista.com/4.1/roles/eos_designs/docs/input-variables.html#node-type-variables)**.
The physical fabric topology is defined by providing interface links between the spine and leaf nodes. The `group_vars/SITE1_FABRIC.yml` file defines this portion of the data model. In our lab, the spines provide layer 3 routing of SVIs and P2P links using a node type called `l3spines`. The leaf nodes are purely layer 2 and use node type `leaf`. An AVD L2LS design type provides three node type keys: l3 spine, spine, and leaf. AVD Node Type documentation can be found **[here](https://avd.arista.com/4.5/roles/eos_designs/docs/input-variables.html#node-type-variables)**.

#### Spine and Leaf Nodes

Expand Down
5 changes: 4 additions & 1 deletion workshops/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,10 @@
![Tools Bar](assets/images/tools_bar_light.png#only-light){: style="width:900px"}
![Tools Bar](assets/images/tools_bar_dark.png#only-dark){: style="width:900px"}

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.
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 topics we will cover in person with full details and examples.

!!! note
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
Expand Down
Loading