How Do You Install Katello (and Foreman) on a Linux Server?

Problem scenario
You have heard of a Foreman plugin called Katello that supports Red Hat subscription and repository management. Katello supports other plugins such as Pulp (for downloading content) and Candlepin (for managing the meta aspects of the subscriptions themselves). How do you install Katello?

Solution
Warning 1: This works for CentOS. It may work for Fedora.

What Do You Do when an Ansible Playbook is Not Getting a Variable Assigned Properly?

Problem scenario
Ansible variables are not being picked up when the playbook runs. You may get no errors, or you may get errors like these:

“ERROR! Syntax Error while loading YAML…did not find expected key”

“ERROR! no action detected in task. This often indicates a misspelled module name, or incorrect module path”

What should you do?

Possible Solution #1
Are you using the -i flag when you are running the command to execute the playbook?

How Do You Install Molecule on an Ubuntu 18.x Linux Server?

Problem scenario
You want to use Molecule to test Ansible roles. How do you install Molecule on Ubuntu 18.x with Python 3?

Solution
Prerequisites
i. You must have Docker installed. If you need assistance see this posting.
ii. You must have pip3 installed on the Docker host. sudo apt-get install -y python3-pip

Procedures
1.

How Do You Get an Ansible Variable to Not Add Single Quotes or Brackets when the Variable Is Substituted?

Problem scenario
You are using an Ansible-supported method of a variable in a playbook. This variable will substitute a string or line number that the playbook is run on with the IP address of the host. You notice that this substitution includes an opening-and-closing single quote mark “‘” and a pair of opening-and-closing brackets “[]”. That is, single quotes and brackets are being introduced into the string you want to build with the Ansible playbook.

How Do You Troubleshoot This Ansible Message “module_stderr…Shared connection to server closed. [Errno 13] Permission denied…MODULE FAILURE”?

Problem scenario
You try to run an Ansible playbook, but you get this problem:

“module_stderr…Shared connection to server closed. [Errno 13] Permission denied…MODULE FAILURE”

How do you fix it?

Solution
Is the Ansible playbook configuring the mode settings to not allow other users to execute the file? It could be that lower in the Ansible playbook, after the file is protected from other users executing it,

How Do You Write an Ansible Playbook to Retrieve Files from a Directory Relative to where the .YAML File Is?

Problem scenario
You want to refer to files in a subdirectory of the parent directory that houses your Ansible playbook. You have Git repositories with .yaml files and subdirectories. You want the Git repo to be transferred to a variety of different servers. The absolute path to the directory where the files are will vary. How do you have a variable or relative path reference in the playbook so as long as the directory structure is in place,

How Do You Troubleshoot the Ansible Playbook Error Associated with “[Errno 2] No such file or directory”?

Problem scenario
When running an Ansible playbook using the java_cert module you receive an message “[Errno 2] No such file or directory”. How do you fix this?
(If you were using a file linking step in the playbook and not the java_cert module, see this posting.)

Solution
Use the “executable” attribute of the java_certs module (https://docs.ansible.com/ansible/latest/modules/java_cert_module.html) to specify the full path of the keytool file.

How Do You Troubleshoot the Ansible Error “directory was skipped as it does not seem to be a valid directory or it cannot be accessed”?

Problem scenario
You are using Ansible’s find module.  You want it to find the destination of a symbolic link.  When you run the playbook you have a way of finding what the find module returns.  It is saying something about “directory was skipped as it does not seem to be a valid directory or it cannot be accessed.”  What should you do?

Solution
Use the stat module. 

How Do You Find the Data Type of a Variable in an Ansible Playbook?

Problem scenario
Through the register keyword you assign a variable.  You want to know what variable type it is (e.g., a string, a dictionary or a JSON).  You know the data type is not a Boolean.  What do you do?

Solution
If you have a variable (e.g., foobar) and you want to know what data type it is, do this:

debug:
  msg:
when:  foobar.stdout == “”

The playbook will tell you if foobar is a dictionary with an error.