From 053582b6c76b29b655149b671bde6162c1eba62c Mon Sep 17 00:00:00 2001 From: Ralph Bean Date: Thu, 5 Nov 2015 15:52:06 +0000 Subject: [PATCH] Add a statscache upgrade playbook. --- playbooks/manual/upgrade/statscache.yml | 100 ++++++++++++++++++++++++ 1 file changed, 100 insertions(+) create mode 100644 playbooks/manual/upgrade/statscache.yml diff --git a/playbooks/manual/upgrade/statscache.yml b/playbooks/manual/upgrade/statscache.yml new file mode 100644 index 0000000000..bb24358a80 --- /dev/null +++ b/playbooks/manual/upgrade/statscache.yml @@ -0,0 +1,100 @@ +- name: push packages out + hosts: statscache-backend;statscache-backend-stg;statscache-web;statscache-web-stg + user: root + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + vars: + testing: False + handlers: + - include: "{{ handlers }}/restart_services.yml" + + tasks: + - name: clean all metadata {%if testing%}(with infrastructure-testing on){%endif%} + command: yum clean all {%if testing%} --enablerepo=infrastructure-testing {%endif%} + always_run: yes + - name: yum update statscache packages from main repo + yum: name="statscache*" state=latest + when: not testing + - name: yum update statscache packages from testing repo + yum: name="statscache*" state=latest enablerepo=infrastructure-testing + when: testing + +- name: verify the frontend and stop it + hosts: statscache-web;statscache-web-stg + user: root + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + handlers: + - include: "{{ handlers }}/restart_services.yml" + + pre_tasks: + - name: tell nagios to shush w.r.t. the frontend + nagios: action=downtime minutes=15 service=host host={{ inventory_hostname_short }}{{ env_suffix }} + delegate_to: noc01.phx2.fedoraproject.org + ignore_errors: true + + roles: + - statscache/frontend + + post_tasks: + - service: name="httpd" state=stopped + +- name: verify the backend, stop it, and then upgrade the db + hosts: statscache-backend;statscache-backend-stg + user: root + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + handlers: + - include: "{{ handlers }}/restart_services.yml" + + pre_tasks: + - name: tell nagios to shush w.r.t. the backend + nagios: action=downtime minutes=15 service=host host={{ inventory_hostname_short }}{{ env_suffix }} + delegate_to: noc01.phx2.fedoraproject.org + ignore_errors: true + + roles: + - statscache/backend + + tasks: + - name: Stop the statscache backend + service: name="fedmsg-hub" state=stopped + + #- name: Upgrade the database + # command: /usr/bin/alembic -c /usr/share/statscache/alembic.ini upgrade head + # args: + # chdir: /usr/share/statscache/ + + - name: And... start the backend again + service: name="fedmsg-hub" state=started + + post_tasks: + - name: tell nagios to unshush w.r.t. the backend + nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }} + delegate_to: noc01.phx2.fedoraproject.org + ignore_errors: true + +- name: restart the frontend + hosts: statscache-web;statscache-web-stg + user: root + vars_files: + - /srv/web/infra/ansible/vars/global.yml + - "/srv/private/ansible/vars.yml" + - /srv/web/infra/ansible/vars/{{ ansible_distribution }}.yml + handlers: + - include: "{{ handlers }}/restart_services.yml" + + tasks: + - service: name="httpd" state=started + + post_tasks: + - name: tell nagios to unshush w.r.t. the frontend + nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }} + delegate_to: noc01.phx2.fedoraproject.org + ignore_errors: true