Book Image

Hands-On Enterprise Automation with Python

By : Bassem Aly
Book Image

Hands-On Enterprise Automation with Python

By: Bassem Aly

Overview of this book

Hands-On Enterprise Automation with Python starts by covering the set up of a Python environment to perform automation tasks, as well as the modules, libraries, and tools you will be using. We’ll explore examples of network automation tasks using simple Python programs and Ansible. Next, we will walk you through automating administration tasks with Python Fabric, where you will learn to perform server configuration and administration, along with system administration tasks such as user management, database management, and process management. As you progress through this book, you’ll automate several testing services with Python scripts and perform automation tasks on virtual machines and cloud infrastructure with Python. In the concluding chapters, you will cover Python-based offensive security tools and learn how to automate your security tasks. By the end of this book, you will have mastered the skills of automating several system administration tasks with Python.
Table of Contents (20 chapters)

Building a golden configuration with Jinja2

Most network engineers have a text file that serves as a template for a specific device configuration. This file contains sections of network configuration with many values. When the network engineer wants to provision a new device or change its configuration, they will basically replace specific values from this file with another one to generate a new configuration.

Using Python and Ansible, later in this book we will automate this process efficiently using the Jinja2 template language (http://jinja.pocoo.org). The core concept of and driver for developing Jinja2 is to have a unified syntax across all template files for specific network/system configurations and to separate the data from the actual configuration. This allows us to use the same template multiple times but with a different set of data. Also, as shown on the Jinja2 web...