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.
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
httpdwe’re going to use Ansible.
ansible localhost -m yum -a "name=httpd state=present" --become
We need to use the
--becomeflag 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 into
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
/var/www/htmlisn’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
--becomebecause only root can start a service.