Chapter 1. Getting Started with Ansible in Satellite

Use this guide to configure Satellite to use Ansible, and then information about how to use Ansible for remote execution.

1.1. Configuring your Deployment to Run Ansible Roles

In Satellite, you can import Ansible roles to help with automation of routine tasks. Ansible is enabled by default only on Satellite.

Complete this procedure to configure your Satellite deployment to run Ansible roles.

Procedure

  1. Add the roles to the /etc/ansible/roles directory on the Satellite and all Capsules from where you want to use the roles. If you want to use custom or third party Ansible roles, ensure to configure an external version control system to synchronize roles between Satellite and Capsules.
  2. On all Capsules that you want to use to run Ansible roles on hosts, enable the Ansible plug-in:

    # satellite-installer --scenario capsule \
    --enable-foreman-proxy-plugin-ansible
  3. Distribute SSH keys to enable Capsules to connect to hosts using SSH. For more information, see Distributing SSH Keys for Remote Execution in the Managing Hosts guide. Satellite runs Ansible roles the same way it runs remote execution jobs.
  4. Import the Ansible roles into Satellite.
  5. Proceed to Using Ansible Roles to Automate Repetitive Tasks on Satellite Hosts in Configuring Satellite To Use Ansible.

1.2. Importing Ansible Roles and Variables

You can import Ansible roles and variables from the /etc/ansible/roles directory on Satellite or on a Capsule that has Ansible enabled. Ensure that the roles and variables that you import are located in the /etc/ansible/roles directory on all Capsules from where you want to use the roles. Note that if some roles are not visible, it can be because some roles take longer to import than others. .Procedure

  1. In the Satellite web UI, navigate to Configure > Roles and click the Capsule that contains the roles and variables that you want to import.
  2. Click Submit.

1.3. Overriding Ansible Variables in Satellite

If you run Ansible roles in Satellite, you can use Satellite to override Ansible variables for those roles.

Precedence in Overriding Variables

If you use an Ansible role to run a task as a user that is not the Effective User, there is a strict order of precedence for overriding Ansible variables. To ensure that the variable that you override follows the correct order of precedence, see Variable precedence: Where should I put a variable? in the Ansible User Guide.

Prerequisite

The following procedure makes reference to hosts and host groups. For more information about hosts and host groups, see the Managing Hosts guide.

Procedure

  1. In the Satellite web UI, navigate to Configure > Variables.
  2. Select the Ansible variable that you want to override and manage with Satellite.
  3. Navigate to the Default Behavior area, and select the Override check box.
  4. From the Parameter Type select the value type for validation. For example, a string or boolean variable.
  5. In the Default Value field, enter the default value that you want to use if there is no match for the variable.
  6. Optional: If you do not want to display the Ansible variable in plain text, select the Hidden Values check box to display the content of the variable as asterisks in the Satellite web UI.
  7. To save the override settings, click Submit.

To use the Ansible variable, add the variable as a parameter to your host or host group, or add the variable as a global parameter.

For a Host Group:

  1. In the Satellite web UI, navigate to Configure > Host Groups, and select the host group that you want to use.
  2. Click the Parameters tab, and in the Host Group Parameters area, click Add Parameter.
  3. In the Name field, add the Ansible variable name.
  4. From the Type list, select the type of the variable for validation.
  5. In the Value field, enter the value for the variable.

For a Host:

  1. In the Satellite web UI, navigate to Hosts > All Hosts, and on the host that you want to use, click the Edit button.
  2. Click the Parameters tab, and in the Host Parameters area, click Add Parameter.
  3. In the Name field, add the Ansible variable name.
  4. From the Type list, select the type of the variable for validation.
  5. In the Value field, enter the value for the variable.

To add as a Global Parameter:

  1. In the Satellite web UI, navigate to Configure > Global Parameters, and click Create Parameter.
  2. In the Name field, add the Ansible variable name.
  3. From the Type list, select the type of the variable for validation.
  4. In the Value field, enter the value for the variable.
  5. Optional: If you do not want to display the Ansible variable in plain text, select the Hidden Values check box to display the content of the variable as asterisks in the Satellite web UI.

1.4. Adding Red Hat Enterprise Linux System Roles

Red Hat Enterprise Linux System Roles is a configuration interface to remotely manage Red Hat Enterprise Linux servers. You can use Red Hat Enterprise Linux System Roles to add Ansible roles in Satellite. Using Ansible Roles in Satellite can make configuration faster and easier.

Support levels for some of the Red Hat Enterprise Linux System Roles might be in Technology Preview. For up-to-date information about support levels and general information about Red Hat Enterprise Linux System Roles, see Red Hat Enterprise Linux System Roles.

Before subscribing to the Extras channels, see the Red Hat Enterprise Linux Extras Product Life Cycle article.

Procedure

  1. Ensure that the rhel-7-server-extras-rpms repository is enabled.

    # subscription-manager repos --enable=rhel-7-server-extras-rpms
  2. Install the rhel-system-roles package.

    # satellite-maintain packages install rhel-system-roles

    The rhel-system-roles package downloads to /usr/share/ansible/roles/. You can view and make any modifications that you want to the files before you import.

  3. In the Satellite web UI, navigate to Configure > Roles and click the Capsule that contains the roles that you want to import.
  4. From the list of Ansible roles, select the check box of the roles you want to import, and then click Update.

You can now assign Ansible roles to hosts or host groups. For more information, see Assigning Ansible Roles to an Existing Host in Configuring Satellite to Use Ansible.

You can also add the modules contained in these roles to your Ansible playbooks by adding them to Ansible Job Templates. You must include the hosts:all line in the job template. For more information, see Red Hat Enterprise Linux (RHEL) System Roles.