ansible-role-apache/lamp_haproxy/rolling_update.yml

49 lines
1.6 KiB
YAML
Raw Normal View History

2013-03-12 17:35:25 +01:00
---
# 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: monitoring
2013-10-11 18:33:59 +02:00
tasks: []
2013-03-12 17:35:25 +01:00
- hosts: webservers
user: root
serial: 1
# These are the tasks to run before applying updates:
pre_tasks:
2013-04-17 04:41:43 +02:00
- name: disable nagios alerts for this host webserver service
nagios: action=disable_alerts host={{ inventory_hostname }} services=webserver
2013-05-07 05:03:39 +02:00
delegate_to: "{{ item }}"
with_items: groups.monitoring
- name: disable the server in haproxy
shell: echo "disable server myapplb/{{ inventory_hostname }}" | socat stdio /var/lib/haproxy/stats
2013-05-07 05:03:39 +02:00
delegate_to: "{{ item }}"
with_items: groups.lbservers
roles:
- common
- base-apache
- web
# These tasks run after the roles:
post_tasks:
- name: Wait for webserver to come up
2014-05-27 21:31:48 +02:00
wait_for: host={{ inventory_hostname }} port=80 state=started timeout=80
- name: Enable the server in haproxy
shell: echo "enable server myapplb/{{ inventory_hostname }}" | socat stdio /var/lib/haproxy/stats
2013-05-07 05:03:39 +02:00
delegate_to: "{{ item }}"
with_items: groups.lbservers
- name: re-enable nagios alerts
nagios: action=enable_alerts host={{ inventory_hostname }} services=webserver
2013-05-07 05:03:39 +02:00
delegate_to: "{{ item }}"
with_items: groups.monitoring