-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.yml
147 lines (123 loc) · 4.39 KB
/
main.yml
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
---
# builds that status.html file that shows the deployed versions
#
# get versions
#
- name: get local git tag
delegate_to: localhost
become: false
shell:
#cmd: "git name-rev --tags --name-only $(git rev-parse HEAD)"
cmd: git tag | tail -1
# fixme: hardcoded repo path, should be configurable or autodetected
chdir: ~/git/migrid/
register: result
when: migrid_update_status_deploy_version == true
- name: register tag
set_fact:
deploy_local_version: "{{ { 'deploy_local_version' : result.stdout } }}"
when: migrid_update_status_deploy_version == true
- name: get ansible-docker-migrid version
delegate_to: localhost
become: false
shell:
cmd: "ansible-galaxy collection list | grep ucphhpc.docker_migrid|cut -d' ' -f2"
chdir: ~
register: result
- name: register ansible-docker-migrid version
set_fact:
ansible_docker_migrid_version: "{{ { 'ansible_docker_migrid_version' : result.stdout } }}"
when: result.rc==0
- name: register dockerfile version
set_fact:
migrid_dockerfile_version: "{{ { 'dockerfile_version' : migrid_container_type } }}"
- name: register docker-migrid repository version
set_fact:
ansible_docker_migrid_repository_version: "{{ { 'ansible_docker_migrid_repository_version' : migrid_docker_repository_version | default('master') } }}"
#-------------------------------
#do container check and start
#FIXME: Can we do container check, start and stop a better way?
#-------------------------------
- name: Get infos on container
community.docker.docker_container_info:
name: migrid
register: migrid_container
- name: Running docker-compose up if needed
community.docker.docker_compose:
profiles: "{{ migrid_start_containers_profiles | default(omit) }}"
project_src: "{{ migrid_root }}"
services:
- migrid
build: false
recreate: always
when: not migrid_container.exists
- name: get openidc version
shell:
cmd: "docker exec migrid rpm -q mod_auth_openidc"
chdir: "{{ migrid_root }}"
register: result
#-------------------------------
#stop container again
#-------------------------------
- name: Stopping containers if it was not already started before this role
community.docker.docker_compose:
project_src: "{{ migrid_root }}"
services:
- migrid
build: false
state: absent
stopped: true
when: not migrid_container.exists
- name: register openid version
set_fact:
ansible_openidc_version: "{{ { 'ansible_openidc_version' : result.stdout } }}"
#
# get values from env file
#
- name: get deployed migrid version
shell:
cmd: grep ^MIG_GIT_REV {{ migrid_root }}/.env
ignore_errors: true
register: result
- name: register deployed migrid version
set_fact:
migrid_git_rev: "{{ { result.stdout.split('=')[0]:result.stdout.split('=')[1] } }}"
when: result.rc==0
- name: get WITH_GIT from env file
shell:
cmd: grep ^WITH_GIT {{ migrid_root }}/.env
register: result
- name: register WITH_GIT
set_fact:
migrid_with_git: "{{ { result.stdout.split('=')[0]:result.stdout.split('=')[1] } }}"
when: result.rc==0
- name: get MIG_GIT_BRANCH from env file
shell:
cmd: grep ^MIG_GIT_BRANCH {{ migrid_root }}/.env
register: result
- name: register migrid git branch
set_fact:
migrid_git_branch: "{{ { result.stdout.split('=')[0]:result.stdout.split('=')[1] } }}"
when: result.rc==0
- name: get PREFER_PYTHON3 from env file
shell:
cmd: grep ^PREFER_PYTHON3 {{ migrid_root }}/.env
register: result
- name: register migrid perfer python3
set_fact:
migrid_perfer_python3: "{{ { result.stdout.split('=')[0]:result.stdout.split('=')[1] } }}"
when: result.rc==0
- name: get ENABLE_GDP from env file
shell:
cmd: grep ^ENABLE_GDP {{ migrid_root }}/.env
register: result
- name: register enable gdp
set_fact:
migrid_enable_gdp: "{{ { result.stdout.split('=')[0]:result.stdout.split('=')[1] } }}"
when: result.rc==0
- name: update status.html
copy:
content: "{{ deploy_local_version | combine(ansible_docker_migrid_version) | combine(migrid_dockerfile_version) | combine(ansible_docker_migrid_repository_version) | combine(ansible_openidc_version) | combine(migrid_git_rev) | combine(migrid_with_git) | combine(migrid_git_branch) | combine(migrid_perfer_python3) | combine(migrid_enable_gdp) | to_json }}"
dest: "{{ migrid_state_directory }}/wwwpublic/status.html"
owner: "{{ migrid_user }}"
group: "{{ migrid_user }}"