From 07d53edf8bbad5d43586f8b44cff214a336a06b4 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Fri, 30 Mar 2018 10:44:24 +0200 Subject: [PATCH] install and deploy multi-tenant chrono (#22918) --- install.yml | 1 + inventory.yml | 7 +++++++ roles/app-setup/templates/chrono-settings.j2 | 11 +++++++++++ roles/chrono/tasks/main.yml | 14 ++++++++++++++ roles/chrono/vars/main.yml | 11 +++++++++++ .../templates/hobo-manage-recipe-with-wcs.j2 | 4 ++++ roles/nginx-setup/templates/chrono-nginx-server.j2 | 12 ++++++++++++ 7 files changed, 60 insertions(+) create mode 100644 roles/app-setup/templates/chrono-settings.j2 create mode 100644 roles/chrono/tasks/main.yml create mode 100644 roles/chrono/vars/main.yml create mode 100644 roles/nginx-setup/templates/chrono-nginx-server.j2 diff --git a/install.yml b/install.yml index f720cfa..5f2555b 100644 --- a/install.yml +++ b/install.yml @@ -9,6 +9,7 @@ - wcs - passerelle - fargo + - chrono - hobo-agent - end vars: diff --git a/inventory.yml b/inventory.yml index 6f78170..6ccdbce 100644 --- a/inventory.yml +++ b/inventory.yml @@ -47,6 +47,12 @@ local: nginx_host_pattern: '~^(.*)\-fargo\.local\.publik$' project_name: fargo server_port: 8036 + chrono: + db_name: chrono + host_pattern: "*-chrono.local.publik" + nginx_host_pattern: '~^(.*)\-chrono\.local\.publik$' + project_name: chrono + server_port: 8040 wcs: db_name: wcs host_pattern: "*-wcs.local.publik" @@ -61,3 +67,4 @@ local: demarches-wcs: "demarches-wcs.local.publik" dev-passerelle: "dev-passerelle.local.publik" dev-fargo: "dev-fargo.local.publik" + dev-chrono: "dev-chrono.local.publik" diff --git a/roles/app-setup/templates/chrono-settings.j2 b/roles/app-setup/templates/chrono-settings.j2 new file mode 100644 index 0000000..d5c69d9 --- /dev/null +++ b/roles/app-setup/templates/chrono-settings.j2 @@ -0,0 +1,11 @@ +{% extends "app-settings-base.j2" %} + +{% block app_custom_before %} +# SAML2 authentication +INSTALLED_APPS += ('mellon',) +{% endblock %} + +{% block app_custom_after %} +# disable django-mellon autologin +MELLON_OPENED_SESSION_COOKIE_NAME = None +{% endblock %} diff --git a/roles/chrono/tasks/main.yml b/roles/chrono/tasks/main.yml new file mode 100644 index 0000000..7336f52 --- /dev/null +++ b/roles/chrono/tasks/main.yml @@ -0,0 +1,14 @@ + +- name: source install chrono + import_tasks: install_source.yml + vars: + repo: "chrono" + repo_dir: "{{ src_dir }}/chrono" + +- name: chrono app setup + import_role: + name: app-setup + +- name: chrono nginx setup + import_role: + name: nginx-setup diff --git a/roles/chrono/vars/main.yml b/roles/chrono/vars/main.yml new file mode 100644 index 0000000..afa4ffb --- /dev/null +++ b/roles/chrono/vars/main.yml @@ -0,0 +1,11 @@ +app_name: chrono +compile_scss: false +compile_translations: true +migrate_schemas: true +db_name: "{{apps['chrono']['db_name']}}" +manage_cmd: "{{venv_python}} {{src_dir}}/chrono/manage.py" +nginx_host_pattern: "{{apps['chrono']['nginx_host_pattern']}}" +nginx_template_name: "chrono-nginx-server.j2" +project_name: "{{apps['chrono']['project_name']}}" +server_port: "{{apps['chrono']['server_port']}}" +settings_env_var: CHRONO_SETTINGS_FILE diff --git a/roles/deploy-tenants/templates/hobo-manage-recipe-with-wcs.j2 b/roles/deploy-tenants/templates/hobo-manage-recipe-with-wcs.j2 index 2b53cf7..fcfa5f2 100644 --- a/roles/deploy-tenants/templates/hobo-manage-recipe-with-wcs.j2 +++ b/roles/deploy-tenants/templates/hobo-manage-recipe-with-wcs.j2 @@ -42,6 +42,10 @@ "url": "https://{{tenants_conf['dev-fargo']}}/", "title": "Porte-documents" }}, + {"create-chrono": { + "url": "https://{{tenants_conf['dev-chrono']}}/", + "title": "Agendas" + }}, {"set-theme": { "theme": "publik" }} diff --git a/roles/nginx-setup/templates/chrono-nginx-server.j2 b/roles/nginx-setup/templates/chrono-nginx-server.j2 new file mode 100644 index 0000000..24c2362 --- /dev/null +++ b/roles/nginx-setup/templates/chrono-nginx-server.j2 @@ -0,0 +1,12 @@ +{% extends "base-nginx-server.j2" %} + + {% block middle %} + location ~ ^/static/(.+)$ { + root /; + try_files /var/lib/{{project_name}}/tenants/$host/static/$1 + /var/lib/{{project_name}}/tenants/$host/theme/static/$1 + /var/lib/{{project_name}}/collectstatic/$1 + =404; + add_header Access-Control-Allow-Origin *; + } + {% endblock %} -- 2.16.2