summaryrefslogtreecommitdiffstats
path: root/playbooks/manual/upgrade/badges.yml
blob: b09a1a0d67e12483a1f21d75b4ee9230b1cccdf5 (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
- name: push packages out to frontend
  hosts: badges-web:badges-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 tahrir/badges packages from main repo
    yum: name={{item}} state=latest
    when: not testing
    with_items:
    - python-tahrir
    - python-tahrir-api
  - name: yum update tahrir/badges packages from testing repo
    yum: name={{item}} state=latest enablerepo=infrastructure-testing
    when: testing
    with_items:
    - python-tahrir
    - python-tahrir-api

- name: push packages out to backend
  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
  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 tahrir/badges packages from main repo
    yum: name={{item}} state=latest
    when: not testing
    with_items:
    - python-fedbadges
    - python-tahrir-api
  - name: yum update tahrir/badges packages from testing repo
    yum: name={{item}} state=latest enablerepo=infrastructure-testing
    when: testing
    with_items:
    - python-fedbadges
    - python-tahrir-api

- name: verify the frontend and stop it
  hosts: badges-web:badges-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:
  - badges/frontend

  post_tasks:
  - service: name="httpd" state=stopped

- name: verify the backend, stop it, and then upgrade the db
  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 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:
  - badges/backend

  tasks:
  - name: Stop the badges backend
    service: name="fedmsg-hub" state=stopped

  - name: Upgrade the database
    command: /usr/bin/alembic -c /usr/share/tahrir_api/alembic.ini upgrade head
    args:
      chdir: /usr/share/tahrir_api/
    ignore_errors: true

  - 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: badges-web:badges-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