Which Network Automation Tools should I learn? Python, Ansible, Genie and more: Tool Chest

preview_player
Показать описание
It's confusing! Where do I start with network automation? Which tools should I learn? Hank Preston opens the Network Automation Tool Chest and tells us which tools we should learn. We have a roadmap of tools to learn, how to start learning and how to deploy in the real world.

Which tools are best to start with? python or ansible or netmiko or pyats or paramiko? We discuss lots of options in this video.

#Python #Ansible #Genie

Links:

Menu:
0:38 - What Network Automation Tools
02:56 - The NetDevOps Engineer's Tool Chest
06:42 - Network Service and Configuration Management tools
10:36 - Where to start - Netmiko
12:55 - Genie CLI
15:00 - Ansible
20:20 - Domain Specific Language
22:14 - Python vs Ansible
24:08 - Napalm + Nornir
27:15 - Issues with Napalm and Netmiko
28:19 - Real World Use Cases of network automation tools
30:02 - pyATS & Paramiko
33:49 - pyATS & Genie
41:04 - DIFF
42:54 - How to schedule Network Automation
45:06 - Do Network Engineers need to learn Linux? Bash?
49:07 - Is Ansible Linux based?
50:15 - Other core skills needed today for Network Engineers
52:22 - Other Resources to help you
58:32 - Orchestration/Integration tools
59:33 - What is CICD?
1:04:00 - Do I need to learn Jenkins?
1:07:40 - The future of things going?
1:09:22 - Is there a presentation that goes over all of these tools?
01:10:10 - What should I begin with as a beginner?

# Getting Started

0. Foundation "Stuff"
* Python
* Linux/bash fundamentals
* git
* REST APIs

1. CLI Based Interactions
* Python + Netmiko - Configuration Based use cases
* Genie CLI - Operation based use cases
* Parmiko - NOT RECOMMENDED - just use Netmiko

2. Network Automation Frameworks/Abstractions
* Ansible "Domain Specific Language (DSL)" - Configuration Use Cases
* NAPALM + Python - Configuration Use Cases
* Nornir + Python - Configuration Use Cases

3. Network Verification
* pyATS/Genie + Python - Operational / Testing Use Cases
* For every BGP neighbor, ensure prefixes being learned
* For every "up interface", ensure no CRC errors
* "Profile" before change, Change, "Profile" after, DIFF

Other Skills/Questions
1. How to schedule "stuff"
* Run a Python script every hour - cron utility on Linux/Unix/macOS
* Orchestration/Integration Tools - (CICD Tools) - Jenkins, Drone, Gitlab
* "Event Driven"
* Central Management Servers - Ansible Tower

# Real World Use Cases
* Scale
* Performance
* Transactions/Error Recovery
Рекомендации по теме
Комментарии
Автор

Menu:

0:38 - What Network Automation Tools
02:56 - The NetDevOps Engineer's Tool Chest
06:42 - Network Service and Configuration Management tools
10:36 - Where to start - Netmiko
12:55 - Genie CLI
15:00 - Ansible
20:20 - Domain Specific Language
22:14 - Python vs Ansible
24:08 - Napalm + Nornir
27:15 - Issues with Napalm and Netmiko
28:19 - Real World Use Cases of network automation tools
30:02 - pyATS & Paramiko
33:49 - pyATS & Genie
41:04 - DIFF
42:54 - How to schedule Network Automation
45:06 - Do Network Engineers need to learn Linux? Bash?
49:07 - Is Ansible Linux based?
50:15 - Other core skills needed today for Network Engineers
52:22 - Other Resources to help you
58:32 - Orchestration/Integration tools
59:33 - What is CICD?
1:04:00 - Do I need to learn Jenkins?
1:07:40 - The future of things going?
1:09:22 - Is there a presentation that goes over all of these tools?
01:10:10 - What should I begin with as a beginner?

Links:

# Getting Started

0. Foundation "Stuff"
* Python
* Linux/bash fundamentals
* git
* REST APIs


1. CLI Based Interactions
* Python + Netmiko - Configuration Based use cases
* Genie CLI - Operation based use cases
* Parmiko - NOT RECOMMENDED - just use Netmiko


2. Network Automation Frameworks/Abstractions
* Ansible "Domain Specific Language (DSL)" - Configuration Use Cases
* NAPALM + Python - Configuration Use Cases
* Nornir + Python - Configuration Use Cases


3. Network Verification
* pyATS/Genie + Python - Operational / Testing Use Cases
* For every BGP neighbor, ensure prefixes being learned
* For every "up interface", ensure no CRC errors
* "Profile" before change, Change, "Profile" after, DIFF


Other Skills/Questions

