Proctor: Claudia de Luna, EIA
Teaching Assistants:
Your hosts for this workshop:
- You will need a laptop with wireless suitable for cloning a GitHub Repository, running uv and Python scripts
- You will need uv installed
- The workshop GitHub Repository (Cloned or Downloaded) prior to the workshop (in case we have connectivity issues)
- Bring your favorite IDE. We will be using PyCharm Community Edition or Visual Studio Code if you don’t have a preference.
- (Optional) Bring your favorite Markdown Viewer
- We like Typora. It cross platform (Mac, Linux, Windows) but there is a modest cost. For our purposes there is a 15 day free trial.
- If you don't want another application, both PyCharm and VS Code will render Markdown well enough for our purposes.
- (Optional) One example will build a Containerlab topology so if you want to spin it up on your own, you will need to have Containerlab installed and set up along with the Arista cEOS image downloaded. There will also be an FRR topology as an alternative if you prefer not use cEOS.
- Containerlab Quickstart
- Arista Login (using a business email) to download cEOS
- (Optional) One example builds a diagram using the diagrams module which requires Graphviz. If that is not something you want to install, the working_directory has the image already created for you.
- Please join the workshop slack channel *#ac3-ws-c4-jinja2-in-action* (we will be sharing updates there and that will be handy place for any questions you might have).
- Install uv and Test
- Execute the workshop uv test repo
- Make sure uv is installed and you can execute the
uv --version
command and get output like below: claudiadeluna in ~ % uv —versionuv 0.7.4 (6fbcd09b5 2025-05-15)
- Review the workshop Introduction to Jinja2 tutorial if you have not used Jinja2 before
- Clone the course repository
- If you prefer to not use uv:
- please make sure you can run Python (we will be using Python 3.12) and create virtual environments
- please build your virtual environment before the workshop using the
requirements.txt
file from the repo. We will post detailed instructions in the workshop Slack channel.
Think about use cases involving templates. Where could templates help you save time and/or improve accuracy/consistency? Are there complex configurations (or some other artifact) that could be challenging in a template?
Preview of the modules we will be using
- uv
- (Optional) Containerlab and ceos images
- (Optional) Graphviz Application and diagrams Python module
- pytz - jinja2 - solara - pyyaml - pandas - requests - diagrams - openpyxl - streamlit - python-dotenv
Note: The diagrams module requires the installation of the Graphviz application. (If this is not something you want to install the generated artifact is provided in the repo for your review) Diagrams Getting Started > Installation Native installation for Windows Users without a package manager Installation instructions for MacOSX, Windows10/11, and Linux
The repository was developed on MacOSX and has also been tested on:
- Windows 10/11 natively and Windows Subsystem for Linux (WSLv2)