Add the production portal.

This commit is contained in:
Andrea Dell'Amico 2021-02-01 15:20:14 +01:00
parent 13dc151373
commit dd64d2f893
9 changed files with 213 additions and 68 deletions

View File

@ -1,15 +1,45 @@
---
ariadne_portal_compose_dir: '/srv/ariadne_portal_dev'
ariadne_portal_docker_stack_name: 'ariadne-portal-dev'
ariadne_portal_docker_service_client_name: 'client'
ariadne_portal_docker_client_image: 'ariadneplusportal/www-portal-dev:latest'
ariadne_portal_behind_haproxy: True
ariadne_portal_haproxy_public_net: 'haproxy-public'
ariadne_portal_dev_compose_dir: '/srv/ariadne_portal_dev'
ariadne_portal_dev_docker_stack_name: 'ariadne-portal-dev'
ariadne_portal_dev_docker_service_client_name: 'client'
ariadne_portal_dev_docker_client_image: 'ariadneplusportal/www-portal-dev:latest'
ariadne_portal_dev_behind_haproxy: True
ariadne_portal_dev_haproxy_public_net: 'haproxy-public'
ariadne_portal_smtp: False
ariadne_portal_smtp_host: 'localhost'
ariadne_portal_smtp_port: 587
ariadne_portal_smtp_channel: 'starttls'
ariadne_portal_smtp_user: ''
ariadne_portal_dev_smtp: False
ariadne_portal_dev_smtp_host: 'localhost'
ariadne_portal_dev_smtp_port: 587
ariadne_portal_dev_smtp_channel: 'starttls'
ariadne_portal_dev_smtp_user: ''
# Put it into a vault file
ariadne_portal_smtp_password: ''
ariadne_portal_dev_smtp_password: ''
ariadne_portal_staging_compose_dir: '/srv/ariadne_portal_staging'
ariadne_portal_staging_docker_stack_name: 'ariadne-portal-staging'
ariadne_portal_staging_docker_service_client_name: 'client'
ariadne_portal_staging_docker_client_image: 'ariadneplusportal/www-portal-staging:latest'
ariadne_portal_staging_behind_haproxy: True
ariadne_portal_staging_haproxy_public_net: 'haproxy-public'
ariadne_portal_staging_smtp: False
ariadne_portal_staging_smtp_host: 'localhost'
ariadne_portal_staging_smtp_port: 587
ariadne_portal_staging_smtp_channel: 'starttls'
ariadne_portal_staging_smtp_user: ''
# Put it into a vault file
ariadne_portal_staging_smtp_password: ''
ariadne_portal_production_compose_dir: '/srv/ariadne_portal_production'
ariadne_portal_production_docker_stack_name: 'ariadne-portal-production'
ariadne_portal_production_docker_service_client_name: 'client'
ariadne_portal_production_docker_client_image: 'ariadneplusportal/www-portal-public:latest'
ariadne_portal_production_behind_haproxy: True
ariadne_portal_production_haproxy_public_net: 'haproxy-public'
ariadne_portal_production_smtp: False
ariadne_portal_production_smtp_host: 'localhost'
ariadne_portal_production_smtp_port: 587
ariadne_portal_production_smtp_channel: 'starttls'
ariadne_portal_production_smtp_user: ''
# Put it into a vault file
ariadne_portal_production_smtp_password: ''

View File

@ -0,0 +1,19 @@
---
- name: Manage the installation of the Ariadne+ Dev Portal
block:
- name: Create the docker compose directory of the Ariadne+ Portal, {{ ariadne_portal_dev_docker_stack_name }}
file: dest={{ ariadne_portal_dev_compose_dir }} state=directory owner=root group=root mode='0750'
- name: Install the docker compose file of the Ariadne+ Portal, {{ ariadne_portal_dev_docker_stack_name }}
template: src={{ ariadne_portal_dev_docker_stack_name }}-docker-compose.yml.j2 dest={{ ariadne_portal_dev_compose_dir }}/docker-{{ ariadne_portal_dev_docker_stack_name }}-stack.yml owner=root group=root mode='0400'
- name: Start the Ariadne+ portal stack, {{ ariadne_portal_dev_docker_stack_name }}
docker_stack:
name: '{{ ariadne_portal_dev_docker_stack_name }}'
state: present
compose:
- '{{ ariadne_portal_dev_compose_dir }}/docker-{{ ariadne_portal_dev_docker_stack_name }}-stack.yml'
run_once: True
when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool
tags: [ 'ariadne_portal', 'ariadne_portal_dev_swarm', 'ariadne_portal_dev' ]

