feat(openproject): add deployment using docker-compose
This commit is contained in:
parent
65a256e8b5
commit
ef6da18172
@ -17,6 +17,8 @@ concise area of concern.
|
|||||||
- [`roles/jellyfin`](roles/jellyfin/README.md): Deploy [jellyfin.org](https://jellyfin.org),
|
- [`roles/jellyfin`](roles/jellyfin/README.md): Deploy [jellyfin.org](https://jellyfin.org),
|
||||||
the free software media system for streaming stored media to any device.
|
the free software media system for streaming stored media to any device.
|
||||||
|
|
||||||
|
- [`roles/openproject`](roles/openproject/README.md): Deploys an [openproject.org](https://www.openproject.org) installation using the upstream provided docker-compose setup.
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
[CNPLv7+](LICENSE.md): Cooperative Nonviolent Public License
|
[CNPLv7+](LICENSE.md): Cooperative Nonviolent Public License
|
||||||
|
6
playbooks/openproject.yml
Normal file
6
playbooks/openproject.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Install openproject
|
||||||
|
hosts: "{{ openproject_hosts | default('openproject') }}"
|
||||||
|
become: "{{ openproject_become | default(true, false) }}"
|
||||||
|
roles:
|
||||||
|
- role: finallycoffee.services.openproject
|
21
roles/openproject/README.md
Normal file
21
roles/openproject/README.md
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
# `finallycoffee.services.openproject` ansible role
|
||||||
|
|
||||||
|
Deploys [openproject](https://www.openproject.org/) using docker-compose.
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
To set configuration variables for OpenProject, set them in `openproject_compose_overrides`:
|
||||||
|
```yaml
|
||||||
|
openproject_compose_overrides:
|
||||||
|
version: "3.7"
|
||||||
|
services:
|
||||||
|
proxy:
|
||||||
|
[...]
|
||||||
|
volumes:
|
||||||
|
pgdata:
|
||||||
|
driver: local
|
||||||
|
driver_opts:
|
||||||
|
o: bind
|
||||||
|
type: none
|
||||||
|
device: /var/lib/postgresql
|
||||||
|
```
|
11
roles/openproject/defaults/main.yml
Normal file
11
roles/openproject/defaults/main.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
openproject_base_path: "/opt/openproject"
|
||||||
|
|
||||||
|
openproject_upstream_git_url: "https://github.com/opf/openproject-deploy.git"
|
||||||
|
openproject_upstream_git_branch: "stable/13"
|
||||||
|
|
||||||
|
openproject_compose_project_path: "{{ openproject_base_path }}/compose"
|
||||||
|
openproject_compose_project_name: "openproject"
|
||||||
|
openproject_compose_project_env_file: "{{ openproject_compose_project_path }}/.env"
|
||||||
|
openproject_compose_project_override_file: "{{ openproject_compose_project_path }}/docker-compose.override.yml"
|
||||||
|
openproject_compose_project_env: {}
|
39
roles/openproject/tasks/main.yml
Normal file
39
roles/openproject/tasks/main.yml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
- name: Ensure base directory '{{ openproject_base_path }}' is present
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ openproject_base_path }}"
|
||||||
|
state: directory
|
||||||
|
|
||||||
|
- name: Ensure upstream repository is cloned
|
||||||
|
ansible.builtin.git:
|
||||||
|
dest: "{{ openproject_base_path }}"
|
||||||
|
repo: "{{ openproject_upstream_git_url }}"
|
||||||
|
version: "{{ openproject_upstream_git_branch }}"
|
||||||
|
clone: true
|
||||||
|
depth: 1
|
||||||
|
|
||||||
|
- name: Ensure environment is configured
|
||||||
|
ansible.builtin.lineinfile:
|
||||||
|
line: "{{ item.key}}={{ item.value}}"
|
||||||
|
path: "{{ openproject_compose_project_env_file }}"
|
||||||
|
state: present
|
||||||
|
create: true
|
||||||
|
loop: "{{ openproject_compose_project_env | dict2items(key_name='key', value_name='value') }}"
|
||||||
|
|
||||||
|
- name: Ensure docker compose overrides are set
|
||||||
|
ansible.builtin.copy:
|
||||||
|
dest: "{{ openproject_compose_project_override_file }}"
|
||||||
|
content: "{{ openproject_compose_overrides | default({}) | to_nice_yaml }}"
|
||||||
|
|
||||||
|
- name: Ensure containers are pulled
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: "{{ openproject_compose_project_path }}"
|
||||||
|
project_name: "{{ openproject_compose_project_name }}"
|
||||||
|
pull: true
|
||||||
|
|
||||||
|
- name: Ensure services are running
|
||||||
|
community.docker.docker_compose:
|
||||||
|
project_src: "{{ openproject_compose_project_path }}"
|
||||||
|
project_name: "{{ openproject_compose_project_name }}"
|
||||||
|
state: "present"
|
||||||
|
build: false
|
Loading…
Reference in New Issue
Block a user