In this module,
we will address the key components in more detail
that make up an automation journey.
This includes the use of projects, templates, credentials, and inventories.
We will look at these in a more advanced level and examine
some of their configuration options.
Workflow templates are a big plus to Tower, and we will address
how we can daisy chain and break down advanced use cases from
multiple teams into one atomic unit.
Finally,
we will address how Tower users can assist in the
most advanced security use cases.
Tower's a platform that can sit in the middle of your security
infrastructure and assist with automation with almost all of your
security devices, including your firewalls.
There will be two demos in this module. We will address GitHub integration
with the use of personal access tokens, and there will be a demo on advanced
inventory setup. Before creating job templates,
credentials,
inventories, and everything necessary to run a playbook, Tower needs to know
where to find all the files needed for the automation job.
This is where projects come to play, and here we can implement a
lot of governance on project management. Firstly, with Ansible
Tower, we can create approvals and policy‑based actions around
automation within the project.
So in the case of Tower projects,
we may only need to read repository data, and you can do this
without granting full rights to the repository.
Many tools can help governance and create process flow using source
control and branching. Firstly, governance of playbooks with source
control management, the Tower project components supports the storage
of playbooks in almost all the major source control management
systems such as GitHub. So even if you only have two people working
on the playbook, it can be difficult to manage.
So how do you track changes across a large enterprise, and what if
someone made an error, and how do you roll back from this?
So if they're just making changes on a text editor on a local machine,
this is going to be extremely difficult to track.
So you can commit and push changes to GitHub, and you can go
back and forth to see who made that change.
So GitHub is all about version control,
so you can have multiple people on different types of
code and review and merge changes.
So it's all about managing change in your environment. So
when Ansible Tower runs a playbook,
it checks the URL that you have specifically configured in your
project. And here we can have multiple options that can enhance your
GitHub integration. With source control,
we can decide which files or versions of files to use when running
Playbooks, along with mandatory code reviews.
All of this is made possible with the project object in Tower, which provides
the configuration for connecting to a source control repository along with the
feature of branching that provides a reference point. Git branches are
effectively appointed to a snapshot of your changes.
So when you want to add a new feature or fix a bug,
you spawn a new branch to encapsulate your changes.
From the perspective of security,
you can use personal access tokens for GitHub authentication instead of just
entering your username and password credentials. Personal access tokens are
an alternative to using passwords for authenticating to GitHub, and this
will enhance your security posture.
The PAT creation option has additional granularity in permissions,
so you don't need to give more rights than needed
following the practice of least privilege.