View File

@ -0,0 +1,19 @@
---
- name: Manage the installation of the Ariadne+ Production Portal
block:
- name: Create the docker compose directory of the Ariadne+ Portal, {{ ariadne_portal_production_docker_stack_name }}
file: dest={{ ariadne_portal_production_compose_dir }} state=directory owner=root group=root mode='0750'
- name: Install the docker compose file of the Ariadne+ Portal, {{ ariadne_portal_production_docker_stack_name }}
template: src={{ ariadne_portal_production_docker_stack_name }}-docker-compose.yml.j2 dest={{ ariadne_portal_production_compose_dir }}/docker-{{ ariadne_portal_production_docker_stack_name }}-stack.yml owner=root group=root mode='0400'
- name: Start the Ariadne+ portal stack, {{ ariadne_portal_production_docker_stack_name }}
docker_stack:
name: '{{ ariadne_portal_production_docker_stack_name }}'
state: present
compose:
- '{{ ariadne_portal_production_compose_dir }}/docker-{{ ariadne_portal_production_docker_stack_name }}-stack.yml'
run_once: True
when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool
tags: [ 'ariadne_portal', 'ariadne_portal_production_swarm', 'ariadne_portal_production' ]

View File

@ -0,0 +1,19 @@
---
- name: Manage the installation of the Ariadne+ Staging Portal
block:
- name: Create the docker compose directory of the Ariadne+ Portal, {{ ariadne_portal_staging_docker_stack_name }}
file: dest={{ ariadne_portal_staging_compose_dir }} state=directory owner=root group=root mode='0750'
- name: Install the docker compose file of the Ariadne+ Portal, {{ ariadne_portal_staging_docker_stack_name }}
template: src={{ ariadne_portal_staging_docker_stack_name }}-docker-compose.yml.j2 dest={{ ariadne_portal_staging_compose_dir }}/docker-{{ ariadne_portal_staging_docker_stack_name }}-stack.yml owner=root group=root mode='0400'
- name: Start the Ariadne+ portal stack, {{ ariadne_portal_staging_docker_stack_name }}
docker_stack:
name: '{{ ariadne_portal_staging_docker_stack_name }}'
state: present
compose:
- '{{ ariadne_portal_staging_compose_dir }}/docker-{{ ariadne_portal_staging_docker_stack_name }}-stack.yml'
run_once: True
when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool
tags: [ 'ariadne_portal', 'ariadne_portal_staging_swarm', 'ariadne_portal_staging' ]

View File

@ -1,20 +1,4 @@
---
- name: Manage the installation of the Ariadne+ Portal
block:
- name: Create the docker compose directory of the Ariadne+ Portal, {{ ariadne_portal_docker_stack_name }}
file: dest={{ ariadne_portal_compose_dir }} state=directory owner=root group=root mode='0750'
- name: Install the docker compose file of the Ariadne+ Portal, {{ ariadne_portal_docker_stack_name }}
template: src=ariadne-portal-docker-compose.yml.j2 dest={{ ariadne_portal_compose_dir }}/docker-{{ ariadne_portal_docker_stack_name }}-stack.yml owner=root group=root mode='0400'
- name: Start the Ariadne+ portal stack, {{ ariadne_portal_docker_stack_name }}
docker_stack:
name: '{{ ariadne_portal_docker_stack_name }}'
state: present
compose:
- '{{ ariadne_portal_compose_dir }}/docker-{{ ariadne_portal_docker_stack_name }}-stack.yml'
run_once: True
when: docker_swarm_manager_main_node is defined and docker_swarm_manager_main_node | bool
tags: [ 'ariadne_portal', 'ariadne_portal_swarm', 'ariadne_portal_staging' ]
- import_tasks: ariadne_dev_portal.yml
- import_tasks: ariadne_staging_portal.yml
- import_tasks: ariadne_production_portal.yml

View File

