You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by di...@apache.org on 2021/07/14 05:26:56 UTC

[airavata-data-lake] branch master updated: Ansibles to deploy MFT distribution

This is an automated email from the ASF dual-hosted git repository.

dimuthuupe pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/airavata-data-lake.git


The following commit(s) were added to refs/heads/master by this push:
     new 367e981  Ansibles to deploy MFT distribution
367e981 is described below

commit 367e98183375223617ae05b7703716c917eefab9
Author: Dimuthu Wannipurage <di...@gmail.com>
AuthorDate: Wed Jul 14 01:26:35 2021 -0400

    Ansibles to deploy MFT distribution
---
 ansible/datalake.yml                               |   3 +-
 ansible/inventories/test/group_vars/all/vars.yml   |  45 +++++++-
 ansible/inventories/test/group_vars/all/vault.yml  |  14 +++
 ansible/roles/consul/handlers/main.yml             |   8 ++
 ansible/roles/consul/tasks/main.yml                |  43 ++++++++
 ansible/roles/consul/templates/consul.config.j2    |  14 +++
 ansible/roles/consul/templates/consul.service.j2   |  10 ++
 ansible/roles/data_lake/tasks/main.yml             |  33 ++++++
 ansible/roles/env_setup/tasks/main.yml             |  38 +------
 ansible/roles/mft/tasks/main.yml                   | 113 +++++++++++++++++++++
 .../mft/templates/agent/application.properties.j2  |  33 ++++++
 .../api-service/application.properties.j2          |  27 +++++
 .../templates/controller/application.properties.j2 |  18 ++++
 .../resource-service/application.properties.j2     |  33 ++++++
 .../resource-service/applicationContext.xml.j2     |  11 ++
 .../secret-service/application.properties.j2       |  32 ++++++
 .../secret-service/applicationContext.xml.j2       |  14 +++
 .../mft/templates/secret-service/secrets.json.j2   |  35 +++++++
 .../src/main/resources/config.yml                  |   4 +-
 19 files changed, 484 insertions(+), 44 deletions(-)

diff --git a/ansible/datalake.yml b/ansible/datalake.yml
index 5651602..0673e59 100644
--- a/ansible/datalake.yml
+++ b/ansible/datalake.yml
@@ -21,5 +21,4 @@
 ---
 - hosts: data-lake
   roles:
-    - env_setup
-    - data_lake
\ No newline at end of file
+    - mft
\ No newline at end of file
diff --git a/ansible/inventories/test/group_vars/all/vars.yml b/ansible/inventories/test/group_vars/all/vars.yml
index 2a9830a..7ed3c10 100644
--- a/ansible/inventories/test/group_vars/all/vars.yml
+++ b/ansible/inventories/test/group_vars/all/vars.yml
@@ -26,7 +26,44 @@ group: airavata
 user_home: "/home/{{ user }}"
 
 # deployment related variables
