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 installhttpd
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 127.0.0.1 with
all the server’s facts. Using Ansible we can just copy that intoindex.html
.ansible localhost -m copy -a "src=/tmp/facts/127.0.0.1 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.