Network automation and devops resources


>>> import this
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!

GIT & GITHUB

This course is for developers and system administrators who want to really understand Git. Whether you just started using Git, or you've been using it every day for months - this course will give you the knowledge you need to become a Git master.

https://app.pluralsight.com/library/courses/how-git-works/table-of-contents

If you already have some experience with Git, then this is the training that will make you an expert. From a deep look at the fundamental commands, to the design of a distributed workflow, this training gives you a full overview of the Git toolset.

https://app.pluralsight.com/courses/mastering-git

Got 15 minutes and want to learn Git?

https://try.github.io/levels/1/challenges/1

On Demand Training. You’re in control. We’re with you along the way.

https://github.github.com/on-demand/

While there is nothing really shocking new to this branching model, the “big picture” figure that this post began with has turned out to be tremendously useful in our projects. It forms an elegant mental model that is easy to comprehend and allows team members to develop a shared understanding of the branching and releasing processes.

http://nvie.com/posts/a-successful-git-branching-model/

Learn Git Version Control using Interactive Browser-Based Labs

https://www.katacoda.com/courses/git

PYTHON

Automation is the new skillset that network engineers need to pick up. Much like sysadmins have had to learn how to use new tools like Chef and Puppet, network engineers are learning that they just can't do things manually anymore.

https://www.safaribooksonline.com/library/view/network-programmability-and/9781491931240/

Ok, so python is this thing called a programming language. It takes text that you’ve written (usually referred to as code), turns it into instructions for your computer, and runs those instructions. We’ll be learning how to write code to do cool and useful stuff. No longer will you be bound to use others’ programs to do things with your computer - you can make your own!

http://opentechschool.github.io/python-beginners/en/index.html

Python Fundamentals gets you started with Python, a dynamic language popular for web development, big data, science, and scripting.

https://app.pluralsight.com/library/courses/python-fundamentals/table-of-contents

Welcome to Google's Python Class -- this is a free class for people with a little bit of programming experience who want to learn Python. The class includes written materials, lecture videos, and lots of code exercises to practice Python coding.

https://developers.google.com/edu/python/

Sharpen your skills. Challenge yourself on kata, created by the community to strengthen different skills. Master your current language of choice, or expand your understanding of a new one.

http://www.codewars.com/?language=python

We’ll give you a personalized Learning Plan with the recommended key skills to master. You’ll be able to track your progress against this plan, and add courses whenever you decide you want to learn something new!

https://www.codecademy.com/learn/python

My name is Kirk Byers. I am a CCIE (emeritus) in routing and switching and have extensive Python experience. Since 2014, I have been teaching Python and Ansible to network engineers. I also wrote the Netmiko Python library and contributed the IOS driver to NAPALM.

https://pynet.twb-tech.com

Welcome to the 3rd Edition of Learn Python the Hard Way.

https://learnpythonthehardway.org/book/

A style guide is about consistency. Consistency with this style guide is important. Consistency within a project is more important. Consistency within one module or function is the most important.

https://www.python.org/dev/peps/pep-0008/

How To Make Friends And Influence APIs

https://realpython.com/blog/python/api-integration-in-python

ANSIBLE

What will I learn in this tutorial? You will learn how to use Ansible to configure a Linux host.

https://www.katacoda.com/jonatanblue/scenarios/1

Here I'll show how easy it is to get started with Ansible. We'll start basic and then add in more features as we improve upon our configurations.

https://serversforhackers.com/an-ansible-tutorial

This course will show you how to get started with automation and orchestration using the open-source tool Ansible version 1.x. Many hands-on demos are included to show how to implement your automation tasks.

https://app.pluralsight.com/library/courses/hands-on-ansible/table-of-contents

Most of the time there is no need to create a custom module. However, sometimes it's the best (or even only way) to interact with a certain piece of software.

http://blog.toast38coza.me/custom-ansible-module-hello-world/

In this article, I will show you how to use Ansible to generate network device configurations based on a template and a variables file.

https://pynet.twb-tech.com/blog/ansible/ansible-cfg-template.html

VXLAN Programmable Fabric for NX-OS with Ansible

https://www.youtube.com/watch?v=M-Rts20kpnc

Using Ansible for Configuration Management and Deployments

https://linuxacademy.com/devops/training/course/name/using-ansible-for-configuration-management-and-deployments

A complete guide to configuration management and orchestration with Ansible.

https://www.udemy.com/mastering-ansible/

Learn the basics of Ansible automation and configuration management, and more

https://www.redhat.com/en/services/training/do007-ansible-essentials-simplicity-automation-technical-overview?sc_cid=70160000001202aAAA

DOCKER

Learn Docker & Containers using Interactive Browser-Based Labs

https://www.katacoda.com/courses/docker

Learn Docker Orchestration using Interactive Browser-Based Labs, Understand real world patterns and approaches in a live environment without any downloads or configuration

https://www.katacoda.com/courses/docker-orchestration

This course will get learners quickly up to speed with the fundamentals of Docker and containers. The course includes major new features introduced in Docker 1.12, including Swarm mode, services, and stacks.

https://www.pluralsight.com/courses/docker-getting-started

BASH

This course introduces you to the basic concepts and commands you need to start using Bash on Linux and Mac OS X.

https://app.pluralsight.com/library/courses/introduction-bash-shell-linux-mac-os/table-of-contents

JSON, YAML, AND MARKDOWN

JSON is a syntax for storing and exchanging data.

http://www.w3schools.com/js/js_json_intro.asp

This page provides a basic overview of correct YAML syntax, which is how Ansible playbooks (our configuration management language) are expressed.

http://docs.ansible.com/ansible/YAMLSyntax.html

YAML (/ˈjæməl/, rhymes with camel) is a human-readable data serialization language.

https://en.wikipedia.org/wiki/YAML

Paste in your YAML and click "Go" - we'll tell you if it's valid or not, and give you a nice clean UTF-8 version of it.

http://www.yamllint.com/

If you have ten minutes, you can learn Markdown!

http://www.markdowntutorial.com/

TOOLS

A hackable text editor for the 21st Century

https://atom.io/

Modern software is built on APIs.

https://www.getpostman.com/

Curl is a command line tool for doing all sorts of URL manipulations and transfers, but this particular document will focus on how to use it when doing HTTP requests for fun and profit.

https://curl.haxx.se/docs/httpscripting.html

HTTPie—aitch-tee-tee-pie—is an open source CLI HTTP client that will make you smile.

https://httpie.org/

The OpenAPI Specification is an API description format or API definition language. Basically, an OpenAPI Specification file allow you to describe an API.

https://apihandyman.io/writing-openapi-swagger-specification-tutorial-part-1-introduction/

Beautify Your Terminal Experience

http://goodheads.io/2015/09/13/beautify-your-terminal-experience/