Network DevOps with Ansible, git and Travis CI
Published by Pearson
Create a Complete Network DevOps Project
- Learn how to jointly leverage automation, version control, and CI solutions
- Get the big picture and focus on how to better integrate technologies
- Extensive hands-on code reviews, including troubleshooting and improvisation
Learn by doing with this hands-on, exercise-focused training. Network DevOps with Ansible, git and Travis CI will start from ground zero with a brief theoretical summary of Lean Production and the Theory of Constraints (TOC), and build toward you creating a complete Network DevOps solution. Learn to use Ansible for network automation, git/GitHub for source code version control, and Travis CI for automated testing. Through first-hand demonstrations on live devices, expert trainer and author Nick Russo will show you how to create your own projects by highlighting best practices and a streamlined approach.
This course will touch upon enough Ansible, git, and Travis CI to create a full and useful solution, but the course will focus on the integration of these disparate technologies. This is far more important than mastery of the individual technologies alone. We won't be digging deep into Ansible, git, GitHub, or Travis CI; rather, the course will explore each one in the context of the course project. By comprehensively demonstrating how these tools work together, you'll learn how to apply practical network DevOps principles to your environment. This course is designed for technically competent people who are new to the concept of Network DevOps.
What you’ll learn and how you can apply it
- Core concepts of Lean Production and the Theory of Constraints (TOC)
- The purpose and business relevance of Network DevOps
- How to adapt our model/template project to suit your business needs
And you’ll be able to:
- Build simple network automation playbooks in Ansible
- Apply version control to your source code using git and GitHub
- Automatically test the solution when the source code changes using Travis CI
This live event is for you because...
- You are new to Network DevOps and are technically competent overall
- You need to deploy network services faster, at lower cost, and with higher quality
- You are an IT operator or software developer who wants to broaden your understanding of the DevOps landscape
Prerequisites
- No prior experience with Ansible, git, GitHub, or Travis CI is needed; however, it is beneficial.
- Basic Linux knowledge, such as shell familiarity, text editing, and managing SSH keys. Advanced Linux skills (disk partitioning, networking, administration, etc.) are not required.
Course Set-up:
- A computer (ideally Linux) with Python 3.7 or newer installed. The author will be using Python 3.10.
- If you would like to perform the labs in this course, you should have a computer with Internet access while also having access to your lab equipment. If you choose to participate, you’ll need (2) Cisco IOS/IOS-XE devices on any version that are accessible via SSH. This level of participation is entirely optional.
- Your IDE of choice or a simple text editor. The author will be using vim.
- Participants are encouraged to clone the git repository
Recommended Preparation:
- Watch: Linux Fundamentals, 2nd Edition by Sander van Vugt (video)
- Attend: A Practical Introduction to DevOps by Chris Jackson
- Watch: DevOps Key Concepts by Donna Knapp (video)
Recommended Follow-up:
- Watch: Ansible: From Basics to Guru by Sander van Vugt (video) https://www.oreilly.com/videos/ansible-from-basics/9780137894949/
- Watch: Git Essential LiveLessons by Daniel Y. Chen (video)
- Watch: Continuous Delivery by Jez Humble (video)
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
Segment 1: Lean and Theory of Constraints (TOC) (10 minutes)
- The five Lean principles
- The five TOC focusing steps
- What they have in common (spoiler: it’s a lot) and why it matters
Segment 2: Technical Overview (25 minutes)
- Brief overview of Ansible, git, and Travis CI as individual tools
- Discussion of how the tools fit together to solve our problem
- Review the course project and measure attendee experience
- Break (5 minutes)
Segment 3: Develop Infrastructure as Code (IAC) Project using Ansible (55 minutes)
- Initial Ansible installation, including the required “collections”
- Modify configuration on cloud-hosted Cisco routers
- Demonstrate the concept of idempotence
- Add runtime input validation for improved robustness
- Break (10 minutes)
Segment 4: Controlling your Source Code with git and GitHub (50 minutes)
- Repository initialization and basic operations
- Time travel to discard or reintroduce changes
- Local branching and merging operations
- Integrating local and remote repositories (GitHub)
- Pull requests and remote branching/merging operations
- Break (10 minutes)
Segment 5: Adding Structured Tests (35 minutes)
- Apply linting to check for syntax and styling errors
- Conduct a dry run before modifying configurations
- Utilize a test playbook to ensure the IAC solution works correctly
Segment 6: Continuous Integration with Travis CI (35 minutes)
- Integrate GitHub and Travis to implement CI
- Creation and customization of the Travis CI build file
- Extensive testing of the integrated solution
- Adjusting minor Travis CI options
Q&A, course wrap-up, and assignment of optional homework (5 minutes)
Your Instructor
Nicholas Russo
Nicholas Russo holds a Bachelor’s of Science in Computer Science from the Rochester Institute of Technology (RIT). His primary programming experience is in C# and Java, but has been programming almost exclusively in Ansible and Python over the past several years. Nick’s day job is an automation-focused network engineer, but he loves teaching others about technology. Nick lives in Maryland, USA with his wife, Carla, and daughters, Olivia and Josephine.