summaryrefslogtreecommitdiffstats
path: root/playbooks/manual/upgrade/datanommer.yml
blob: 773cdfe0c2aea236863c61f96d5edbbc5a384445 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
- name: push packages out
  hosts:
  - badges-backend
  - badges-backend-stg
  - datagrepper
  - datagrepper-stg
  - notifs-web
  - notifs-web-stg
  - busgateway
  - busgateway-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 datanommer packages from main repo
    yum: name="*datanommer*" state=latest
    when: not testing
  - name: yum update datanommer packages from testing repo
    yum: name="*datanommer*" state=latest enablerepo=infrastructure-testing
    when: testing

- name: verify the badges backend and stop it
  hosts: badges-backend:badges-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
    nagios: action=downtime minutes=120 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true
  roles:
  - badges/backend
  tasks:
  - service: name="fedmsg-hub" state=stopped

- name: verify the datagrepper frontend and stop it
  hosts: datagrepper:datagrepper-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
    nagios: action=downtime minutes=120 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true
  roles:
  - datagrepper
  tasks:
  - service: name="httpd" state=stopped

- name: verify the notifs 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
    nagios: action=downtime minutes=120 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true
  roles:
  - notifs/frontend
  tasks:
  - service: name="httpd" state=stopped

- name: verify the datanommer backend, stop it, and then upgrade the db
  hosts: busgateway:busgateway-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
    nagios: action=downtime minutes=120 service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true
  roles:
  - fedmsg/datanommer
  tasks:
  - name: Stop the notification backend
    service: name="fedmsg-hub" state=stopped

  - name: Upgrade the database
    command: /usr/bin/alembic -c /usr/share/datanommer.models/alembic.ini upgrade head
    args:
      chdir: /usr/share/datanommer.models/
    async: 20000
    poll: 60

  - name: And... start the backend again
    service: name="fedmsg-hub" state=started

  post_tasks:
  - name: tell nagios to unshush
    nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true

- name: restart the frontend pieces (fmn.web and datagrepper)
  hosts:
  - datagrepper
  - datagrepper-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
  tasks:
  - service: name="httpd" state=started
  post_tasks:
  - name: tell nagios to unshush
    nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true

- name: restart the last backend piece (badges)
  hosts:
  - badges-backend
  - badges-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
  tasks:
  - service: name="fedmsg-hub" state=started
  post_tasks:
  - name: tell nagios to unshush
    nagios: action=unsilence service=host host={{ inventory_hostname_short }}{{ env_suffix }}
    delegate_to: noc01.phx2.fedoraproject.org
    ignore_errors: true