130 lines
3.5 KiB
YAML
130 lines
3.5 KiB
YAML
|
|
---
|
||
|
|
# file: roles/sqlpage/tasks/main.yml
|
||
|
|
|
||
|
|
- name: "check if /usr/local/src/sqlpage exists"
|
||
|
|
stat:
|
||
|
|
path: "/usr/local/src/sqlpage"
|
||
|
|
register: install_sqlpage
|
||
|
|
check_mode: false
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "check version of sqlpage"
|
||
|
|
slurp:
|
||
|
|
src: "/usr/local/src/sqlpage/VERSION"
|
||
|
|
register: current_version
|
||
|
|
check_mode: false
|
||
|
|
when: install_sqlpage.stat.exists
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "set fact current_version"
|
||
|
|
set_fact:
|
||
|
|
current_version: "{{ current_version['content'] | b64decode | trim }}"
|
||
|
|
when: install_sqlpage.stat.exists
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "set fact needed_version"
|
||
|
|
set_fact:
|
||
|
|
needed_version: "{{ sqlpage_version }}"
|
||
|
|
when: sqlpage_version != "latest"
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "get the latest version from github"
|
||
|
|
uri:
|
||
|
|
url: https://api.github.com/repos/lovasoa/SQLpage/tags
|
||
|
|
return_content: true
|
||
|
|
check_mode: false
|
||
|
|
register: sqlpage_github_tags
|
||
|
|
delegate_to: localhost
|
||
|
|
become: false
|
||
|
|
run_once: true
|
||
|
|
when: sqlpage_version == "latest"
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "set fact needed_version"
|
||
|
|
set_fact:
|
||
|
|
needed_version: "{{ sqlpage_github_tags.json | json_query('[0].name') }}"
|
||
|
|
when:
|
||
|
|
- sqlpage_github_tags.json is defined
|
||
|
|
- sqlpage_version == "latest"
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "do we need to update sqlpage?"
|
||
|
|
debug:
|
||
|
|
msg: "Update needed for sqlpage, from {{ current_version }} to {{ needed_version }} (use: --extra-vars '{ \"sqlpage_update_now\" : true }')"
|
||
|
|
when:
|
||
|
|
- install_sqlpage.stat.exists
|
||
|
|
- current_version != needed_version
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "install_or_update.yml"
|
||
|
|
import_tasks: install_or_update.yml
|
||
|
|
when:
|
||
|
|
- (sqlpage_update_now) or (global_update_now) or (not install_sqlpage.stat.exists)
|
||
|
|
- not install_sqlpage.stat.exists or current_version != needed_version
|
||
|
|
- not ansible_check_mode
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "for each project, check if sqlpage is installed"
|
||
|
|
stat:
|
||
|
|
path: "/srv/{{ item['name'] }}/sqlpage"
|
||
|
|
loop: "{{ sqlpage_project_list }}"
|
||
|
|
register: sqlpage_installation_state
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "for each project, deploy sqlpage if needed"
|
||
|
|
command: "rsync -a --exclude='sqlpage.json' /usr/local/src/sqlpage/ /srv/{{ item.item['name'] }}/"
|
||
|
|
loop: "{{ sqlpage_installation_state.results }}"
|
||
|
|
when: not item.stat.exists
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "sqlpage.json"
|
||
|
|
template:
|
||
|
|
src: sqlpage.json
|
||
|
|
dest: "/srv/{{ item['name'] }}/sqlpage/sqlpage.json"
|
||
|
|
loop: "{{ sqlpage_project_list }}"
|
||
|
|
register: sqlpage_json
|
||
|
|
notify: restart sqlpage@
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "env_vars"
|
||
|
|
template:
|
||
|
|
src: env_vars.j2
|
||
|
|
dest: "/srv/{{ item['name'] }}/env_vars"
|
||
|
|
loop: "{{ sqlpage_project_list }}"
|
||
|
|
when: item.environment_list is defined
|
||
|
|
register: env_vars
|
||
|
|
notify: restart sqlpage@
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "combine sqlpage_json and env_vars results"
|
||
|
|
set_fact:
|
||
|
|
combined_results: "{{ sqlpage_json.results + env_vars.results }}"
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "/etc/systemd/system/sqlpage.service"
|
||
|
|
copy:
|
||
|
|
src: "sqlpage.service"
|
||
|
|
dest: "/etc/systemd/system/sqlpage.service"
|
||
|
|
register: systemd_service_target
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "/etc/systemd/system/sqlpage@.service"
|
||
|
|
template:
|
||
|
|
src: "sqlpage@.service"
|
||
|
|
dest: "/etc/systemd/system/sqlpage@.service"
|
||
|
|
register: systemd_service
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "systemctl daemon-reload"
|
||
|
|
command: "systemctl daemon-reload"
|
||
|
|
when: systemd_service_target.changed or systemd_service.changed
|
||
|
|
tags: sqlpage
|
||
|
|
|
||
|
|
- name: "systemd enabled and started for each individual sqlpage services"
|
||
|
|
systemd:
|
||
|
|
name: "sqlpage@{{ item['name'] }}.service"
|
||
|
|
state: started
|
||
|
|
enabled: true
|
||
|
|
loop: "{{ sqlpage_project_list }}"
|
||
|
|
tags: sqlpage
|