Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ansible/ansible-examples.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lamp_haproxy/aws/rolling_update.yml')
-rw-r--r--lamp_haproxy/aws/rolling_update.yml47
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