5 Tools You Should Learn
to Level Up Your
Network Automation Game
Kareem Iskander - Lead Technical Advocate, @kareem_isk
Quinn Snyder - Senior Technical Advocate, @qsnyder
DEVNET-2149
-
Webex App
Questions?
Use the Webex app to chat with the speaker
after the session
How
1 Find this session in the Cisco Events mobile app
2 Click “Join the Discussion”
3 Install the Webex app or go directly to the Webex space
4 Enter messages/questions in the Webex space
Webex spaces will be moderated
by the speaker until February 28, 2025.
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 3
• Introduction
• Git’in it right
• Its OK to be `bash`ful
Agenda • Locking the Vault
• Codifying your infra
• Containerize this!
• Conclusion
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 4
Introduction
So.. I learned the
building blocks of
network
automation, but Let’s Level Up!
what happens in
practice in the real
world?
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 5
Git’in it right
-
What we’ve
been talking to
you about
-
GIT - Basics
What we’ve been talking to you about
git checkout
Sample Sample
git clone Code Code
(main) (mycode)
Step Action Git Command git commit Edit
1. Clone the Remote Repository git clone url
2. Create and Checkout a Local Branch git checkout –b new-branch-name
def f(x): def f(x):
3. Incrementally Commit Changes git add filename ... ...
git commit -m “Commit message” ...
git add ...
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 8
GIT - Basics
What we’ve been talking to you about
Merge Commits
Pull
Conflict
Requests
Logs
Branches
HEAD
Push
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 9
Real World
-
Interactive
Rebase
-
Interactive Rebase
A Tool for Optimizing & Cleaning up Commit History
• Change a commit's message
• Delete a commit
• Reorder commits
• Combine multiple commits into one
• Edit/Split an existing commit into multiple new ones
DO NOT use Interactive Rebase on commits that you've
already pushed/shared on remote repo!
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 12
Interactive Rebase
Use Case
• You are working on the Feature branch to expand Meraki automation
• You have been making commits ever function you write
• You are ready to merge into Main branch
• You have realized:
1. “Over Commit-ted” - get it?
2. Commit messages aren’t cutting it
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 13
Interactive Rebase - Steps Change Commit
Range
1. How far back do you want to go? C1 C2 C3 C4
2.
3. Determine action to apply to your commits
4. Make changes & save
5. Check changes
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 14
Let’s try it!
-
Interactive Rebase - Reword
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 16
Interactive Rebase - Squash
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 17
Cherry Picking 🍒
-
Cherry Picking 🍒
Use Case
• You are working on the Feature branch to expand your Meraki site
automation
• You have made a commit on the Feature Branch
• You noticed you are working in the Main Branch
• The commit does not belong in Main .. Yet
• What to do??
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 19
Cherry Picking 🍒
Integrate Single, Specific commit
• Cherry Picking allows you to select individual commits
• Cherry Picking integrate specific commits to Branch
• Only Commit C2 from Branch B to integrate into Branch A
C C C Branch
1 3 5 A
C C Branch
2 4 B
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 20
Cherry Picking 🍒 - Steps
1. While on Main Grab the commit hash
2. Checkout the Feature branch
4. Clean up Main
3. Cherry Pick the commit
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 21
Let’s try it!
-
Cherry Picking
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 23
Its OK to be
`bash`ful
-
What we’ve
demonstrated
-
Dockerfiles, GNU `make`, SCM-based CI/CD
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 26
Who had this book at Uni?
I use it more often than any book I’ve
saved from my college education
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 28
`bash` | 36 years and still going strong!
• Everything entered at the Linux CLI* can become part of a shell
script or CI/CD pipeline
• Yes, its all bash scripts and YAML
• This is “imperative language” which is still a thing in 2024
• Scripts can still execute other higher order processes
• Python, Ansible, Terraform, etc
• Dockerfiles, CI/CD pipeline declarations (Gitlab, GitHub Actions)
• May have specific runners or actions to hide abstraction
• Everything is running some sort of Linux* container
*Assuming POSIX-shells and so on…
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 29
Practical
Applications
-
Bash can build locally
Whether using native Docker
CLI, or `makefile` with
targets, commands run
within container are based
on Linux CLI
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 31
Bash can build in the cloud
GitHub Actions are container
runners of various OS-
types.
Some pre-built functions
exist, but bespoke scripts
may be needed, even if
calling Python/Go/etc.
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 32
“When I die, I don’t care about
clearing my browser history. I
want someone to delete my
~/dev folder to hide the
heinous things I did with bash
scripts”
~ Some Bearded Jabroni
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 33
Locking the
Vault
-
What we’ve
been talking to
you about
-
Secret Sprawl Lambda
Application
Automation
~7 Different API Tokens | SSH Keys | Auth Methods
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 36
- Secrets
Don’t be that SSOT
Single Source of Truth for all you Secretes
• API Tokens
• SSH Keys
• Basic Auth - Username/Password
• DB Creds
Granular Access Control (ACLs)
• Define App Rules
• Apps granted access to Mount/Path
• Paths Contain Creds
Vault APIs FTW
• API access to your creds
• Seamless integration with your App
• Bonus Points - HVAC SDK!!
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 37
Real World
-
Vault Lambda
Application
Automation
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 39
Let’s try it!
-
VAULT HVAC SDK + DNACSDK = <3
1. Instantiate Vault
3. Read the Secrets
4. Start
automating
2. Unseal Vault
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 41
VAULT HVAC SDK + DNACSDK = <3
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 42
Codifying your
Infra
-
What I’ve
droned on about
-
Mostly about IaC in single context
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 45
And I talk about an automation journey like this…
Realizing VCS
Some sort IaC-less
APIs languages
of intro IaC pipeline
may be IaC + IaC-
better driven
pipeline
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 46
And IaC is GREAT for Cloud
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 47
But how does
that apply in
practice?
-
We can also convert click-ops into IaC
Terraformer:
• [Link]
/terraformer
Azure Export for Terraform:
• [Link]
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 49
IaC enables easier pipelines*
Source
Code
Control
*Please don’t tell `bash` I’m cheating…
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 50
IaC enables VCS-less pipelines*
Application Change Consul Consul Terraform Sync Infrastructure
Consul Services Terraform
catalog notification run ACI Cloud NDFC NDO
update from ACI
catalog
*Again, don’t tell `bash` I’m cheating…
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 51
Containerize
This!
-
I’ve said this
previously
-
What makes containers unique
VM A VM B VM C VM N
App App App App
A B C N App App App App
A B C N
Container Runtime
(Docker, Podman, [Link]) OS A OS B OS C OS N
Socket access to kernel space Isolation
Operating System Type-1 Hypervisor
Hardware Hardware
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 54
Package everything up and ship it
Containers create uniform
package runtime
environment (like Java was
supposed to do, but better)
Most* abstractions survive
across OS and cloud
providers
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 55
Practically
Speaking
Though…
-
Containers can do both!
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 57
Level up containers in the Cloud!
Meraki Cloud
Gather
Device
Status
API Gateway
(ad-hoc run)
Report
Status
Webex
EventBridge Messaging
(scheduled)
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 58
Wrapping it all up
-
Its all connected
Dev Vault
A&O
Sec
Infra as
Bash
Code
Cloud CI/CD
Containers Git
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 60
List of items covering everything discussed
[To Be Filled In]
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 61
PLEASE VERIFY WITH 2025 SESSIONS
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 62
Webex App
Questions?
Use the Webex app to chat with the speaker
after the session
How
1 Find this session in the Cisco Events mobile app
2 Click “Join the Discussion”
3 Install the Webex app or go directly to the Webex space
4 Enter messages/questions in the Webex space
Webex spaces will be moderated
by the speaker until February 28, 2025.
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 63
Fill Out Your Session Surveys
Participants who fill out a minimum of 4 session
surveys and the overall event survey will get a
unique Cisco Live t-shirt.
(from 11:30 on Thursday, while supplies last)
All surveys can be taken in the Cisco Events
mobile app or by logging in to the Session Catalog
and clicking the ‘Participant Dashboard’
Content Catalog
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 64
• Visit the Cisco Showcase
for related demos
• Book your one-on-one
Meet the Engineer meeting
Continue • Attend the interactive education
your education with DevNet, Capture the Flag,
and Walk-in Labs
• Visit the On-Demand Library
for more sessions at
[Link]/on-demand.
Sessions from this event will be
available from March 3.
-
DEVNET-2149 © 2025 Cisco and/or its affiliates. All rights reserved. Cisco Public 65
Thank you
-
-