1. How to schedule "stuff"
* Run a Python script every hour - cron utility on Linux/Unix/macOS
* Orchestration/Integration Tools - (CICD Tools) - Jenkins, Drone, Gitlab
* "Event Driven"
* Central Management Servers - Ansible Tower




# Real World Use Cases

* Scale
* Performance
* Transactions/Error Recovery

davidbombal
Автор

Wow, the amount of great stuff discussed here. Can't thank both of you enough. God bless you guys, this is fun and super motivational.

jairusan
Автор

As always great content sir David!
I kindly suggest that at every beginning of the video, you include a roadmap of which branch of IT the video is about. like DevOps/ System/ Cloud/ Security .etc or just pure R&S.
Because as a fresh CCNA, I'm overwhelmed with this stuffs and I don't know where should I start. But my guts says I should go in with security.
Thanks for sharing & may God bless you more!

MichaelVega-cqfr
Автор

I use NAPALM for Operational/Testing use cases as well (see NAPALM getters). The advantage of NAPALM is that it abstracts you from the specific device type (i.e. the same getter function is used regardless of the target device type). You can enhance NAPALM with your own getter function if such a function is not implemented in standard NAPALM distribution. You can use NAPALM directly from a Python script or you can call NAPALM functions from an Ansible playbook or from a Nornir task (inside a python script).
Nornir allows you to run specific tasks against a subset of devices which are defined in Nornir inventory. Nornir has a lot of options how to select a subset of devices according to specific attributes. It still uses Netmiko for ssh connections but it can connect more devices in parallel and that's why the result time is much faster. You don't have to deal with parallel processing. It is implemented inside of Nornir. You just specify number of devices which can be connected in parallel. As I mentioned, Nornir has native support for NAPALM, so you can run NAPALM functions (config or operational/get) against a specific subset of devices. If you prefer to connect devices directly using Netmiko, you can do it as well.
I hope this can help someone.
David and Hank thanks for the video!

phcelych
Автор

I think netmiko in combination with Python / Jinja is a great way to start learning automation and sets you up to move towards other tools like ansible that increase scalability. Python has a bigger learning-curve but it does make subsequent learning of other tools a bit easier imo.

ARadicalCut
Автор

Nornir is fantastic for scale. I use it for my 900+ device environment.

innbydelse
Автор

Hi David,
Thanks for another great video!
Always enjoy watching your videos and lessons.
You nailed this one, "... My preference is Python..." (17:47 – 17.55)

suelee
Автор

I am always happy to see your videos David especially with Steve.
I hope if you can have a video or provide a reference discussing these tools and what can be applied on different OS versions, such as IOS, XE, XR or NXOS.
Thanks for these amazing videos and please keep it up 🙏

alshazr
Автор

This was awesome. Helped me out to understand the automation stuff. Please make a video on deploying script in production, at times I right the code with the help of Github but won't be able to deploy.

sujayjha
Автор

Ansible is by far the best tool in my opinion. Its idempotency and agent-less feature makes it superior to other tools.

afara
Автор

Thanks a lot..I know you will get recognisation you deserve very soon

abhinavmathur
Автор

Great video, discussion, links and support to help me and other like-minded individuals in or trying to get into the networking world. Thank you for everything you do, inspiration and valuable. I will be watching Steves Cisco DevNet free learning videos, which you have kindly provided the links for. All the best, Dave.

Disco
Автор

Obviously, LINUX mastery is the foundation to this topic....

ElreyRayo
Автор

Does containerization answer a lot of the ansible versioning problems you have experienced?
Great content as usual guys. I have used a lot of what I have learned from these videos and built full production pipelines with the tool sets not only for provisioning but for managing and testing also.

steeple
Автор

pyATS and Genie do not seem to be multi-vendor capable yet

nkkrishnan
Автор

Thanks a lot for the video.If honestly till 43:24 video was for me so difficult to understand, The reason is never used or heard about such programs or terms. But as soon as I saw cron I said main it is going to be interesting:D Yeah I use cron in Kali Linux for my mac changer.It change it every reboot. By the way, who wants to learn Linux (hacking as well)should start with playing "Bandit" from overthewire.

elchinefa
Автор

Great channel, great content, thanks David

kenmurphy
Автор

Dear
Thanks Allot for your valuable information.
Please do one video on Cisco.
I mean in Cisco v have r&s, security etc
So,
Which one is Good to
And also mention some books for CCNA and CCNP R & S

rkmallesh
Автор

I have no prior experience in networking. But I'm going to follow this road map you guys provided to land myself a networking job. Would that do?

ktk
Автор

Will Genie work on my older ISR routers, 2800 series, or do I need ISR gen 2?

TrcRat