Initial commit
This commit is contained in:
commit
168fac6b51
6
defaults/main.yml
Normal file
6
defaults/main.yml
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
image_tag: "latest"
|
||||||
|
admins: []
|
||||||
|
var_base: "/var/lib/fic"
|
||||||
|
nginx_cache_path: "/var/cache/nginx"
|
||||||
|
fic_name: "{{ current_fic }}"
|
15
meta/main.yml
Normal file
15
meta/main.yml
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
role_name: fic-server
|
||||||
|
author: 'Pierre-Olivier Mercier <nemunaire+iac@nemunai.re>'
|
||||||
|
description: Deploy the FIC server
|
||||||
|
license: GPL-3.0-or-later
|
||||||
|
min_ansible_version: 2.9
|
||||||
|
platforms:
|
||||||
|
- name: Alpine
|
||||||
|
versions:
|
||||||
|
- all
|
||||||
|
|
||||||
|
galaxy_tags: []
|
||||||
|
|
||||||
|
dependencies: []
|
237
tasks/main.yml
Normal file
237
tasks/main.yml
Normal file
@ -0,0 +1,237 @@
|
|||||||
|
---
|
||||||
|
- name: "Ensure var_base dir exists"
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ ansible_user }}"
|
||||||
|
|
||||||
|
- name: "setup fic-{{ fic_name }} network between containers"
|
||||||
|
community.general.docker_network:
|
||||||
|
name: "fic-{{ fic_name }}"
|
||||||
|
|
||||||
|
- name: "launch fic-admin container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-admin-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-admin:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
init: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/raw_files:/mnt/fic"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/dashboard:/srv/DASHBOARD"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/files:/srv/FILES"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/pki:/srv/PKI"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settings:/srv/SETTINGS"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/submissions:/srv/submissions:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/sync:/srv/SYNC"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
command: ["-bind=:8081", "-baseurl={% if current_fic != '' %}/{{ current_fic }}{% endif %}/admin/", "-localimport=/mnt/fic", "-localimportsymlink", "-timestampCheck=/srv/submissions"]
|
||||||
|
memory: 1G
|
||||||
|
memory_swap: 1G
|
||||||
|
cap_drop: ALL
|
||||||
|
env:
|
||||||
|
FIC_4REAL: "{% if challenge_mode is defined and challenge_mode %}on{% else %}off{% endif %}"
|
||||||
|
MYSQL_HOST: /var/run/mysqld/mysqld.sock
|
||||||
|
MYSQL_USER: "{{ database.username }}"
|
||||||
|
MYSQL_PASSWORD: "{{ database.password }}"
|
||||||
|
MYSQL_DATABASE: "fic{{ fic_name }}{% if custom_db_suffix is defined %}_{{ custom_db_suffix }}{% endif %}"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-admin-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-admin
|
||||||
|
|
||||||
|
- name: "launch fic-evdist container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-evdist-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-evdist:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settings:/srv/SETTINGS"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settingsdist:/srv/SETTINGSDIST"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
cap_drop: ALL
|
||||||
|
env:
|
||||||
|
FIC_BASEURL: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/"
|
||||||
|
MYSQL_HOST: /var/run/mysqld/mysqld.sock
|
||||||
|
MYSQL_USER: "{{ database.username }}"
|
||||||
|
MYSQL_PASSWORD: "{{ database.password }}"
|
||||||
|
MYSQL_DATABASE: "fic{{ fic_name }}{% if custom_db_suffix is defined %}_{{ custom_db_suffix }}{% endif %}"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-backend-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-backend
|
||||||
|
|
||||||
|
- name: "launch fic-backend container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-backend-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-backend:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settingsdist:/srv/SETTINGSDIST:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/submissions:/srv/submissions"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
cap_drop: ALL
|
||||||
|
env:
|
||||||
|
FIC_BASEURL: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/"
|
||||||
|
MYSQL_HOST: /var/run/mysqld/mysqld.sock
|
||||||
|
MYSQL_USER: "{{ database.username }}"
|
||||||
|
MYSQL_PASSWORD: "{{ database.password }}"
|
||||||
|
MYSQL_DATABASE: "fic{{ fic_name }}{% if custom_db_suffix is defined %}_{{ custom_db_suffix }}{% endif %}"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-backend-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-backend
|
||||||
|
|
||||||
|
- name: "launch fic-dashboard container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-dashboard-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-dashboard:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/dashboard:/srv/DASHBOARD"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settingsdist:/srv/SETTINGSDIST:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS:ro"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
cap_drop: ALL
|
||||||
|
env:
|
||||||
|
FIC_BASEURL: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/dashboard/"
|
||||||
|
MYSQL_HOST: /var/run/mysqld/mysqld.sock
|
||||||
|
MYSQL_USER: "{{ database.username }}"
|
||||||
|
MYSQL_PASSWORD: "{{ database.password }}"
|
||||||
|
MYSQL_DATABASE: "fic{{ fic_name }}{% if custom_db_suffix is defined %}_{{ custom_db_suffix }}{% endif %}"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-dashboard-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-dashboard
|
||||||
|
|
||||||
|
- name: "launch fic-frontend container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-frontend-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-frontend:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
command: ["-bind=:8080", "-startedFile=STARTINGBLOCK/started"]
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settingsdist:/srv/SETTINGSDIST:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/startingblock:/srv/STARTINGBLOCK"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/submissions:/srv/submissions"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
cap_drop: ALL
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-frontend-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-frontend
|
||||||
|
|
||||||
|
- name: "launch fic-qa container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-qa-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-qa:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "/var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS:ro"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
cap_drop: ALL
|
||||||
|
env:
|
||||||
|
FIC_BASEURL: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/qa/"
|
||||||
|
MYSQL_HOST: /var/run/mysqld/mysqld.sock
|
||||||
|
MYSQL_USER: "{{ database.username }}"
|
||||||
|
MYSQL_PASSWORD: "{{ database.password }}"
|
||||||
|
MYSQL_DATABASE: "fic{{ fic_name }}{% if custom_db_suffix is defined %}_{{ custom_db_suffix }}{% endif %}"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-qa-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-qa
|
||||||
|
|
||||||
|
- name: "launch fic-nginx container {{ fic_name }}"
|
||||||
|
community.general.docker_container:
|
||||||
|
name: "fic-nginx-{{ fic_name }}"
|
||||||
|
image: "nemunaire/fic-nginx:{{ image_tag }}"
|
||||||
|
pull: true
|
||||||
|
networks_cli_compatible: true
|
||||||
|
networks:
|
||||||
|
- name: "fic-{{ fic_name }}"
|
||||||
|
volumes:
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/raw_files:/mnt/fic:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/files:/srv/FILES:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/settingsdist:/srv/SETTINGS:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/startingblock:/srv/STARTINGBLOCK:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/sync:/srv/SYNC:ro"
|
||||||
|
- "{{ var_base }}{% if current_fic != '' %}/{{ current_fic }}{% endif %}/teams:/srv/TEAMS:ro"
|
||||||
|
state: started
|
||||||
|
restart_policy: unless-stopped
|
||||||
|
memory: 256M
|
||||||
|
published_ports:
|
||||||
|
- "127.0.0.1:{{ endpoint }}:80"
|
||||||
|
env:
|
||||||
|
FIC_BASEURL: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/"
|
||||||
|
FIC_BASEURL2: "{% if current_fic != '' %}/{{ current_fic }}{% endif %}/"
|
||||||
|
HOST_ADMIN: "fic-admin-{{ fic_name }}:8081"
|
||||||
|
HOST_DASHBOARD: "fic-dashboard-{{ fic_name }}:8082"
|
||||||
|
HOST_FRONTEND: "fic-frontend-{{ fic_name }}:8080"
|
||||||
|
HOST_QA: "fic-qa-{{ fic_name }}:8083"
|
||||||
|
log_driver: syslog
|
||||||
|
log_options:
|
||||||
|
syslog-address: unixgram:///dev/log
|
||||||
|
syslog-facility: daemon
|
||||||
|
tag: "fic-frontend-{{ fic_name }}"
|
||||||
|
tags:
|
||||||
|
- live
|
||||||
|
- live-nginx
|
Loading…
x
Reference in New Issue
Block a user