@ -0,0 +1,37 @@
version: '3.6'
networks:
{% if ariadne_portal_dev_behind_haproxy %}
haproxy-public:
external: true
{% endif %}
services:
{{ ariadne_portal_dev_docker_service_client_name }}:
image: {{ ariadne_portal_dev_docker_client_image }}
{% if ariadne_portal_dev_behind_haproxy %}
networks:
- haproxy-public
{% endif %}
{% if ariadne_portal_dev_smtp %}
environment:
- SMTP_HOST={{ ariadne_portal_dev_smtp_host }}
- SMTP_PORT={{ ariadne_portal_dev_smtp_port }}
- SMTP_CHANNEL={{ ariadne_portal_dev_smtp_channel }}
- SMTP_PROTOCOL=smtp
- SMTP_USER={{ ariadne_portal_dev_smtp_user }}
- SMTP_PASS={{ ariadne_portal_dev_smtp_password }}
{% endif %}
deploy:
mode: replicated
replicas: 1
endpoint_mode: dnsrr
placement:
constraints: [node.role == worker]
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
logging:
driver: 'journald'

View File

@ -1,37 +0,0 @@
version: '3.6'
networks:
{% if ariadne_portal_behind_haproxy %}
haproxy-public:
external: true
{% endif %}
services:
{{ ariadne_portal_docker_service_client_name }}:
image: {{ ariadne_portal_docker_client_image }}
{% if ariadne_portal_behind_haproxy %}
networks:
- haproxy-public
{% endif %}
{% if ariadne_portal_smtp %}
environment:
- SMTP_HOST={{ ariadne_portal_smtp_host }}
- SMTP_PORT={{ ariadne_portal_smtp_port }}
- SMTP_CHANNEL={{ ariadne_portal_smtp_channel }}
- SMTP_PROTOCOL=smtp
- SMTP_USER={{ ariadne_portal_smtp_user }}
- SMTP_PASS={{ ariadne_portal_smtp_password }}
{% endif %}
deploy:
mode: replicated
replicas: 1
endpoint_mode: dnsrr
placement:
constraints: [node.role == worker]
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
logging:
driver: 'journald'

View File

@ -0,0 +1,37 @@
version: '3.6'
networks:
{% if ariadne_portal_production_behind_haproxy %}
haproxy-public:
external: true
{% endif %}
services:
{{ ariadne_portal_production_docker_service_client_name }}:
image: {{ ariadne_portal_production_docker_client_image }}
{% if ariadne_portal_production_behind_haproxy %}
networks:
- haproxy-public
{% endif %}
{% if ariadne_portal_production_smtp %}
environment:
- SMTP_HOST={{ ariadne_portal_production_smtp_host }}
- SMTP_PORT={{ ariadne_portal_production_smtp_port }}
- SMTP_CHANNEL={{ ariadne_portal_production_smtp_channel }}
- SMTP_PROTOCOL=smtp
- SMTP_USER={{ ariadne_portal_production_smtp_user }}
- SMTP_PASS={{ ariadne_portal_production_smtp_password }}
{% endif %}
deploy:
mode: replicated
replicas: 1
endpoint_mode: dnsrr
placement:
constraints: [node.role == worker]
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
logging:
driver: 'journald'

View File

@ -0,0 +1,37 @@
version: '3.6'
networks:
{% if ariadne_portal_staging_behind_haproxy %}
haproxy-public:
external: true
{% endif %}
services:
{{ ariadne_portal_staging_docker_service_client_name }}:
image: {{ ariadne_portal_staging_docker_client_image }}
{% if ariadne_portal_staging_behind_haproxy %}
networks:
- haproxy-public
{% endif %}
{% if ariadne_portal_staging_smtp %}
environment:
- SMTP_HOST={{ ariadne_portal_staging_smtp_host }}
- SMTP_PORT={{ ariadne_portal_staging_smtp_port }}
- SMTP_CHANNEL={{ ariadne_portal_staging_smtp_channel }}
- SMTP_PROTOCOL=smtp
- SMTP_USER={{ ariadne_portal_staging_smtp_user }}
- SMTP_PASS={{ ariadne_portal_staging_smtp_password }}
{% endif %}
deploy:
mode: replicated
replicas: 1
endpoint_mode: dnsrr
placement:
constraints: [node.role == worker]
restart_policy:
condition: on-failure
delay: 5s
max_attempts: 3
window: 120s
logging:
driver: 'journald'