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)

Working with Ansible facts

Ansible is not only used to deploy and configure remote hosts. It can be used to gather all kinds of information and facts about them. The facts collection can take significant amount of time to collect everything from a busy system, but will provide a full view of the target machine.

The facts that are gathered can be used inside the playbook later, to design a task condition. For example, we used the when clause to limit the openssh installation to only CentOS-based systems:

when: Ansible_distribution == "CentOS"

You can enable/disable fact gathering in the Ansible plays by configuring gather_facts on the same level as hosts and tasks:

- hosts: centos-servers
gather_facts: yes
tasks:
<your tasks go here>

Another way to gather facts and print them in Ansible is to use the setup module in the ad hoc mode. The returned results are...