Scheduling tools to enable the next abstraction of automation
Scheduling and automation tools enable us to automate tasks such as continuous integration and continuous delivery. They are able to do this by providing the following fairly standard services:
- A web-based UI we can use to configure them
- Usually, a REST-based API so that we can use their features programmatically
- The ability to authenticate against its local store or possibly another service (OAuth/Security Assertion Markup Language (SAML))
- They all fundamentally give us a clear way to automate tasks to suit our workflow
Most security-related automation does boil down to doing a similar task over and over again and looking at the differences. This is especially true when you are in the line of doing security operations and security assessments.
Remember that by using Ansible roles and the playbooks containing them, we are already on our way to doing security automation. Now our aim is to take away the grunt work of remembering to execute those playbooks and get going.
There are three primary contenders that are used for this kind of automation. They are listed and described here:
- Ansible Tower
- Jenkins
- Rundeck
In this chapter, we will install and configure all three tools to get you started.
Red Hat, who bought Ansible in the October 2015, has indicated that they plan to open source Ansible Tower. They made this announcement at AnsibleFest 2016. You can follow the progress of that at https://www.ansible.com/open-tower.