Understand Core Components of Ansible - Modules

15 minutes
  • 4 Learning Objectives

About this Hands-on Lab

Using built-in modules is one of the ways to extract a lot Ansible’s power. In this lab, we go through managing file ownership, copying information, installing software, and managing services.

*This course is not approved or sponsored by Red Hat.*

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Collect Facts

If we’re going to populate index.html with facts from the server, we need to collect them first.

ansible localhost -m setup --tree /tmp/facts

Install Apache

Rather than using yum to install httpd we’re going to use Ansible.

ansible localhost -m yum -a "name=httpd state=present" --become

We need to use the --become flag so that Ansible knows to elevate for root priveleges.

Copy the Server’s Facts into `index.html`

If we look in the directory we used in the first task, there’s a file named with
all the server’s facts. Using Ansible we can just copy that into index.html.

ansible localhost -m copy -a "src=/tmp/facts/ dest=/var/www/html/index.html mode=0600 owner=apache group=apache" --become

We need to use --become because /var/www/html isn’t writable unless you’re the apache
or root user and we’re trying to make the file owned by someone who isn’t ansible.

Make Sure Apache is Running

We’ve installed Apache, but it isn’t running by default. Luckily we can start and manage
services with Ansible.

ansible localhost -m service -a "name=httpd state=started enabled=yes" --become

Again, we need to use --become because only root can start a service.

Additional Resources

Notice: Ansible is installed as the root user, so please work on all tasks after elevating to the root user.

We're in the midst of a proof of concept project. Now we've been tasked with making sure that Ansible can create and manipulate files, as well as install software, on a target system. We need to install httpd and create an index.html file. The contents of that file will be server's facts.

We also need to make sure all relevant services are started, and that the page is being served out. The index.html file should be owned by the apache user, have apache as the group owner, and have octal permissions of 0600.

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?