The playbook concept is at the heart of Ansible. Writing a playbook to configure a system to the desired state is what makes this exercise so valuable to students who are wanting to get serious with Ansible. After completing this learning activity on how to configure an inventory all the way through to a mass software deployment, students will be another step closer to an official Red Hat Ansible certification.
*This course is not approved or sponsored by Red Hat.*
Learning Objectives
Successfully complete this lab by achieving the following learning objectives:
- Create an Inventory in `/home/ansible/inventory `That Contains a Host Group Named `web`. The `web` Group Should Contain `node1` and `node2`
echo "[web]" >> /home/ansible/inventory
echo "node1" >> /home/ansible/inventory
echo "node2" >> /home/ansible/inventory
- Create a Playbook in `/home/ansible/web.yml`
echo "---" >> /home/ansible/web.yml
- Configure the Playbook to Install `httpd` on the `web` Group
Using a text editor, such as vim, edit /home/ansible/web.yml to contain the following text block below the line containing "—":
- hosts: web
become: yes
tasks:- name: install httpd
yum: name=httpd state=latest
- name: install httpd
- hosts: web
- Configure the Playbook to Start and Enable the `httpd` Service on the `web` Group
Using a text editor such as vim, edit /home/ansible/web.yml to contain the following task block after the "install httpd task":
- name: start and enable httpd
service: name=httpd state=started enabled=yes
- name: start and enable httpd
- Configure the Playbook to Retrieve the Website from *http://repo.example.com/website.tgz* on Each Server in the `web` Group
Using a text editor such as vim, edit /home/ansible/web.yml to contain the following task block after the "start and enable httpd" task:
- name: retrieve website from repo
get_url: url=http://repo.example.com/website.tgz dest=/tmp/website.tgz
- name: retrieve website from repo
- Configure the Playbook to Unarchive the Website into `/var/www/html` on All Servers in the `web` Group
Using a text editor such as vim, edit /home/ansible/web.yml to contain the following task block after the "retrieve website from repo" task:
- name: install website
unarchive: remote_src=yes src=/tmp/website.tgz dest=/var/www/html/
- name: install website
- Verify the Work by Executing the Playbook Using the Inventory
ansible-playbook -i /home/ansible/inventory /home/ansible/web.yml