-deployment_dir: "{{ user_home }}/data-lake-deployment"
-airavata_source_dir: "{{ user_home }}/data-lake-source"
-airavata_repo: "https://github.com/apache/airavata-data-lake.git"
-git_branch: master
+datalake_deployment_dir: "{{ user_home }}/data-lake-deployment"
+datalake_source_dir: "{{ user_home }}/data-lake-source"
+datalake_repo: "https://github.com/apache/airavata-data-lake.git"
+datalake_git_branch: master
+
+mft_deployment_dir: "{{ user_home }}/mft-deployment"
+mft_source_dir: "{{ user_home }}/mft-source"
+mft_repo: "https://github.com/apache/airavata-mft.git"
+mft_git_branch: develop
+mft_distribution_version: 0.01
+
+mft_default_agent_id: agent0
+mft_default_agent_host: 149.165.157.235
+mft_default_agent_port: 3333
+
+mft_api_service_http_port: 8088
+mft_api_service_grpc_port: 7004
+mft_api_service_id: 0
+
+mft_resource_service_host: localhost
+mft_resource_service_http_port: 8089
+mft_resource_service_grpc_port: 7002
+mft_resource_service_backend: org.apache.airavata.mft.resource.server.backend.datalake.DatalakeResourceBackend
+mft_resource_service_custos_client_id: "{{ vault_mft_resource_service_custos_client_id }}"
+mft_resource_service_custos_client_secret: "{{ vault_mft_resource_service_custos_client_secret }}"
+
+mft_secret_service_host: localhost
+mft_secret_service_http_port: 8081
+mft_secret_service_grpc_port: 7003
+mft_secret_service_backend: org.apache.airavata.mft.secret.server.backend.file.FileBasedSecretBackend
+
+mft_consul_host: localhost
+mft_consul_port: 8500
+consul_version: 1.7.1
+consul_zip_file: consul_{{ consul_version }}_linux_amd64.zip
+consul_install_dir: /usr/local/bin
+consul_config_dir: /etc/consul
+consul_data_dir: /var/data
+
+datalake_drms_host: localhost
+datalake_drms_grpc_port: 7070
\ No newline at end of file
diff --git a/ansible/inventories/test/group_vars/all/vault.yml b/ansible/inventories/test/group_vars/all/vault.yml
new file mode 100644
index 0000000..bd5ff07
--- /dev/null
+++ b/ansible/inventories/test/group_vars/all/vault.yml
@@ -0,0 +1,14 @@
+$ANSIBLE_VAULT;1.1;AES256
+65656438633938663065663236323133366632333430643938643039316430383463313534396666
+3436653732343937656161356661373230336238386635340a333635343033666363303265393666
+30633336333035373030383762656661303964356433653563373066613939333663636661643862
+6430313933353633620a306162613765376461613064303163383934636337623964343634316163
+62613134386265343666626364353331616364383735353333633538366566663635316662353434
+62623234336638343265326437323266646238663437323436303836666130663533663266356635
+64313330303762623434316636383965396338616361646539633866636633393536366666326662
+63613830353839346437333737313038373736653036383638353937393031666630653664343536
+38353464353564623437623632613966333738396566363239336166636466333833396261386230
+37623233363131626631393832383361643030663661656165393261653836366131326564643037
+36643234373833346632613366313262663434313937383665613734636631613934343961633561
+32663666303431336664343463656237336332393264613132323266633765316532373434636264
+3536
diff --git a/ansible/roles/consul/handlers/main.yml b/ansible/roles/consul/handlers/main.yml
new file mode 100644
index 0000000..e2a7c01
--- /dev/null
+++ b/ansible/roles/consul/handlers/main.yml
@@ -0,0 +1,8 @@
+---
+# handlers file for consul-server
+- name: restart consul
+  systemd:
+    name: consul.service
+    daemon_reload: yes
+    state: restarted
+  become: yes
diff --git a/ansible/roles/consul/tasks/main.yml b/ansible/roles/consul/tasks/main.yml
new file mode 100644
index 0000000..c217be7
--- /dev/null
+++ b/ansible/roles/consul/tasks/main.yml
@@ -0,0 +1,43 @@
+- name: get consul zip
+  get_url:
+    dest: "/etc/{{ consul_zip_file }}"
+    url: "https://releases.hashicorp.com/consul/{{ consul_version }}/{{ consul_zip_file }}"
+  become: yes
+
+- name: ensure unzip present
+  apt:
+    name: unzip
+    update_cache: yes
+  become: yes
+
+- name: place unzipped consul on path
+  unarchive:
+    src: "/etc/{{ consul_zip_file }}"
+    dest: "{{ consul_install_dir }}"
+    remote_src: yes
+  become: yes
+
+- name: ensure directories for data and config exists
+  file:
+    path: "{{ item }}"
+    state: directory
+  with_items:
+    - "{{ consul_config_dir }}"
+    - "{{ consul_data_dir }}"
+  become: yes
+
+- name: send consul configuration file
+  template:
+    dest: "{{ consul_config_dir }}/config.json"
+    src: consul.config.j2
+  notify: restart consul
+  become: yes
+
+- name: ensure consul service file exists
+  template:
+    dest: /etc/systemd/system/consul.service
+    src: consul.service.j2
+    force: yes
+    mode: 0644
+  notify: restart consul
+  become: yes
\ No newline at end of file
diff --git a/ansible/roles/consul/templates/consul.config.j2 b/ansible/roles/consul/templates/consul.config.j2
new file mode 100644
index 0000000..aba8195
--- /dev/null
+++ b/ansible/roles/consul/templates/consul.config.j2
@@ -0,0 +1,14 @@
+{
+    "node_name": "example",
+    "addresses": {
+        "http": "{{ ansible_facts['all_ipv4_addresses'] | last }} 127.0.0.1"
+    },
+    "server": true,
+    "advertise_addr": "{{ ansible_facts['all_ipv4_addresses'] | last }}",
+    "client_addr": "127.0.0.1 {{ ansible_facts['all_ipv4_addresses'] | last }}",
+    "connect": {
+        "enabled": true
+    },
+    "data_dir": "{{ consul_data_dir }}",
+    "bootstrap": true
+}
\ No newline at end of file
diff --git a/ansible/roles/consul/templates/consul.service.j2 b/ansible/roles/consul/templates/consul.service.j2
new file mode 100644
index 0000000..b0a4e39
--- /dev/null
+++ b/ansible/roles/consul/templates/consul.service.j2
@@ -0,0 +1,10 @@
+[Unit]
+Description=solo consul server example
+
+[Service]
+WorkingDirectory={{ consul_config_dir }}
+User=root
+ExecStart={{ consul_install_dir }}/consul agent -config-dir={{ consul_config_dir }}
+
+[Install]
+WantedBy=multi-user.target
\ No newline at end of file
diff --git a/ansible/roles/data_lake/tasks/main.yml b/ansible/roles/data_lake/tasks/main.yml
index 442324e..69943eb 100644
--- a/ansible/roles/data_lake/tasks/main.yml
+++ b/ansible/roles/data_lake/tasks/main.yml
@@ -28,4 +28,37 @@
     zone=public permanent=true state=enabled immediate=yes
   become: yes
 
+- name: Create Datalake deployment directory {{ datalake_deployment_dir }}
+  become: yes
+  file: path={{ datalake_deployment_dir }}
+    state=directory
+    mode=0755
+    owner={{ user }}
+    group={{ group }}
+
+- name: Create Datalake source directory
+  become: yes
+  file: path={{datalake_source_dir}}
+    state=directory
+    mode=0755
+    owner={{ user }}
+    group={{ group }}
+
+- name: git checkout from Datalake github repo {{ datalake_repo }} branch {{ datalake_git_branch }}
+  git: repo="{{ datalake_repo }}"
+    dest="{{ datalake_source_dir }}"
+    version="{{ datalake_git_branch }}"
+  register: checkout
+  tags: update
+  become: yes
+  become_user: "{{ user }}"
+
+- name: Run Datalake maven build
+  command: mvn clean install -Dmaven.test.skip=true chdir="{{ datalake_source_dir }}/"
+  environment:
+    MAVEN_OPTS: "-Xmx2048m"
+  register: build
+  tags: update
+  become: yes
+  become_user: "{{ user }}"
 
diff --git a/ansible/roles/env_setup/tasks/main.yml b/ansible/roles/env_setup/tasks/main.yml
index 85a8715..40c709a 100644
--- a/ansible/roles/env_setup/tasks/main.yml
+++ b/ansible/roles/env_setup/tasks/main.yml
@@ -58,7 +58,7 @@
              zone=public permanent=true state=enabled immediate=yes
   become: yes
 
-- name: Install Airavata pre-requireties (RedHat)
+- name: Install Datalake pre-requireties (RedHat)
   yum: name={{ item }} state=latest update_cache=yes
   with_items:
     - git
@@ -66,45 +66,11 @@
   become: yes
   when: ansible_os_family == "RedHat"
 
-- name: Install Airavata pre-requireties (Debian)
+- name: Install Datalake pre-requireties (Debian)
   apt: name={{ item }} state=latest update_cache=yes
   with_items:
     - git
     - maven
   become: yes
   when: ansible_os_family == "Debian"
-
-- name: Create deployment directory {{ deployment_dir }}
-  become: yes
-  file: path={{ deployment_dir }}
-    state=directory
-    mode=0755
-    owner={{ user }}
-    group={{ group }}
-
-- name: Create source directory
-  become: yes
-  file: path={{airavata_source_dir}}
-    state=directory
-    mode=0755
-    owner={{ user }}
-    group={{ group }}
-
-- name: git checkout from airavata github repo {{ airavata_repo }} branch {{ git_branch }}
-  git: repo="{{ airavata_repo }}"
-    dest="{{ airavata_source_dir }}"
-    version="{{ git_branch }}"
-  register: checkout
-  tags: update
-  become: yes
-  become_user: "{{ user }}"
-
-- name: Run maven build
-  command: mvn clean install -Dmaven.test.skip=true chdir="{{ airavata_source_dir }}/"
-  environment:
-    MAVEN_OPTS: "-Xmx2048m"
-  register: build
-  tags: update
-  become: yes
-  become_user: "{{ user }}"
 ...
