Chapter 4. Integrating Red Hat Satellite and Ansible Automation Controller You can integrate Red Hat Satellite and Ansible Automation Controller to use Satellite Server as a dynamic inventory source for Ansible Automation Controller. Ansible Automation Controller is a component of the Red Hat Ansible Automation Platform. You can also use the provisioning callback function to run playbooks on hosts managed by Satellite, from either the host or Ansible Automation Controller. When provisioning new hosts from Satellite Server, you can use the provisioning callback function to trigger playbook runs from Ansible Automation Controller. The playbook configures the host following Kickstart deployment. 4.1. Adding Satellite Server to Ansible Automation Controller as a Dynamic Inventory Item To add Satellite Server to Ansible Automation Controller as a dynamic inventory item, you must create a credential for a Satellite Server user on Ansible Automation Controller, add an Ansible Automation Controller user to the credential, and then configure an inventory source. Prerequisites If your Satellite deployment is large, for example, managing tens of thousands of hosts, using a non-admin user can negatively impact performance because of time penalties that accrue during authorization checks. For large deployments, consider using an admin user. For non-admin users, you must assign the Ansible Tower Inventory Reader role to your Satellite Server user. For more information about managing users, roles, and permission filters, see Creating and Managing Roles in Administering Red Hat Satellite . You must host your Satellite Server and Ansible Automation Controller on the same network or subnet. Procedure In the Ansible Automation Controller web UI, create a credential for your Satellite. For more information about creating credentials, see Add a New Credential and Red Hat Satellite Credentials in the Automation Controller User Guide . Table 4.1. Satellite Credentials Credential Type : Red Hat Satellite 6 Satellite URL : https:// satellite.example.com Username : The username of the Satellite user with the integration role. Password : The password of the Satellite user. Add an Ansible Automation Controller user to the new credential. For more information about adding a user to a credential, see Getting Started with Credentials in the Automation Controller User Guide . Add a new inventory. For more information, see Add a new inventory in the Automation Controller User Guide . In the new inventory, add Satellite Server as the inventory source, specifying the following inventory source options. For more information, see Add Source in the Automation Controller User Guide . Table 4.2. Inventory Source Options Source Red Hat Satellite 6 Credential The credential you create for Satellite Server. Overwrite Select Overwrite Variables Select Update on Launch Select Cache Timeout 90 Ensure that you synchronize the source that you add. 4.2. Configuring Provisioning Callback for a Host When you create hosts in Satellite, you can use Ansible Automation Controller to run playbooks to configure your newly created hosts. This is called provisioning callback in Ansible Automation Controller. The provisioning callback function triggers a playbook run from Ansible Automation Controller as part of the provisioning process. The playbook configures the host after Kickstart deployment. For more information about provisioning callbacks, see Provisioning Callbacks in the Automation Controller User Guide . In Satellite Server, the Kickstart Default and Kickstart Default Finish templates include three snippets: ansible_provisioning_callback ansible_tower_callback_script ansible_tower_callback_service You can add parameters to hosts or host groups to provide the credentials that these snippets can use to run Ansible playbooks on your newly created hosts. Prerequisites Before you can configure provisioning callbacks, you must add Satellite as a dynamic inventory in Ansible Automation Controller. For more information, see Integrating Satellite and Ansible Automation Controller . In the Ansible Automation Controller web UI, you must complete the following tasks: Create a machine credential for your new host. Ensure that you enter the same password in the credential that you plan to assign to the host that you create in Satellite. For more information, see Add a New Credential in the Automation Controller User Guide . Create a project. For more information, see Projects in the Ansible Automation Controller User Guide . Add a job template to your project. For more information, see Job Templates in the Automation Controller User Guide . In your job template, you must enable provisioning callbacks, generate the host configuration key, and note the template_ID of your job template. For more information about job templates, see Job Templates in the Automation Controller User Guide . Procedure In the Satellite web UI, navigate to Configure > Host Group . Create a host group or edit an existing host group. In the Host Group window, click the Parameters tab. Click Add Parameter . Enter the following information for each new parameter: Table 4.3. Host Parameters Name Value Description ansible_tower_provisioning true Enables Provisioning Callback. ansible_tower_fqdn controller.example.com The fully qualified domain name (FQDN) of your Ansible Automation Controller. Do not add https because this is appended by Satellite. ansible_job_template_id template_ID The ID of your provisioning template that you can find in the URL of the template: /templates/job_template/ 5 . ansible_host_config_key config_KEY The host configuration key that your job template generates in Ansible Automation Controller. Click Submit . Create a host using the host group. On the new host, enter the following command to start the ansible-callback service: On the new host, enter the following command to output the status of the ansible-callback service: Provisioning callback is configured correctly if the command returns the following output: Manual Provisioning Callback You can use the provisioning callback URL and the host configuration key from a host to call Ansible Automation Controller. For example: Ensure that you use https when you enter the provisioning callback URL. This triggers the playbook run specified in the template against the host.

Commands:
systemctl start ansible-callback
systemctl status ansible-callback
SAT_host systemd[1]: Started Provisioning callback to Ansible Automation Controller
curl -k -s --data curl --insecure --data host_config_key= my_config_key https:// controller.example.com /api/v2/job_templates/ 8 /callback/