mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2024-11-27 07:01:03 +01:00
Compare commits
3 Commits
72ee7f2fce
...
bb9daf27e5
Author | SHA1 | Date | |
---|---|---|---|
bb9daf27e5 | |||
309aaed37e | |||
7745105a23 |
@ -115,6 +115,9 @@ nginx_upstreams_directory: "{{nginx_configuration_directory}}upstreams/"
|
|||||||
enable_central_database: true
|
enable_central_database: true
|
||||||
enable_central_database_mailu: "{{enable_central_database}}"
|
enable_central_database_mailu: "{{enable_central_database}}"
|
||||||
|
|
||||||
|
### Enable Storage Optimizer for Docker Volumes
|
||||||
|
enable_system_storage_optimizer: true
|
||||||
|
|
||||||
### Domain Names for Various Services
|
### Domain Names for Various Services
|
||||||
domain_akaunting: "akaunting.{{top_domain}}"
|
domain_akaunting: "akaunting.{{top_domain}}"
|
||||||
domain_baserow: "baserow.{{top_domain}}"
|
domain_baserow: "baserow.{{top_domain}}"
|
||||||
@ -155,7 +158,7 @@ akaunting_company_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED"
|
|||||||
akaunting_setup_admin_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED"
|
akaunting_setup_admin_email: "DUMMY_VALUE_NEEDS_TO_BE_CHANGED"
|
||||||
|
|
||||||
#### Big Blue Button
|
#### Big Blue Button
|
||||||
bigbluebutton_enable_greenlight: "false"
|
bigbluebutton_enable_greenlight: "true"
|
||||||
|
|
||||||
#### Listmonk
|
#### Listmonk
|
||||||
listmonk_admin_username: "admin"
|
listmonk_admin_username: "admin"
|
||||||
|
@ -3,4 +3,4 @@
|
|||||||
become: true
|
become: true
|
||||||
roles:
|
roles:
|
||||||
- role: system-storage-optimizer
|
- role: system-storage-optimizer
|
||||||
when: path_mass_storage or path_rapid_storage
|
when: (path_mass_storage or path_rapid_storage) and enable_system_storage_optimizer | bool
|
@ -46,14 +46,23 @@
|
|||||||
state: absent
|
state: absent
|
||||||
when: mode_reset | bool and run_once_backup_docker_to_local is not defined
|
when: mode_reset | bool and run_once_backup_docker_to_local is not defined
|
||||||
|
|
||||||
|
- name: Display all database variables
|
||||||
|
debug:
|
||||||
|
msg: |
|
||||||
|
database_instance: "{{ database_instance | default('undefined') }}"
|
||||||
|
database_name: "{{ database_name | default('undefined') }}"
|
||||||
|
database_username: "{{ database_username | default('undefined') }}"
|
||||||
|
database_password: "{{ database_password | default('undefined') }}"
|
||||||
|
when: mode_verbose | bool
|
||||||
|
|
||||||
- name: seed database values
|
- name: seed database values
|
||||||
command:
|
command:
|
||||||
cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}"
|
cmd: "python database_entry_seeder.py databases.csv {{database_instance}} {{database_name}} {{database_username}} {{database_password}}"
|
||||||
chdir: "{{backup_docker_to_local_folder}}"
|
chdir: "{{backup_docker_to_local_folder}}"
|
||||||
when: >
|
when: >
|
||||||
database_host is defined or
|
database_instance is defined and
|
||||||
database_name is defined or
|
database_name is defined and
|
||||||
database_username is defined or
|
database_username is defined and
|
||||||
database_password is defined
|
database_password is defined
|
||||||
|
|
||||||
- name: Set file permissions for databases.csv to be readable, writable, and executable by root only
|
- name: Set file permissions for databases.csv to be readable, writable, and executable by root only
|
||||||
@ -63,9 +72,9 @@
|
|||||||
owner: root
|
owner: root
|
||||||
group: root
|
group: root
|
||||||
when: >
|
when: >
|
||||||
(database_host is defined or
|
(database_instance is defined and
|
||||||
database_name is defined or
|
database_name is defined and
|
||||||
database_username is defined or
|
database_username is defined and
|
||||||
database_password is defined) and
|
database_password is defined) and
|
||||||
run_once_backup_docker_to_local_file_permission is not defined
|
run_once_backup_docker_to_local_file_permission is not defined
|
||||||
register: file_permission_result
|
register: file_permission_result
|
||||||
|
@ -5,8 +5,6 @@
|
|||||||
- name: "include tasks nginx-docker-proxy-domain.yml"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -7,13 +7,12 @@ Role to deploy [BigBlueButton](https://bigbluebutton.org/).
|
|||||||
|
|
||||||
### cleanup
|
### cleanup
|
||||||
```bash
|
```bash
|
||||||
docker-compose down;
|
docker compose down -v
|
||||||
docker volume rm bigbluebutton_bigbluebutton bigbluebutton_html5-static bigbluebutton_vol-freeswitch bigbluebutton_vol-kurento bigbluebutton_vol-mediasoup bigbluebutton_database
|
|
||||||
```
|
```
|
||||||
|
|
||||||
### check container status
|
### check container status
|
||||||
```bash
|
```bash
|
||||||
watch -n 2 "docker ps -a | grep bigbluebutton"
|
watch -n 2 "docker compose ps -a"
|
||||||
```
|
```
|
||||||
|
|
||||||
### database access
|
### database access
|
||||||
|
@ -7,6 +7,31 @@
|
|||||||
COMPOSE_HTTP_TIMEOUT: 600
|
COMPOSE_HTTP_TIMEOUT: 600
|
||||||
DOCKER_CLIENT_TIMEOUT: 600
|
DOCKER_CLIENT_TIMEOUT: 600
|
||||||
listen: setup bigbluebutton
|
listen: setup bigbluebutton
|
||||||
|
|
||||||
|
- name: replace postgres bind mount by volume mount
|
||||||
|
replace:
|
||||||
|
path: "{{docker_compose_file}}"
|
||||||
|
regexp: '\./postgres-data:/var/lib/postgresql/data'
|
||||||
|
replace: 'postgres-data:/var/lib/postgresql/data'
|
||||||
|
listen: setup bigbluebutton
|
||||||
|
|
||||||
|
- name: replace greenlight bind mount by volume mount
|
||||||
|
replace:
|
||||||
|
path: "{{docker_compose_file}}"
|
||||||
|
regexp: '\./greenlight-data:/usr/src/app/storage'
|
||||||
|
replace: 'greenlight-data:/usr/src/app/storage'
|
||||||
|
listen: setup bigbluebutton
|
||||||
|
|
||||||
|
- name: add volumes to docker compose
|
||||||
|
blockinfile:
|
||||||
|
path: "{{docker_compose_file}}"
|
||||||
|
block: |2
|
||||||
|
postgres-data:
|
||||||
|
greenlight-data:
|
||||||
|
marker: "# {mark} ANSIBLE MANAGED BLOCK FOR VOLUMES"
|
||||||
|
insertafter: "html5-static:"
|
||||||
|
listen: setup bigbluebutton
|
||||||
|
|
||||||
- name: docker compose up bigbluebutton
|
- name: docker compose up bigbluebutton
|
||||||
command:
|
command:
|
||||||
cmd: docker-compose -p bigbluebutton up -d --force-recreate
|
cmd: docker-compose -p bigbluebutton up -d --force-recreate
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
---
|
---
|
||||||
- name: include docker vars
|
- name: "include docker-compose-common.yml"
|
||||||
include_vars: vars/docker-common.yml.j2
|
include_tasks: docker-compose-common.yml
|
||||||
|
|
||||||
- name: load docker compose dependencies
|
|
||||||
include_role:
|
|
||||||
name: docker-compose
|
|
||||||
|
|
||||||
- name: "include task certbot-matomo.yml"
|
- name: "include task certbot-matomo.yml"
|
||||||
include_tasks: certbot-matomo.yml
|
include_tasks: certbot-matomo.yml
|
||||||
@ -34,3 +30,24 @@
|
|||||||
- name: deploy .env
|
- name: deploy .env
|
||||||
template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
|
template: src=env.j2 dest={{docker_compose_instance_directory}}/.env
|
||||||
notify: setup bigbluebutton
|
notify: setup bigbluebutton
|
||||||
|
|
||||||
|
- name: flush docker service
|
||||||
|
meta: flush_handlers
|
||||||
|
|
||||||
|
- name: wait for database
|
||||||
|
pause:
|
||||||
|
seconds: "{{database_delay}}"
|
||||||
|
when: mode_setup | bool
|
||||||
|
|
||||||
|
- name: create admin
|
||||||
|
command:
|
||||||
|
cmd: docker compose exec greenlight bundle exec rake admin:create
|
||||||
|
chdir: "{{docker_compose_instance_directory}}"
|
||||||
|
when: mode_setup | bool
|
||||||
|
ignore_errors: true
|
||||||
|
register: admin_creation_result
|
||||||
|
|
||||||
|
- name: print admin user data
|
||||||
|
debug:
|
||||||
|
msg: "{{ admin_creation_result.stdout }}"
|
||||||
|
when: admin_creation_result is defined
|
@ -1,6 +1,6 @@
|
|||||||
server {
|
server {
|
||||||
# listen 443 ssl http2 default_server;
|
listen 443 ssl http2 default_server;
|
||||||
# listen [::]:443 ssl http2 default_server;
|
listen [::]:443 ssl http2 default_server;
|
||||||
server_name {{domain}};
|
server_name {{domain}};
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/{{domain}}/fullchain.pem;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
docker_compose_project_name: "bigbluebutton"
|
docker_compose_project_name: "bigbluebutton"
|
||||||
#database_host: "postgres" # needs to be fixed
|
docker_compose_file: "{{docker_compose_instance_directory}}/docker-compose.yml"
|
||||||
#database_name: "greenlight-v3"
|
database_instance: "bigbluebutton"
|
||||||
#database_username: "postgres"
|
database_name: "greenlight-v3"
|
||||||
#database_password: ""
|
database_username: "postgres"
|
||||||
#database_type: "postgres"
|
database_password: "{{bigbluebutton_postgresql_secret}}"
|
@ -5,7 +5,6 @@
|
|||||||
- name: "include tasks nginx-docker-proxy-domain.yml"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -5,7 +5,6 @@
|
|||||||
- name: "include tasks nginx-docker-proxy-domain.yml"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
loop_var: domain
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
@ -5,7 +5,6 @@
|
|||||||
- name: "include tasks nginx-docker-proxy-domain.yml"
|
- name: "include tasks nginx-docker-proxy-domain.yml"
|
||||||
include_tasks: nginx-docker-proxy-domain.yml
|
include_tasks: nginx-docker-proxy-domain.yml
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: "docker-compose.yml.j2"
|
src: "docker-compose.yml.j2"
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
domain: "{{element_domain}}"
|
domain: "{{element_domain}}"
|
||||||
http_port: "{{element_http_port}}"
|
http_port: "{{element_http_port}}"
|
||||||
|
|
||||||
|
|
||||||
#- name: "create {{docker_compose_instance_directory}}mautrix_whatsapp"
|
#- name: "create {{docker_compose_instance_directory}}mautrix_whatsapp"
|
||||||
# file:
|
# file:
|
||||||
# path: "{{docker_compose_instance_directory}}mautrix_whatsapp"
|
# path: "{{docker_compose_instance_directory}}mautrix_whatsapp"
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
|
dest: "{{path_docker_volumes}}nextcloud/nginx.conf"
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
|
||||||
|
|
||||||
- name: add docker-compose.yml
|
- name: add docker-compose.yml
|
||||||
template:
|
template:
|
||||||
src: docker-compose.yml.j2
|
src: docker-compose.yml.j2
|
||||||
|
@ -8,7 +8,6 @@
|
|||||||
loop_control:
|
loop_control:
|
||||||
loop_var: domain
|
loop_var: domain
|
||||||
|
|
||||||
|
|
||||||
- name: copy docker-compose.yml
|
- name: copy docker-compose.yml
|
||||||
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
template: src=docker-compose.yml.j2 dest={{docker_compose_instance_directory}}docker-compose.yml
|
||||||
notify: docker compose project setup
|
notify: docker compose project setup
|
||||||
|
@ -25,8 +25,11 @@ def start_containers(containers):
|
|||||||
run_command(f"docker start {container_list}")
|
run_command(f"docker start {container_list}")
|
||||||
|
|
||||||
def is_database(image):
|
def is_database(image):
|
||||||
databases = {"postgres", "mariadb", "redis", "memcached"}
|
databases = {"postgres", "mariadb", "redis", "memcached", "mongo"}
|
||||||
return any(database in image for database in databases)
|
# Split the string at the colon and take the first part
|
||||||
|
prefix = image.split(':')[0]
|
||||||
|
# Check if the prefix is in the database names
|
||||||
|
return prefix in databases
|
||||||
|
|
||||||
def is_symbolic_link(file_path):
|
def is_symbolic_link(file_path):
|
||||||
return os.path.islink(file_path)
|
return os.path.islink(file_path)
|
||||||
|
Loading…
Reference in New Issue
Block a user