diff --git a/playbooks/manual/upgrade/autocloud.yml b/playbooks/manual/upgrade/autocloud.yml new file mode 100644 index 0000000000..25080123cd --- /dev/null +++ b/playbooks/manual/upgrade/autocloud.yml @@ -0,0 +1,111 @@ +- name: push packages out + hosts: autocloud-backend;autocloud-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 + 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 autocloud packages from main repo + yum: name="autocloud*" state=latest + when: not testing + - name: yum update autocloud packages from testing repo + yum: name="autocloud*" state=latest enablerepo=infrastructure-testing + when: testing + - name: yum update tunir packages from main repo + yum: name="tunir*" state=latest + when: not testing + - name: yum update tunir packages from testing repo + yum: name="tunir*" state=latest enablerepo=infrastructure-testing + when: testing + +- name: verify the frontend and stop it + hosts: autocloud-web;autocloud-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: + - autocloud/frontend + + post_tasks: + - service: name="httpd" state=stopped + +- name: verify the backends, stop them, and then upgrade the db + hosts: autocloud-backend;autocloud-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: + - autocloud/backend + + tasks: + - name: Stop the fedmsg-hub backend + service: name="fedmsg-hub" state=stopped + - name: Stop the autocloud backend + service: name="autocloud" state=stopped + + - name: Upgrade the database + command: /usr/bin/alembic -c /usr/share/autocloud/alembic.ini upgrade head + args: + chdir: /usr/share/autocloud/ + when: inventory_hostname.startswith('autocloud-backend01') + + - name: And... start the autocloud backend again + service: name="autocloud" state=started + - name: And... start the fedmsg-hub 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: autocloud-web;autocloud-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