mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-07-20 23:31:10 +02:00
79 lines
2.8 KiB
YAML
79 lines
2.8 KiB
YAML
---
|
|
- name: "Setup {{ application_id }}"
|
|
when: run_once_web_app_discourse is not defined
|
|
block:
|
|
- name: "reset (if enabled)"
|
|
include_tasks: reset.yml
|
|
when: mode_reset | bool
|
|
|
|
# Necessary for building: https://chat.openai.com/share/99d258cc-294b-4924-8eef-02fe419bb838
|
|
- name: install which
|
|
pacman:
|
|
name: which
|
|
state: present
|
|
|
|
- name: "load docker, db and proxy for {{application_id}}"
|
|
include_role:
|
|
name: cmp-db-docker-proxy
|
|
|
|
- name: pull docker repository
|
|
git:
|
|
repo: "https://github.com/discourse/discourse_docker.git"
|
|
dest: "{{docker_repository_directory }}"
|
|
update: yes
|
|
notify: recreate discourse
|
|
become: true
|
|
ignore_errors: true
|
|
|
|
- name: set chmod 700 for {{docker_repository_directory }}containers
|
|
ansible.builtin.file:
|
|
path: "{{docker_repository_directory }}/containers"
|
|
mode: '700'
|
|
state: directory
|
|
|
|
- name: "copy configuration to {{discourse_application_yml_destination}}"
|
|
template:
|
|
src: config.yml.j2
|
|
dest: "{{ discourse_application_yml_destination }}"
|
|
notify: recreate discourse
|
|
|
|
- name: "Verify that {{ discourse_container }} is running"
|
|
command: docker compose ps --filter status=running --format '{{"{{"}}.Name{{"}}"}}' | grep -x {{ discourse_container }}
|
|
register: docker_ps
|
|
changed_when: docker_ps.rc == 1
|
|
failed_when: docker_ps.rc not in [0, 1]
|
|
notify: recreate discourse
|
|
|
|
- name: flush, to recreate discourse app
|
|
meta: flush_handlers
|
|
|
|
- name: Set error string for network already exists
|
|
set_fact:
|
|
docker_discourse_already_in_net: "Error response from daemon: endpoint with name {{ discourse_container }} already exists in network {{ discourse_pg_network }}"
|
|
|
|
- name: "Connect {{ discourse_container }} to network {{ discourse_pg_network }}"
|
|
command: >
|
|
docker network connect {{ discourse_pg_network }} {{ discourse_container }}
|
|
register: network_connect
|
|
failed_when: >
|
|
network_connect.rc != 0 and
|
|
docker_discourse_already_in_net not in network_connect.stderr
|
|
changed_when: network_connect.rc == 0
|
|
when:
|
|
- applications | get_app_conf(application_id, 'features.central_database', False)
|
|
|
|
- name: "Remove {{ discourse_network }} from {{ database_host }}"
|
|
command: >
|
|
docker network disconnect {{ discourse_network }} {{ database_host }}
|
|
register: network_disconnect
|
|
failed_when: >
|
|
network_disconnect.rc != 0 and
|
|
'is not connected to network {{ discourse_network }}' not in network_disconnect.stderr
|
|
changed_when: network_disconnect.rc == 0
|
|
when:
|
|
- applications | get_app_conf(application_id, 'features.central_database', False)
|
|
|
|
- name: run the docker_discourse tasks once
|
|
set_fact:
|
|
run_once_web_app_discourse: true
|
|
when: run_once_web_app_discourse is not defined |