talas-group/04_INFRA_DEPLOIEMENT/Ansible/roles/sqlpage/tasks/main.yml
senke 66471934af Initial commit: Talas Group project management & documentation
Knowledge base of ~80+ markdown files across 14 domains (00-13),
Logseq graph, hardware design files (KiCAD), infrastructure configs,
and talas-wiki static site.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:10:41 +02:00

129 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