- name: push packages out hosts: notifs-backend:notifs-backend-stg:notifs-web:notifs-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_path }}/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%} check_mode: no - name: yum update FMN packages from main repo yum: name="python-fmn" state=latest when: not testing - name: yum update FMN packages from testing repo yum: pkg=python-fmn state=latest enablerepo=infrastructure-testing when: testing - name: yum update FMN packages from testing repo yum: pkg=python-fmn state=latest enablerepo=epel-testing when: env == "staging" - name: verify the frontend and stop it hosts: notifs-web:notifs-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_path }}/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: - notifs/frontend post_tasks: - service: name="httpd" state=stopped - name: verify the backend, stop it, and then upgrade the db hosts: notifs-backend:notifs-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_path }}/restart_services.yml" pre_tasks: - name: tell nagios to shush w.r.t. the backend nagios: action=downtime minutes=5 service=host host={{ inventory_hostname_short }}{{ env_suffix }} delegate_to: noc01.phx2.fedoraproject.org ignore_errors: true roles: - notifs/backend tasks: - name: Stop the notification backend service: name="fedmsg-hub" state=stopped - name: Stop the workers and backends service: name={{ item }} state=stopped with_items: - fmn-backend@1 - fmn-worker@1 - fmn-worker@2 - fmn-worker@3 - fmn-worker@4 - name: Upgrade the database command: /usr/bin/alembic -c /usr/share/fmn/alembic.ini upgrade head args: chdir: /usr/share/fmn/ - name: Re-start the workers and the backend service: name={{ item }} state=started with_items: - fmn-backend@1 - fmn-worker@1 - fmn-worker@2 - fmn-worker@3 - fmn-worker@4 - name: And... start the backend again service: name="fedmsg-hub" state=started # Don't bother unshushing the backend here. it takes a few minutes to start # up anyways, so just let the downtime expire. #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: notifs-web:notifs-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_path }}/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