We will start this course by introducing you to the role of automation,
why we need to automate, and the main components of Ansible automation.
We will then go into the details of Ansible
connectivity and the ways it can be enhanced.
We will further deep dive into the use case of variables and where
they can be defined, such as the inventory and playbooks. Variables
can be defined in a number of ways, such as with a user and also
discovered, known as Ansible facts.
We will then discuss some advanced features, such as task conditionality,
playbook modularity, and the use case of data manipulation Ansible, along with
filters and plugins. There will be many demos throughout this course ranging
from the basics of getting started with Ansible to some of the more advanced
use cases with filtering. In this module,
we will start by addressing the challenging landscape that Ansible
overcomes. In large, complex environments, that can be difficult to
manage and maintain. Configuration drift is a problem.
We will then discuss the Ansible architecture, along with its main
components. I will then go into the details of Ansible connectivity,
along with some best practices and security alerts.
We will also discuss the main Ansible building blocks, such as modules,
the inventory, playbooks, and ad hoc commands.
There will be four demos ranging from getting started with
Ansible to playbooks and variable substitution.
Nowadays, it's common to deploy applications by combining multiple
services that run in a distributed set of resources.
As a result, there's a lot more complexity to the configuration
and maintenance than what we had in the past.
So you have two options. You can connect all of these services by, for example,
spinning up the servers, manually installing the necessary packages,
then SSH into each one of them, or you can go down the path of
automation, in particular, automation with Ansible. So let me put it to
you this way. If you are configuring manually,
you will likely be maintaining all of these settings manually too.
Or more importantly, what about mitigating vulnerabilities
and determining what patches or packages are installed in
large and complex environments?
With the manual approach,
how can you be sure that all your servers are patched and secured?
Manipulating configuration files by hand is tedious and will be error
prone, not to mention time consuming. Equally, performing pattern
matching to make changes to existing files is risky.
The manual approach will result in configuration drift where some
servers will drift from their desired state.
Configuration drift is caused by inconsistent
configuration items across devices,
usually due to manual changes and updates and by not
following the path of automation.
Ansible is all about maintaining the desired state.