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:
Update the web servers one at a time. This will avoid any downtime.
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.
Run roles related to the WordPress application, that is, Nginx, php5-fpm, and WordPress.
Ensure that the web server is running and is listening to port 80.
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...