Book Image

Ansible Playbook Essentials

By : Gourav Shah, GOURAV JAWAHAR SHAH
Book Image

Ansible Playbook Essentials

By: Gourav Shah, GOURAV JAWAHAR SHAH

Overview of this book

Ansible Playbook Essentials will show you how to write a blueprint of your infrastructure, encompassing multitier applications using Ansible's playbooks. Beginning with basic concepts such as plays, tasks, handlers, inventory, and YAML Ain't Markup Language (YAML) syntax that Ansible uses, you'll understand how to organize your code into a modular structure. Building on this, you will study techniques to create data-driven playbooks with variables, templates, logical constructs, and encrypted data, which will further strengthen your application skills in Ansible. Adding to this, the book will also take you through advanced clustering concepts, such as discovering topology information about other nodes in the cluster and managing multiple environments with isolated configurations. As you approach the concluding chapters, you can expect to learn about orchestrating infrastructure and deploying applications in a coordinated manner. By the end of this book, you will be able to design solutions to your automation and orchestration problems using playbooks quickly and efficiently.
Table of Contents (20 chapters)
Ansible Playbook Essentials
Credits
About the Author
Acknowledgments
About the Reviewers
www.PacktPub.com
Preface
Setting Up the Learning Environment
References
Index

Creating an orchestration playbook for WordPress


We have a site-wide playbook, that is, the site.yml file that serves us to install and configure the complete WordPress stack. For updating the application with zero downtime and deploying new revisions, the site.yml file is not the ideal playbook though. We would want to follow a workflow that would involve the following steps:

  1. Update the web servers one at a time. This will avoid any downtime.

  2. Before updating, deregister the web server from the haproxy load balancer. This will stop the traffic to the web server in order to avoid downtime.

  3. Run roles related to the WordPress application, that is, Nginx, php5-fpm, and WordPress.

  4. Ensure that the web server is running and is listening to port 80.

  5. Register the server back on haproxy and start sending the traffic again.

Let's create a playbook by the name update.yml, which does the orchestration just as explained earlier and uses most of the features discussed previously in this chapter. Here is the...