Chapter 1. Automation controller overview With Ansible Automation Platform users across an organization can share, vet, and manage automation content by means of a simple, powerful, and agentless technical implementation. IT managers can provide guidelines on how automation is applied to individual teams. Automation developers can write tasks that use existing knowledge, without the operational overhead of conforming to complex tools and frameworks. It is a more secure and stable foundation for deploying end-to-end automation solutions, from hybrid cloud to the edge. Ansible Automation Platform includes automation controller, which enables users to define, operate, scale, and delegate automation across their enterprise. 1.1. Real-time playbook output and exploration Automation controller enables you to watch playbooks run in real time, seeing each host as they check in. You can go back and explore the results for specific tasks and hosts in great detail, search for specific plays or hosts and see just those results, or locate errors that need to be corrected. 1.2. "Push Button" automation Automation controller enables you to access your favorite projects and re-trigger execution from the web interface. Automation controller asks for input variables, prompts for your credentials, starts and monitors jobs, and displays results and host history. 1.3. Simplified role-based access control and auditing Automation controller enables you to: Grant permissions to perform a specific task to different teams or explicit users through role-based access control (RBAC). Example tasks include viewing, creating, or modifying a file. Keep some projects private, while enabling some users to edit inventories, and others to run playbooks against certain systems, either in check (dry run) or live mode. Enable certain users to use credentials without exposing the credentials to them. Automation controller records the history of operations and who made them, including objects edited and jobs launched. If you want to give any user or team permissions to use a job template, you can assign permissions directly on the job template. Credentials are full objects in the automation controller RBAC system, and can be assigned to multiple users or teams for use. Automation controller includes an auditor type. A system-level auditor can see all aspects of the systems automation, but does not have permission to run or change automation. An auditor is useful for a service account that scrapes automation information from the REST API. Additional resources For more information about user roles, see Role-Based Access Controls . 1.4. Cloud and autoscaling flexibility Automation controller includes a powerful optional provisioning callback feature that enables nodes to request configuration on demand. This is an ideal solution for a cloud auto-scaling scenario and includes the following features: It integrates with provisioning servers like Cobbler and deals with managed systems with unpredictable uptimes. It requires no management software to be installed on remote nodes. The callback solution can be triggered by a call to curl or wget , and can be embedded in init scripts, kickstarts, or preseeds. You can control access so that only machines listed in the inventory can request configuration. 1.5. The ideal RESTful API The automation controller REST API is the ideal RESTful API for a systems management application, with all resources fully discoverable, paginated, searchable, and well modeled. A styled API browser enables API exploration from the API root at http://<server name>/api/ , showing off every resource and relation. Everything that can be done in the user interface can be done in the API. 1.6. Backup and restore Ansible Automation Platform can backup and restore your systems or systems, making it easy for you to backup and replicate your instance as required. 1.7. Ansible Galaxy integration By including an Ansible Galaxy requirements.yml file in your project directory, automation controller automatically fetches the roles your playbook needs from Galaxy, GitHub, or your local source control. For more information, see Ansible Galaxy Support . 1.8. Inventory support for OpenStack Dynamic inventory support is available for OpenStack. This enables you to target any of the virtual machines or images running in your OpenStack cloud. For more information, see Openstack . 1.9. Remote command execution Use remote command execution to perform a simple tasks, such as adding a single user, updating a single security vulnerability, or restarting a failing service. Any task that you can describe as a single Ansible play can be run on a host or group of hosts in your inventory, enabling you to manage your systems quickly and easily. Because of an RBAC engine and detailed audit logging, you know which user has completed a specific task. 1.10. System tracking You can collect facts using the fact caching feature. For more information, see Fact Caching . 1.11. Integrated notifications Keep track of the status of your automation. You can configure the following notifications: stackable notifications for job templates, projects, or entire organizations different notifications for job start, job success, job failure, and job approval (for workflow nodes) The following notification sources are supported: Email Grafana IRC Mattermost PagerDuty Rocket.Chat Slack Twilio Webhook (post to an arbitrary webhook, for integration into other tools) You can also customize notification messages for each of the preceding notification types. 1.12. Integrations Automation controller supports the following integrations: Dynamic inventory sources for Red Hat Satellite 6. For more information, see Red Hat Satellite 6 . Red Hat Insights integration, enabling Insights playbooks to be used as an Ansible Automation Platform project. For more information, see Setting up Insights Remediations . Automation hub acts as a content provider for automation controller, requiring both an automation controller deployment and an automation hub deployment running alongside each other. 1.13. Custom Virtual Environments Custom Ansible environment support enables you to have different Ansible environments and specify custom paths for different teams and jobs. 1.14. Authentication enhancements Automation controller supports: LDAP SAML token-based authentication LDAP and SAML support enable you to integrate your enterprise account information in a more flexible manner. Token-based authentication permits authentication of third-party tools and services with automation controller through integrated OAuth 2 token support. 1.15. Cluster management Run-time management of cluster groups enables configurable scaling. 1.16. Workflow enhancements To model your complex provisioning, deployment, and orchestration workflows, you can use automation controller expanded workflows in several ways: Inventory overrides for Workflows You can override an inventory across a workflow at workflow definition time, or at launch time. Automation controller enables you to define your application deployment workflows, and then re-use them in multiple environments. Convergence nodes for Workflows When modeling complex processes, you must sometimes wait for multiple steps to finish before proceeding. Automation controller workflows can replicate this; workflow steps can wait for any number of workflow steps to complete properly before proceeding. Workflow Nesting You can re-use individual workflows as components of a larger workflow. Examples include combining provisioning and application deployment workflows into a single workflow. Workflow Pause and Approval You can build workflows containing approval nodes that require user intervention. This makes it possible to pause workflows in between playbooks so that a user can give approval (or denial) for continuing on to the step in the workflow. For more information, see Workflows in automation controller 1.17. Job distribution Take a fact gathering or configuration job running across thousands of machines and divide it into slices that can be distributed across your automation controller cluster for increased reliability, faster job completion, and improved cluster use. For example, you can change a parameter across 15,000 switches at scale, or gather information across your multi-thousand-node RHEL estate. For more information, see Job Slicing . 1.18. Support for deployment in a FIPS-enabled environment Automation controller deploys and runs in restricted modes such as FIPS. 1.19. Limit the number of hosts per organization Many large organizations have instances shared among many organizations. To ensure that one organization cannot use all the licensed hosts, this feature enables superusers to set a specified upper limit on how many licensed hosts can be allocated to each organization. The automation controller algorithm factors changes in the limit for an organization and the number of total hosts across all organizations. Inventory updates fail if an inventory synchronization brings an organization out of compliance with the policy. Additionally, superusers are able to over-allocate their licenses, with a warning. 1.20. Inventory plugins The following inventory plugins are used from upstream collections: amazon.aws.aws_ec2 community.vmware.vmware_vm_inventory azure.azcollection.azure_rm google.cloud.gcp_compute theforeman.foreman.foreman openstack.cloud.openstack ovirt.ovirt.ovirt awx.awx.tower 1.21. Secret management system With a secret management system, external credentials are stored and supplied for use in automation controller so you need not provide them directly.

Commands: