From 5311cf9f94a071e71a66ee38b43f21e9842d7b7b Mon Sep 17 00:00:00 2001 From: Mathieu Leguay <mathieu.leguay@teamdlab.com> Date: Sat, 9 May 2020 21:17:22 +0200 Subject: [PATCH] [WIP] --- .../group_vars/all/vitamui_vars.yml | 6 +++--- .../environments/vitamui_extra_vars.yml | 2 -- .../roles/mongo_init/tasks/check_auth.yml | 2 +- .../roles/mongo_init/tasks/execute_script.yml | 12 +++++------ deployment/roles/mongo_init/tasks/main.yml | 21 ++++++++++++++++--- .../templates/cas-server/application.yml.j2 | 2 +- .../templates/iam-external/application.yml.j2 | 2 +- .../templates/iam-internal/application.yml.j2 | 2 +- .../iam-internal/server-identity.conf.j2 | 2 +- .../security-internal/application.yml.j2 | 2 +- .../ui-identity-admin/application.yml.j2 | 2 +- .../templates/ui-identity/application.yml.j2 | 2 +- .../templates/ui-portal/application.yml.j2 | 2 +- tools/docker/mongo/hosts | 9 ++++++++ tools/docker/mongo/mongo_vars_dev.yml | 2 ++ 15 files changed, 47 insertions(+), 23 deletions(-) diff --git a/deployment/environments/group_vars/all/vitamui_vars.yml b/deployment/environments/group_vars/all/vitamui_vars.yml index 1e47dbe9..b03e875e 100755 --- a/deployment/environments/group_vars/all/vitamui_vars.yml +++ b/deployment/environments/group_vars/all/vitamui_vars.yml @@ -1,7 +1,7 @@ --- single_vm_hostnames: ['localhost'] -vitamui_env_name: "{{ vitam_site_name }}" +vitamui_site_name: "{{ vitam_site_name }}" pki_dir: "{{ inventory_dir }}/certs" @@ -193,5 +193,5 @@ mongodb: included_scripts: - ".*" excluded_scripts: - - ".*_dev.js" - - ".*_demo.js" + - ".*_dev.js.*" + - ".*_demo.js.*" diff --git a/deployment/environments/vitamui_extra_vars.yml b/deployment/environments/vitamui_extra_vars.yml index 44232384..63816ad9 100644 --- a/deployment/environments/vitamui_extra_vars.yml +++ b/deployment/environments/vitamui_extra_vars.yml @@ -6,8 +6,6 @@ url_prefix: "changeme" ### # consul_vars.yml overload -vitamui_site_name: "changeme" - consul_remote_sites: - vitamui: name: "changeme" diff --git a/deployment/roles/mongo_init/tasks/check_auth.yml b/deployment/roles/mongo_init/tasks/check_auth.yml index 95e7b2d8..2afac0e3 100644 --- a/deployment/roles/mongo_init/tasks/check_auth.yml +++ b/deployment/roles/mongo_init/tasks/check_auth.yml @@ -1,7 +1,7 @@ --- - name: Check if authent is enabled - command: "mongo {{ ip_service }}:{{ mongodb.mongod_port }}/admin -u {{ mongodb.localadmin.user }} -p {{ mongodb.localadmin.password }} --quiet --eval 'db.help()'" + command: "mongo --host {{ mongod_uri }}/admin -u {{ mongodb.localadmin.user }} -p {{ mongodb.localadmin.password }} --quiet --eval 'db.help()'" register: mongo_authent_enabled failed_when: false no_log: "{{ hide_passwords_during_deploy }}" diff --git a/deployment/roles/mongo_init/tasks/execute_script.yml b/deployment/roles/mongo_init/tasks/execute_script.yml index 38e1f136..03ec476f 100644 --- a/deployment/roles/mongo_init/tasks/execute_script.yml +++ b/deployment/roles/mongo_init/tasks/execute_script.yml @@ -18,7 +18,7 @@ - block: - name: Check if the script has already been executed - shell: "mongo {{ ip_service }}:{{ mongodb.mongod_port }}/versioning {{ mongo_credentials }} --quiet --eval \"db.changelog.find({filename: '{{ mongo_file.finalname }}', checksum: '{{ stat_result.stat.checksum}}'});\"" + shell: "mongo \"mongodb://{{ mongod_uri }}/admin\" {{ mongo_credentials }} --quiet --eval \"db.changelog.find({filename: '{{ mongo_file.finalname }}', checksum: '{{ stat_result.stat.checksum}}'});\"" no_log: "{{ hide_passwords_during_deploy }}" register: mongo_versionning_result @@ -28,12 +28,12 @@ - block: - name: Load script in database - shell: "mongo {{ ip_service }}:{{ mongodb.mongod_port }}/admin {{ mongo_credentials }} {{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" + shell: "mongo \"mongodb://{{ mongod_uri }}/admin\" {{ mongo_credentials }} {{ mongod_output_dir_entry_point }}/{{ mongo_file.finalname }}" no_log: "{{ hide_passwords_during_deploy }}" when: mock_insert_data is not defined - name: Update changelog - shell: "mongo {{ ip_service }}:{{ mongodb.mongod_port }}/versioning {{ mongo_credentials }} --eval \"db.changelog.insertOne({filename: '{{ mongo_file.finalname }}', date: new Date(), version: '{{ mongo_file.version }}', checksum: '{{ stat_result.stat.checksum}}'});\"" + shell: "mongo \"mongodb://{{ mongod_uri }}/versioning\" {{ mongo_credentials }} --eval \"db.changelog.insertOne({filename: '{{ mongo_file.finalname }}', date: new Date(), version: '{{ mongo_file.version }}', checksum: '{{ stat_result.stat.checksum}}'});\"" no_log: "{{ hide_passwords_during_deploy }}" when: - "'_id' not in mongo_versionning_result.stdout" @@ -42,7 +42,7 @@ - block: - name: Check if the script has already been executed (docker) - shell: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo {{ ip_service }}:{{ mongodb.mongod_port }}/versioning {{ mongo_credentials }} --quiet --eval \\\"db.changelog.find({filename: '{{ mongo_file.finalname }}', checksum: '{{ stat_result.stat.checksum}}'});\\\"\"" + shell: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo \\\"mongodb://{{ mongod_uri }}/versioning\\\" {{ mongo_credentials }} --quiet --eval \\\"db.changelog.find({filename: '{{ mongo_file.finalname }}', checksum: '{{ stat_result.stat.checksum}}'});\\\"\"" no_log: "{{ hide_passwords_during_deploy }}" register: mongo_versionning_result @@ -52,12 +52,12 @@ - block: - name: Load script in database (docker) - command: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo {{ ip_service }}:{{ mongodb.mongod_port }}/admin {{ mongo_credentials }} {{ mongodb.docker.internal_dir}}/app/mongod/{{ mongo_file.finalname }}\"" + command: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo \\\"mongodb://{{ mongod_uri }}/admin\\\" {{ mongo_credentials }} {{ mongodb.docker.internal_dir}}/app/mongod/{{ mongo_file.finalname }}\"" no_log: "{{ hide_passwords_during_deploy }}" when: mock_insert_data is not defined - name: Update changelog (docker) - shell: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo {{ ip_service }}:{{ mongodb.mongod_port }}/versioning {{ mongo_credentials }} --quiet --eval \\\"db.changelog.insertOne({filename: '{{ mongo_file.finalname }}', date: new Date(), version: '{{ mongo_file.version }}', checksum: '{{ stat_result.stat.checksum}}'});\\\"\"" + shell: "docker exec --tty vitamui-mongo /bin/bash -c \"mongo \\\"mongodb://{{ mongod_uri }}/versioning\\\" {{ mongo_credentials }} --quiet --eval \\\"db.changelog.insertOne({filename: '{{ mongo_file.finalname }}', date: new Date(), version: '{{ mongo_file.version }}', checksum: '{{ stat_result.stat.checksum}}'});\\\"\"" no_log: "{{ hide_passwords_during_deploy }}" when: diff --git a/deployment/roles/mongo_init/tasks/main.yml b/deployment/roles/mongo_init/tasks/main.yml index 67c70501..36d383de 100644 --- a/deployment/roles/mongo_init/tasks/main.yml +++ b/deployment/roles/mongo_init/tasks/main.yml @@ -3,6 +3,15 @@ - fail: msg="Variable '{{ mongod_source_template_dir }}' is not defined" when: mongod_source_template_dir is undefined +- name: Compute list of mongo nodes + set_fact: + mongo_nodes: "{{ mongo_nodes | default([]) + [ hostvars[item]['ip_service'] + ':'+ mongodb.mongod_port | string ] }}" + loop: "{{ groups['hosts_vitamui_mongod'] }}" + +- name: Set Mongo URI + set_fact: + mongod_uri: "{{ mongo_nodes| join(',') }}" + - name: Set mongod_output_dir_entry_point set_fact: mongod_output_dir_entry_point: "{{ vitamui_defaults.folder.root_path }}/app/mongod/" @@ -43,16 +52,22 @@ loop: "{{ output.results }}" # We apply regex for included and excludes files in order to compute the eligible scripts. -- name: Compute list of eligibles files +- name: Compute list of excluded files delegate_to: localhost set_fact: - mongod_eligible_files : "{{ (mongod_eligible_files| default([])) + [ {'name': item.0, 'version': item.0 | regex_replace('^(.+)/(.+)$', '\\1') ,'finalname': item.0 | regex_replace('/', '_') | basename | regex_replace('\\.j2$')} ] }}" - when: item.0 is match(item.1) and item.0 is not match(item.2) + mongod_excluded_files : "{{ (mongod_excluded_files| default([])) + [ item.0 ] }}" + when: item.0 is not match(item.1) or item.0 is match(item.2) with_nested: - "{{ mongod_files }}" - "{{ mongodb.included_scripts }}" - "{{ mongodb.excluded_scripts }}" +- name: Compute list of eligible files + delegate_to: localhost + set_fact: + mongod_eligible_files : "{{ (mongod_eligible_files| default([])) + [ {'name': item, 'version': item | regex_replace('^(.+)/(.+)$', '\\1') ,'finalname': item | regex_replace('/', '_') | basename | regex_replace('\\.j2$')} ] }}" + loop: "{{ mongod_files | difference(mongod_excluded_files| default([])) }}" + # We generate scripts and upload on remote host - name: Compute and copy script files template: diff --git a/deployment/roles/vitamui/templates/cas-server/application.yml.j2 b/deployment/roles/vitamui/templates/cas-server/application.yml.j2 index 17af8b7d..21fa8aeb 100644 --- a/deployment/roles/vitamui/templates/cas-server/application.yml.j2 +++ b/deployment/roles/vitamui/templates/cas-server/application.yml.j2 @@ -152,7 +152,7 @@ ip.header: X-Real-IP server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/iam-external/application.yml.j2 b/deployment/roles/vitamui/templates/iam-external/application.yml.j2 index 2acafe48..2999083e 100644 --- a/deployment/roles/vitamui/templates/iam-external/application.yml.j2 +++ b/deployment/roles/vitamui/templates/iam-external/application.yml.j2 @@ -36,7 +36,7 @@ management: enabled: false server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/iam-internal/application.yml.j2 b/deployment/roles/vitamui/templates/iam-internal/application.yml.j2 index 3ec4daa4..55e4be4a 100644 --- a/deployment/roles/vitamui/templates/iam-internal/application.yml.j2 +++ b/deployment/roles/vitamui/templates/iam-internal/application.yml.j2 @@ -39,7 +39,7 @@ management: enabled: false server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/iam-internal/server-identity.conf.j2 b/deployment/roles/vitamui/templates/iam-internal/server-identity.conf.j2 index 89f7a25e..efe35400 100644 --- a/deployment/roles/vitamui/templates/iam-internal/server-identity.conf.j2 +++ b/deployment/roles/vitamui/templates/iam-internal/server-identity.conf.j2 @@ -1,3 +1,3 @@ -identityName: {{ vitamui_env_name }} +identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identitySiteId: 1 diff --git a/deployment/roles/vitamui/templates/security-internal/application.yml.j2 b/deployment/roles/vitamui/templates/security-internal/application.yml.j2 index ee5e77b8..b462b4a0 100644 --- a/deployment/roles/vitamui/templates/security-internal/application.yml.j2 +++ b/deployment/roles/vitamui/templates/security-internal/application.yml.j2 @@ -12,7 +12,7 @@ spring: server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2 b/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2 index 05670dca..be35acaf 100644 --- a/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2 +++ b/deployment/roles/vitamui/templates/ui-identity-admin/application.yml.j2 @@ -41,7 +41,7 @@ logging: config: {{ vitamui_folder_conf }}/logback.xml server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/ui-identity/application.yml.j2 b/deployment/roles/vitamui/templates/ui-identity/application.yml.j2 index 9c086100..a2000f3c 100644 --- a/deployment/roles/vitamui/templates/ui-identity/application.yml.j2 +++ b/deployment/roles/vitamui/templates/ui-identity/application.yml.j2 @@ -38,7 +38,7 @@ logging: config: {{ vitamui_folder_conf }}/logback.xml server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 index f8c3f4bd..6b78242b 100644 --- a/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 +++ b/deployment/roles/vitamui/templates/ui-portal/application.yml.j2 @@ -34,7 +34,7 @@ logging: config: {{ vitamui_folder_conf }}/logback.xml server-identity: - identityName: {{ vitamui_env_name }} + identityName: {{ vitamui_site_name }} identityRole: {{ vitamui_struct.vitamui_component }} identityServerId: 1 diff --git a/tools/docker/mongo/hosts b/tools/docker/mongo/hosts index 0a82a3b9..ba3e1445 100644 --- a/tools/docker/mongo/hosts +++ b/tools/docker/mongo/hosts @@ -54,4 +54,13 @@ localhost hosts_cas_server [hosts_cas_server] +localhost + +######################################################## +# ZONE DATA +######################################################## +[zone_vitamui_data:children] +hosts_vitamui_mongod + +[hosts_vitamui_mongod] localhost \ No newline at end of file diff --git a/tools/docker/mongo/mongo_vars_dev.yml b/tools/docker/mongo/mongo_vars_dev.yml index 2cdd2d96..0fbcb2ee 100644 --- a/tools/docker/mongo/mongo_vars_dev.yml +++ b/tools/docker/mongo/mongo_vars_dev.yml @@ -53,6 +53,8 @@ mongodb: password: "mongod_dbpwd_versioning" roles: '[{ role: "readWrite", db: "versioning" }]' +mongod_replicaset_name: "rs0" + url_prefix: "" # Variables for users -- GitLab