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.
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.