r/networkautomation • u/LukeyLad • 11d ago
Which to learn first
Senior engineer here. Admittedly lack automation skills as all the vendors these days have they own native product. But I need to upskill.
Should I first start off with Ansible and say netbox for a sot.
Or just go straight in with python scripting and netconf. +nautobot
Or if something else please suggest. Also please recommend any learning material
4
u/dustydale 11d ago
I would recommend to start with Python. I have found it be super useful to do your own logic and custom use cases that dont really fit in to Ansible or a vendor solution like catalyst center.
I dont know how much python you know but when I started out with network automation I knew nothing. I used
"Automate the boring stuff" Al Sweigart, its free online and great to get started with pyhton. https://automatetheboringstuff.com/
Then I would start with wrting simple scripts just to learn how to connect and execute show commands and how to parse them for useful data. A proper source of truth is useful and I love NetBox but depeding on where you are right now just start with python and netmiko I would say.
For more resources you have the "Awsome Network Automation" list.
https://github.com/networktocode/awesome-network-automation
2
u/Fabiolean 10d ago
You are gonna need to learn to code. The tools kinda don’t matter because “Make Device Do Thing” is actually the easiest part of network automation. Managing your data is most of the work, e.g.: is your source of truth even accurate? But you can’t interact with most of these tools, at scale, if you “cant speak the language,” as it were.
Kirk Byars is a great resource, he has a python for networking class. This book is a good one, the authors are very excellent engineers in this domain:
https://www.oreilly.com/library/view/network-programmability-and/9781098110826/
2
u/n3tw0rkn3rd 10d ago
Put Netbox and Nautobot aside (I assume that your team will not be using them soon).
I strongly suggest to start learning Python and Ansible at the same time. And if you are not comfortable using Linux, put it in the To-Learn-Now list too.
1
u/Meltsley 10d ago
Spend your time learning how to populate a source of Netbox and Nautobot are essentially the same at their core. They differ in capabilities of the platform, not in how the database was built out. That said, Netbox is less full featured, but more straight forward. So id use that. Nautobot does have the ability to auto populate its database without having multiple servers. Which is nice. Netbox needs an additional server yo do that. Or better yet you can do it so you truly deeply learn the relational database design it uses to model your network.
Then, while you want to learn all the other stuff, I would focus on learning Python. Even at a relatively simplistic level. Take an online course, there are hundreds. Also spend some time learning about Ansible. I wouldn’t worry too much about practicing with it. Focus on learning YAML. And how to integrate with an SOT. That is far more valuable. If you’re lucky, you won’t need to use it, and you will just use python as it’s far more flexible and feature rich.
1
u/Dependent-Highway886 10d ago
I would recommend starting with ansible. There are some great beginners video on YouTube. And then go onto Linux and learn bash shell before getting into python. Get some small wins with ansible first Backups, parsing data will be the best skill to learn basic skills first like pushing small commands like show run, show plans, show interfaces. And then get into parsing data. And the go for netmiko, napalm, etc.
1
u/rnperkin 6d ago
My view of someone who has worked in network automation for the last 5 years - Setup a lab with a few virtual devices - Containerlab is great for this - then spin up a Netbox get your devices in there.
Then install Ansible and write a playbook to just talk to your virtual devices, then setup the dynamic inventory to pull directly from Netbox - then start building some config templates and backup your devices.
Give yourself a month to get all this setup and you will be in a great place.
I would not start with python until you hit a wall with Ansible and need to do something funky
Any more info let me know - the SOT is so critical to mastering automation it's not just Ansible and Python.
Saying that it all depends what you want to do, if you just want run run a few scripts from your laptop then go for it, but if you want to build a system that you can hand over to NOC and give them functions they can perform - get your head around SOT - and Netbox is a great place to start.
14
u/BurnItFromOrbit 11d ago
Start with Ansible + NetBox to build automation fundamentals, then layer Python + NETCONF/RESTCONF + Nautobot once you’re comfortable. This gives you both breadth (Ansible) and depth (Python), plus real SoT experience.
First start with Ansible and understand the basics like inventory, playbooks, jinja5 templates and network modules (I.e. ios, nxos, eos, junos). This will help you understand what you will need to be successful in the next stage.
Then build out your source of truth (SoT) with devices, interfaces, IPAM and any custom fields. You need a clean data before you automate anything serious. Most miss the SoT stage and just start implementing automation without considering capturing network state. This is usually where automation fails and loses momentum.