mission statement

Hello Network Engineer, I am glad you here. This means you’re on the right track. You realized, things are changing and if you don’t want to miss the train, you need to get into network automation. I was like you some time ago but I didn’t know what it really takes to be successful. I’d like to save you some time and hassle, so you can concentrate on your development instead of trying to jump one resource to another and figure out which path to follow. “Shall I learn Python?“, “I need to look at Ansible!“, “Is Python the right language to learn?” Sounds familiar?

My blog is useful for Network Professionals who are:

  • complete beginners in network automation
  • familiar with programming, tools and frameworks, but experienced challenges getting their ideas adopted within their organisation.

Tweet: Network Automation only works if everyone is on board. Please click to share and help to create a Movement!

This blog is about philosophy of network automation. I will show you – based on my experience – non-trivial, but very important aspects and challenges you will face. Read the About me page to see my background.

vision-2372177_1920

Continue reading “mission statement”

Free Network Automation Coaching April/May 2018

Going the extra mile had a great impact on my career and opened new doors for me. Learning new things have been a big part of it. Many people helped me so far and I decided spend some of my time on development of others.

I am starting a 4 session one-on-one coaching plan for one Network Engineer in April 2018 to help him/her getting started in Network Automation. Read through for more details!

Continue reading “Free Network Automation Coaching April/May 2018”

Vagrant Hack for Initial Config of a Junos Virtual Device

I don’t tend to publish technical tutorials as other awesome people have written so much cool articles. This one is a note to my future-self, should I need this ever again and perhaps it’s useful for someone else, too.

Shout out to Máté Farkas for sharing his Vagrant wisdom and bash wizardry in the process.

Disclaimer: this is not a detailed guide, if you need more info on Vagrant or git, Google is your friend.

Problem

I wanted to run a Junos device in vagrant and have a simple method to give it some initial config. I cloned Juniper/vqfx10k-vagrant GitHub repo and wanted to run a virtual QFX (light version). The repo contains a few folders with different examples. Some Vagrantfiles require Ansible to set up the devices in some cases, but I didn’t want to install Ansible on my Mac. (I run Ansible normally as a Vagrant guest and I was stubborn not to install it on MacOS.)

Solution

  1. Create a init_config.txt file with the commands you’d type into CLI up the device
$ cat init_config.txt
configure
set interfaces em3 unit 0 family inet address 10.0.1.1/24
commit
exit

2. Run the following command to start the device.

$ vagrant up --provision
$ CONF=`cat init_config.txt | tr '\n' ';'`; vagrant ssh -- "${CONF}"

Done.

This gives you a VERY simple way to set up a Junos device. Of course, for more complex, templated setup, Ansible as the vagrant provisioner may be a better fit.

This may work with other devices as well, but have not tested it yet. If you have a better way to do this, feel free to share with me.

Presentations for London Network Automation Meetup #1

Just a short post here to share the slides from the first meetup held at the Clodflare office on the 21st September 2017. Recording is also going to be published!

Chris Truman: Network Automation – A Manager’s View

Csilla Bessenyei: Myths and Doubts about Network Automation

Mircea Ulinic: Event Driven Network Automation and Orchestration

Thanks for all presenters and participants, more events will be announced soon.

 

How to Save the Headache? The Magic of Automated Testing

I have spent a couple hours today writing unit tests. This is something I started doing recently and had a huge impact on my work and on my overall coding experience.

Key takeaway:

  1. Increase your confidence in your code by introducing tests.
  2. Manual testing is not efficient and not reliable.
  3. Don’t forget to run the tests regularly.
  4. Apply best practices when structuring your code.
  5. Never check in untested or broken code to Git master branch.

Continue reading “How to Save the Headache? The Magic of Automated Testing”

London Network Automation Meetup Group is Here.

About four years ago I came across the website called meetup. I was looking for a computer network related community back then – but no luck. Years went by and I became very enthusiastic about network automation. I visited the website again and could not find anything – again.

Continue reading “London Network Automation Meetup Group is Here.”

What is Network Automation?

I attended at a DevOps meetup a few weeks ago, where the presenter started with this line: “I assume you all know what DevOps is, so let’s get started to look at the challenges.” After about ten minutes, a small argument evolved and turned out everyone in the room had a different definition.

As I am keep talking about Network Automation, I think it’s time to explain what I mean by this term.

Continue reading “What is Network Automation?”

step five – the benefits of git for network engineers

We established in STEP FOUR that once you learnt coding, you need to keep doing it to get the value. It is not much different with Git either. In this article I’d like to show you a couple of examples what’s the real value of Git in my everyday life.

Key takeaway:

  • Using git is powerful.
  • Developing quality network automation tools without Git are extremely difficult.
  • Git allows you to experiment without the fear of losing the original code.
  • It’s the foundation of collaborating in open source projects, be prepared for this shift in network engineering.

Continue reading “step five – the benefits of git for network engineers”

step four – practice coding (let’s the fun begin)

At STEP TWO I advised you to complete a programming course. If you’ve done that, you should now have a ‘framework’ in you head and let’s get started with the fun part. Apply the knew knowledge and make it serve you. That’s why you started after all.

Key takeaway:

  • You learnt coding so you can solve your problems smarter. So do it!
  • If you learnt something once, it’s not enough. You need to apply and keep it fresh.
  • Expand your knowledge. You now know about strings, if statements, for loops. Look at network specific libraries, such as ipaddress, netmiko or NAPALM.
  • Slowly build up the confidence in yourself and your code.
  • Pick up a new language

Continue reading “step four – practice coding (let’s the fun begin)”

Stop Looking for the Perfect Solution

There is no such thing as perfect solution. There are many alternative solutions and some are better than others. But the most important is – any solution is better than no solution!

Key takeaway:

  • Refactoring is a good thing. It can simplify the code.
  • Getting lost in the details is time-sucking. Always have an objective when you re-write your code.
  • Don’t try to find the best solution, find one which is good enough and start using it!

Continue reading “Stop Looking for the Perfect Solution”

step three – git to know version control

Pun intended. 🙂

I picked up Git a few months ago and it took a couple of weeks to wrap my head around the concept. Git is one of those things, that once you get the feel of it, you won’t ever want to stop using. Allow me to share my experience and show you what you can get out of it.

Key takeaway:

  • Git may slow you down at the beginning, but gives you a great advantage when you start sharing and work with others.
  • Git allows a whole team working on the same project without blocking each other.
  • Git gives you the freedom to work on new things. Eliminates the risk of spending much time reverting complex changes if the original direction was not great.
  • Using Git is a must if you take network automation seriously.

Continue reading “step three – git to know version control”