diff options
Diffstat (limited to 'lamp_haproxy/aws/rolling_update.yml')
-rw-r--r-- | lamp_haproxy/aws/rolling_update.yml | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/lamp_haproxy/aws/rolling_update.yml b/lamp_haproxy/aws/rolling_update.yml new file mode 100644 index 0000000..722909b --- /dev/null +++ b/lamp_haproxy/aws/rolling_update.yml @@ -0,0 +1,47 @@ +--- +# This playbook does a rolling update for all webservers serially (one at a time). +# Change the value of serial: to adjust the number of server to be updated. +# +# The three roles that apply to the webserver hosts will be applied: common, +# base-apache, and web. So any changes to configuration, package updates, etc, +# will be applied as part of the rolling update process. +# + +# gather facts from monitoring nodes for iptables rules +- hosts: tag_ansible_group_monitoring + tasks: [] + +- hosts: tag_ansible_group_webservers + serial: 1 + + # These are the tasks to run before applying updates: + pre_tasks: + - name: disable nagios alerts for this host webserver service + nagios: 'action=disable_alerts host={{ inventory_hostname }} services=webserver' + delegate_to: "{{ item }}" + with_items: groups.tag_ansible_group_monitoring + + - name: disable the server in haproxy + haproxy: 'state=disabled backend=myapplb host={{ inventory_hostname }} socket=/var/lib/haproxy/stats' + delegate_to: "{{ item }}" + with_items: groups.tag_ansible_group_lbservers + + roles: + - common + - base-apache + - web + + # These tasks run after the roles: + post_tasks: + - name: wait for webserver to come up + wait_for: 'host={{ inventory_hostname }} port=80 state=started timeout=80' + + - name: enable the server in haproxy + haproxy: 'state=enabled backend=myapplb host={{ inventory_hostname }} socket=/var/lib/haproxy/stats' + delegate_to: "{{ item }}" + with_items: groups.tag_ansible_group_lbservers + + - name: re-enable nagios alerts + nagios: 'action=enable_alerts host={{ inventory_hostname }} services=webserver' + delegate_to: "{{ item }}" + with_items: groups.tag_ansible_group_monitoring |