diff --git a/ansible/roles/mft/tasks/main.yml b/ansible/roles/mft/tasks/main.yml
new file mode 100644
index 0000000..896c30d
--- /dev/null
+++ b/ansible/roles/mft/tasks/main.yml
@@ -0,0 +1,113 @@
+- name: Create MFT deployment directory {{ mft_deployment_dir }}
+  become: yes
+  file: path={{ mft_deployment_dir }}
+    state=directory
+    mode=0755
+    owner={{ user }}
+    group={{ group }}
+
+- name: Create MFT source directory
+  become: yes
+  file: path={{mft_source_dir}}
+    state=directory
+    mode=0755
+    owner={{ user }}
+    group={{ group }}
+
+- name: open firewall ports for MFT
+  firewalld: port="{{ item }}/tcp"
+    zone=public permanent=true state=enabled immediate=yes
+  with_items:
+    - "{{ mft_default_agent_port }}"
+    - "{{ mft_consul_port }}"
+    - "{{ mft_resource_service_grpc_port }}"
+    - "{{ mft_secret_service_grpc_port }}"
+  become: yes
+
+#- name: git checkout from MFT github repo {{ mft_repo }} branch {{ mft_git_branch }}
+#  git: repo="{{ mft_repo }}"
+#    dest="{{ mft_source_dir }}"
+#    version="{{ mft_git_branch }}"
+#  register: checkout
+#  tags: update
+#  become: yes
+#  become_user: "{{ user }}"
+
+#- name: Run MFT maven build
+#  command: mvn clean install -Dmaven.test.skip=true chdir="{{ mft_source_dir }}/"
+#  environment:
+#    MAVEN_OPTS: "-Xmx2048m"
+#  register: build
+#  tags: update
+#  become: yes
+#  become_user: "{{ user }}"
+
+- name: Stop daemons if running
+  command: "{{ item.command }} chdir={{ mft_deployment_dir }}/{{ item.dir }}/"
+  with_items:
+    - { command: ./bin/controller-daemon.sh stop, dir: "MFT-Controller-{{mft_distribution_version}}" }
+    - { command: ./bin/agent-daemon.sh stop, dir: "MFT-Agent-{{mft_distribution_version}}" }
+    - { command: ./bin/api-service-daemon.sh stop, dir: "API-Service-{{mft_distribution_version}}" }
+    - { command: ./bin/resource-service-daemon.sh stop, dir: "Resource-Service-{{mft_distribution_version}}" }
+    - { command: ./bin/secret-service-daemon.sh stop, dir: "Secret-Service-{{mft_distribution_version}}" }
+  ignore_errors: yes
+  become: yes
+  become_user: "{{ user }}"
+
+- name: Copy MFT distributions to MFT deployment directory
+  unarchive: "src={{ mft_source_dir }}/{{ item }}
+              dest={{ mft_deployment_dir }}/ copy=no"
+  with_items:
+    - "agent/target/MFT-Agent-{{mft_distribution_version}}-bin.zip"
+    - "api/service/target/API-Service-{{mft_distribution_version}}-bin.zip"
+    - "controller/target/MFT-Controller-{{mft_distribution_version}}-bin.zip"
+    - "services/resource-service/server/target/Resource-Service-{{mft_distribution_version}}-bin.zip"
+    - "services/secret-service/server/target/Secret-Service-{{mft_distribution_version}}-bin.zip"
+  become: yes
+  become_user: "{{ user }}"
+
+- name: Copy MFT property files
+  template: "src={{ item.name }}
+            dest={{ mft_deployment_dir }}/{{ item.dir }}/conf/{{ item.target }}
+            owner={{ user }}
+            group={{ group }}
+            mode=\"u=rw,g=r,o=r\""
+  with_items:
+    - { name: agent/application.properties.j2,
+        dir: "MFT-Agent-{{mft_distribution_version}}",
+        target: application.properties}
+    - { name: api-service/application.properties.j2,
+        dir: "API-Service-{{mft_distribution_version}}",
+        target: application.properties}
+    - { name: resource-service/application.properties.j2,
+        dir: "Resource-Service-{{mft_distribution_version}}",
+        target: application.properties}
+    - { name: resource-service/applicationContext.xml.j2,
+        dir: "Resource-Service-{{mft_distribution_version}}",
+        target: applicationContext.xml}
+    - { name: secret-service/application.properties.j2,
+        dir: "Secret-Service-{{mft_distribution_version}}",
+        target: application.properties }
+    - { name: secret-service/applicationContext.xml.j2,
+        dir: "Secret-Service-{{mft_distribution_version}}",
+        target: applicationContext.xml }
+    - { name: secret-service/secrets.json.j2,
+        dir: "Secret-Service-{{mft_distribution_version}}",
+        target: secrets.json }
+    - { name: agent/application.properties.j2,
+        dir: "MFT-Controller-{{mft_distribution_version}}",
+        target: application.properties }
+  become: yes
+  become_user: "{{ user }}"
+
+
+- name: Start MFT daemons
+  command: "{{ item.command }} chdir={{ mft_deployment_dir }}/{{ item.dir }}/"
+  with_items:
+    - { command: ./bin/controller-daemon.sh start, dir: "MFT-Controller-{{mft_distribution_version}}" }
+    - { command: ./bin/agent-daemon.sh start, dir: "MFT-Agent-{{mft_distribution_version}}" }
+    - { command: ./bin/api-service-daemon.sh start, dir: "API-Service-{{mft_distribution_version}}" }
+    - { command: ./bin/resource-service-daemon.sh start, dir: "Resource-Service-{{mft_distribution_version}}" }
+    - { command: ./bin/secret-service-daemon.sh start, dir: "Secret-Service-{{mft_distribution_version}}" }
+  become: yes
+  become_user: "{{ user }}"
diff --git a/ansible/roles/mft/templates/agent/application.properties.j2 b/ansible/roles/mft/templates/agent/application.properties.j2
new file mode 100644
index 0000000..b6a5260
--- /dev/null
+++ b/ansible/roles/mft/templates/agent/application.properties.j2
@@ -0,0 +1,33 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+spring.main.web-application-type=NONE
+agent.id={{ mft_default_agent_id }}
+agent.secret=CHANGE_ME
+agent.host={{ mft_default_agent_host }}
+agent.user=CHANGE_ME
+agent.http.port={{ mft_default_agent_port }}
+agent.https.enabled=false
+agent.supported.protocols=SCP,LOCAL,FTP
+
+consul.host={{ mft_consul_host }}
+consul.port={{ mft_consul_port }}
+
+resource.service.host={{ mft_resource_service_host }}
+resource.service.port={{ mft_resource_service_grpc_port }}
+secret.service.host={{ mft_secret_service_host }}
+secret.service.port={{ mft_secret_service_grpc_port }}
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/api-service/application.properties.j2 b/ansible/roles/mft/templates/api-service/application.properties.j2
new file mode 100644
index 0000000..65b6d5e
--- /dev/null
+++ b/ansible/roles/mft/templates/api-service/application.properties.j2
@@ -0,0 +1,27 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+server.port={{ mft_api_service_http_port }}
+grpc.port={{ mft_api_service_grpc_port }}
+consul.host={{ mft_consul_host }}
+consul.port={{ mft_consul_port }}
+api.id={{ mft_api_service_id }}
+
+resource.service.host={{ mft_resource_service_host }}
+resource.service.port={{ mft_resource_service_grpc_port }}
+secret.service.host={{ mft_secret_service_host }}
+secret.service.port={{ mft_secret_service_grpc_port }}
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/controller/application.properties.j2 b/ansible/roles/mft/templates/controller/application.properties.j2
new file mode 100644
index 0000000..ae22d1b
--- /dev/null
+++ b/ansible/roles/mft/templates/controller/application.properties.j2
@@ -0,0 +1,18 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+consul.host={{ mft_consul_host }}
+consul.port={{ mft_consul_port }}
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/resource-service/application.properties.j2 b/ansible/roles/mft/templates/resource-service/application.properties.j2
new file mode 100644
index 0000000..c15b4fe
--- /dev/null
+++ b/ansible/roles/mft/templates/resource-service/application.properties.j2
@@ -0,0 +1,33 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+server.port={{ mft_resource_service_http_port }}
+grpc.port={{ mft_resource_service_grpc_port }}
+grpc.enableReflection=true
+
+# Configurations for Airavata Backend
+airavata.backend.registry.server.host=localhost
+airavata.backend.registry.server.port=8970
+
+# Configurations for File Backend
+file.backend.resource.file=resources.json
+file.backend.storage.file=storages.json
+
+datalake.backend.drms.host={{ datalake_drms_host }}
+datalake.backend.drms.port={{ datalake_drms_grpc_port }}
+datalake.backend.custos.client.id={{ mft_resource_service_custos_client_id }}
+datalake.backend.custos.client.secret={{ mft_resource_service_custos_client_secret }}
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/resource-service/applicationContext.xml.j2 b/ansible/roles/mft/templates/resource-service/applicationContext.xml.j2
new file mode 100644
index 0000000..201d501
--- /dev/null
+++ b/ansible/roles/mft/templates/resource-service/applicationContext.xml.j2
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/context
+        http://www.springframework.org/schema/context/spring-context.xsd">
+
+    <bean id="resourceBackend" class="{{ mft_resource_service_backend }}"
+          init-method="init" destroy-method="destroy"></bean>
+</beans>
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/secret-service/application.properties.j2 b/ansible/roles/mft/templates/secret-service/application.properties.j2
new file mode 100644
index 0000000..332b2bb
--- /dev/null
+++ b/ansible/roles/mft/templates/secret-service/application.properties.j2
@@ -0,0 +1,32 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+server.port={{ mft_secret_service_http_port }}
+grpc.port={{ mft_secret_service_grpc_port }}
+
+# Configurations for Airavata Backend
+airavata.backend.credential.server.host=149.165.170.103
+airavata.backend.credential.server.port=8960
+
+# Configurations for file Backend
+file.backend.secret.file=secrets.json
+
+# Configurations for Custos Backend
+custos.host=custos.scigap.org
+custos.port=31499
+custos.id=CHANGE_ME
+custos.secret=CHANGE_ME
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/secret-service/applicationContext.xml.j2 b/ansible/roles/mft/templates/secret-service/applicationContext.xml.j2
new file mode 100644
index 0000000..29b8079
--- /dev/null
+++ b/ansible/roles/mft/templates/secret-service/applicationContext.xml.j2
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        http://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/context
+        http://www.springframework.org/schema/context/spring-context.xsd">
+
+<!--    <bean id="resourceBackend" class="org.apache.airavata.mft.secret.server.backend.file.FileBasedSecretBackend"-->
+<!--          init-method="init" destroy-method="destroy"></bean>-->
+    <bean id="resourceBackend" class="{{ mft_secret_service_backend }}"
+          init-method="init" destroy-method="destroy"></bean>
+
+</beans>
\ No newline at end of file
diff --git a/ansible/roles/mft/templates/secret-service/secrets.json.j2 b/ansible/roles/mft/templates/secret-service/secrets.json.j2
new file mode 100644
index 0000000..3e9435f
--- /dev/null
+++ b/ansible/roles/mft/templates/secret-service/secrets.json.j2
@@ -0,0 +1,35 @@
+[
+  {
+    "type": "SCP",
+    "secretId": "local-ssh-cred",
+    "privateKey": "",
+    "publicKey": "",
+    "passphrase": ""
+  },
+  {
+    "type": "S3",
+    "secretId": "s3-cred",
+    "accessKey": "",
+    "secretKey": ""
+  },
+  {
+    "type": "BOX",
+    "secretId": "box-cred",
+    "accessToken": ""
+  },
+  {
+    "type": "AZURE",
+    "secretId": "azure-cred",
+    "connectionString": "azure-con"
+  },
+  {
+    "type": "GCS",
+    "secretId": "gcs-cred",
+    "credentialsJson": ""
+  },
+  {
+    "type": "DROPBOX",
+    "secretId": "dropbox-cred",
+    "accessToken": ""
+  }
+]
\ No newline at end of file
diff --git a/data-resource-management-service/drms-custos-synchronizer/src/main/resources/config.yml b/data-resource-management-service/drms-custos-synchronizer/src/main/resources/config.yml
index 1387395..621ecc6 100644
--- a/data-resource-management-service/drms-custos-synchronizer/src/main/resources/config.yml
+++ b/data-resource-management-service/drms-custos-synchronizer/src/main/resources/config.yml
@@ -1,8 +1,8 @@
 pollingInterval: 60
 dataResourceManagementService:
-  dbURI: "bolt://149.165.156.173:7687"
+  dbURI: "bolt://192.168.0.14:7687"
   dbUser: "neo4j"
-  dbPassword: "blastcovid19"
+  dbPassword: "123456"
 custos:
   host: "custos.scigap.org"
   port: 31499