http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/pga/templates/pga_config.php.j2 ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/pga/templates/pga_config.php.j2 index 0000000,0000000..7b38575 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/pga/templates/pga_config.php.j2 @@@ -1,0 -1,0 +1,248 @@@ ++<?php ++return array( ++ /** ++ * ***************************************************************** ++ * WSO2 Identity Server Related Configurations ++ * ***************************************************************** ++ */ ++ ++ 'wsis' => [ ++ ++ /** ++ * Admin Role Name ++ */ ++ 'admin-role-name' => 'admin', ++ ++ /** ++ * Read only Admin Role Name ++ */ ++ 'read-only-admin-role-name' => 'admin-read-only', ++ ++ /** ++ * Gateway user role ++ */ ++ 'user-role-name' => 'gateway-user', ++ ++ /** ++ * Tenant Domain ++ */ ++ 'tenant-domain' => '{{ tenant_domain }}', ++ ++ /** ++ * Tenant admin's username ++ */ ++ 'admin-username' => '{{ admin_username }}', ++ ++ /** ++ * Tenant admin's password ++ */ ++ 'admin-password' => '{{ admin_password }}', ++ ++ /** ++ * OAuth client key ++ */ ++ 'oauth-client-key' => '{{ oauth_client_key }}', ++ ++ /** ++ * OAuth client secret ++ */ ++ 'oauth-client-secret' => '{{ oauth_client_secret }}', ++ ++ /** ++ * OAuth Grant Type (password or authorization_code) ++ */ ++ 'oauth-grant-type' => 'password', ++ ++ /** ++ * Identity server domain ++ */ ++ 'server' => 'idp.scigap.org', ++ ++ /** ++ * Identity server url ++ */ ++ 'service-url' => 'https://idp.scigap.org:9443/', ++ ++ /** ++ * Enable HTTPS server verification ++ */ ++ 'verify-peer' => true, ++ ++ /** ++ * Path to the server certificate file ++ */ ++ 'cafile-path' => app_path() . '/resources/security/idp_scigap_org.pem', ++ ++ /** ++ * Allow self signed server certificates ++ */ ++ 'allow-self-signed-cert' => false ++ ], ++ ++ ++ /** ++ * ***************************************************************** ++ * Airavata Client Configurations ++ * ***************************************************************** ++ */ ++ 'airavata' => [ ++ ++ /** ++ * Airavata API server location. Use tls:// as the protocol to ++ * connect TLS enabled Airavata ++ */ ++ 'airavata-server' => '{{ airavata_server }}', ++ ++ /** ++ * Airavata API server port ++ */ ++ 'airavata-port' => '{{ airavata_port }}', ++ ++ /** ++ * Airavata API server thrift communication timeout ++ */ ++ 'airavata-timeout' => '1000000', ++ ++ /** ++ * PGA Gateway ID ++ */ ++ 'gateway-id' => '{{ gateway_id }}', ++ ++ /** ++ * Maximum size of a file which is allowed to upload to the server ++ */ ++ 'server-allowed-file-size' => 64, ++ ++ /** ++ * absolute path of the data dir ++ */ ++ 'experiment-data-absolute-path' => '{{ experiment_data_dir }}', ++ ++ /** ++ * Advanced experiments options ++ */ ++ 'advanced-experiment-options' => '', ++ ++ /** ++ * Default queue name ++ */ ++ 'queue-name' => 'long', ++ ++ /** ++ * Default node count ++ */ ++ 'node-count' => '1', ++ ++ /** ++ * Default total core count ++ */ ++ 'total-cpu-count' => '16', ++ ++ /** ++ * Default wall time limit ++ */ ++ 'wall-time-limit' => '30', ++ ++ /** ++ * Enable app-catalog cache ++ */ ++ 'enable-app-catalog-cache' => true, ++ ++ /** ++ * Life time of app catalog data cache in minutes ++ */ ++ 'app-catalog-cache-duration' => 5, ++ ++ /** ++ * Gateway data store resource id ++ */ ++ 'gateway-data-store-resource-id' => '{{ gateway_data_store_resource_id }}', ++ ++ /** ++ * Data Sharing enabled ++ */ ++ 'data-sharing-enabled' => false ++ ], ++ ++ /** ++ * ***************************************************************** ++ * Portal Related Configurations ++ * ***************************************************************** ++ */ ++ 'portal' => [ ++ /** ++ * Whether this portal is the SciGaP admin portal ++ */ ++ 'super-admin-portal' => {{ super_admin_portal }}, ++ ++ /** ++ * Set the name of theme in use here ++ */ ++ 'theme' => 'base', ++ ++ /** ++ * Portal title ++ */ ++ 'portal-title' => 'Airavata PHP Gateway', ++ ++ /** ++ * Email address of the portal admin. Portal admin well get email notifications for events ++ * such as new user creation ++ */ ++ 'admin-emails' => [{{ admin_emails }}], ++ ++ /** ++ * Email account that the portal should login to send emails ++ */ ++ 'portal-email-username' => '{{ portal_email_username }}', ++ ++ /** ++ * Password for the portal's email account ++ */ ++ 'portal-email-password' => '{{ portal_email_password }}', ++ ++ /** ++ * SMTP server on which the portal should connect ++ */ ++ 'portal-smtp-server-host' => 'smtp.gmail.com', ++ ++ /** ++ * SMTP server port on which the portal should connect ++ */ ++ 'portal-smtp-server-port' => '587', ++ ++ /** ++ * Set JIRA Issue Collector scripts here. ++ */ ++ 'jira-help' => ++ [ ++ /** ++ * Report Issue Script issued for your app by Atlassian JIRA ++ */ ++ 'report-issue-script' => '', ++ /** ++ * Collector id at the end of the above script ++ */ ++ 'report-issue-collector-id' => '', ++ /** ++ * Create Report Script issued for your app by Atlassian JIRA ++ */ ++ 'request-feature-script' => '', ++ /** ++ * Collector id at the end of the above script ++ */ ++ 'request-feature-collector-id' => '' ++ ], ++ ++ /** ++ * Set Google Analytics Id here. ID format that generates from ++ * creating tracker object should be ++ * ++ * UA-XXXXX-Y ++ * ++ * for it to be working correctly. Currently it is only set for ++ * sending pageviews. ++ */ ++ 'google-analytics-id' => '' ++ ] ++);
http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/pga/vars/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/pga/vars/main.yml index 0000000,0000000..298e897 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/pga/vars/main.yml @@@ -1,0 -1,0 +1,30 @@@ ++--- ++pga_user: "pga" ++pga_group: "pga" ++doc_root_dir: "/var/www/html/php-gateway" ++user_data_dir: "/var/www/user_data" ++#httpd_conf_file: "/etc/httpd/conf/httpd.conf" ++httpd_conf_file_location: "/etc/httpd/conf" ++ ++## WSO2 IS related variables ++tenant_domain: "prod.testdrive" ++admin_username: "tdaadmin" ++admin_password: "SciDeploy" ++oauth_client_key: "RuLl_Uw7i_KXaLoAGJkiasTfyBYa" ++oauth_client_secret: "vD9yi2ANkChzgWiih3RahrIcfsoa" ++ ++## Airavata Client related variables ++#airavata_server: "tls://gw77.iu.xsede.org" ++airavata_server: "{{ groups['api-orch'][0] }}" ++airavata_port: "8930" ++gateway_id: "{{ default_gateway }}" ++# relative to document root dir ++experiment_data_dir: "{{ user_data_dir }}" ++gateway_data_store_resource_id: "js-170-103.jetstream-cloud.org_6497a464-3121-4b64-a7cb-d195b0a26c19" ++ ++## Portal related variables ++super_admin_portal: "true" ++admin_emails: "'[email protected]'" ++portal_email_username: "[email protected]" ++portal_email_password: "airavata12" ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/rabbitmq/handlers/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/rabbitmq/handlers/main.yml index 0000000,0000000..fef807a new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/rabbitmq/handlers/main.yml @@@ -1,0 -1,0 +1,13 @@@ ++--- ++# Rabbitmq related handlers ++- name: start rabbitmq ++ service: name=rabbitmq-server state=started enabled=yes ++ become: yes ++ ++- name: stop rabbitmq ++ service: name=rabbitmq-server state=stopped ++ become: yes ++ ++- name: restart rabbitmq ++ service: name=rabbitmq-server state=restarted enabled=yes ++ become: yes http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/rabbitmq/tasks/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/rabbitmq/tasks/main.yml index 0000000,0000000..f44a0a6 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/rabbitmq/tasks/main.yml @@@ -1,0 -1,0 +1,60 @@@ ++--- ++################################################################################ ++# Setup and run rabbitmq ++- name: Install erlang latest version ++ yum: name=https://www.rabbitmq.com/releases/erlang/erlang-18.3-1.el7.centos.x86_64.rpm state=present ++ become: yes ++ ++- name: Install Rabbitmq rpm ++ yum: name=https://www.rabbitmq.com/releases/rabbitmq-server/v3.6.3/rabbitmq-server-3.6.3-1.noarch.rpm state=present ++ become: yes ++ ++ # add hostname to /etc/hosts file ++- name: get ip4 address ++ # command: dig +short myip.opendns.com @resolver1.opendns.com ++ command: hostname -i ++ register: _ip4 ++ ++- name: open rabbitmq ports ++ firewalld: port={{ item }} zone=public permanent=true state=enabled immediate=yes ++ with_items: ++ - "{{ rabbitmq_port }}/tcp" ++ - "{{ management_plugin_port }}/tcp" ++ become: yes ++ ++- name: Edit /etc/hosts file ++ lineinfile: dest=/etc/hosts line="{{ _ip4.stdout }} {{ ansible_fqdn }}" ++ notify: ++ - restart rabbitmq ++ become: yes ++ ++- name: Start Rabbitmq server ++ service: name=rabbitmq-server state=started enabled=yes ++ become: yes ++ ++- name: Enable rabbitmq management plugin ++ rabbitmq_plugin: names=rabbitmq_management state=enabled ++ notify: ++ - restart rabbitmq ++ become: yes ++ ++- name: Create rabbitmq vhost {{ rabbitmq_vhost }} ++ rabbitmq_vhost: name="{{ rabbitmq_vhost }}" state=present ++ become: yes ++ ++- name: Add user {{ rabbitmq_user }} to vhost {{ rabbitmq_vhost }} and give permission ++ rabbitmq_user: user="{{ rabbitmq_user }}" ++ password="{{ rabbitmq_password }}" ++ vhost="{{ rabbitmq_vhost }}" ++ tags="administrator" ++ configure_priv=.* ++ read_priv=.* ++ write_priv=.* ++ state=present ++ become: yes ++ ++- name: restart rabbitmq ++ service: name=rabbitmq-server state=restarted ++ become: yes ++ ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/rabbitmq/vars/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/rabbitmq/vars/main.yml index 0000000,0000000..c5ab904 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/rabbitmq/vars/main.yml @@@ -1,0 -1,0 +1,2 @@@ ++--- ++management_plugin_port: "15672" http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/registry/files/mysql-connector-java-5.1.37-bin.jar ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/registry/files/mysql-connector-java-5.1.37-bin.jar index 0000000,0000000..465af67 new file mode 100644 Binary files differ http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/registry/tasks/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/registry/tasks/main.yml index 0000000,0000000..9bd2784 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/registry/tasks/main.yml @@@ -1,0 -1,0 +1,59 @@@ ++--- ++ ++################################################################################ ++- name: Create registry deployment directory ++ file: path="{{ registry_dir }}" state=directory owner={{ user }} group={{ group }} ++ when: build|success ++ ++- name: Check previous deployments ++ stat: path="{{ registry_dir }}/{{ airavata_dist }}" get_md5=no get_checksum=no ++ register: check ++ ++- name: stop registry ++ command: ./bin/airavata-server-stop.sh -f ++ chdir="{{ registry_dir }}/{{ airavata_dist }}/" ++ removes="{{ registry_dir }}/{{ airavata_dist }}/bin/server_start_*" ++ when: check.stat.exists == True ++ ++- name: Delete previous deployments ++ file: path="{{ registry_dir }}/{{ airavata_dist }}" state=absent ++ ++- name: Copy distribution to registry deployment directory ++ unarchive: src="{{ airavata_source_dir }}/modules/distribution/target/{{ airavata_dist_name }}" ++ dest="{{ registry_dir }}/" ++ copy=no ++ ++- name: set gfac private ip ++ set_fact: ++ registry_host: "{{ ansible_eth0.ipv4.address }}" ++ ++- name: Copy Airavata server properties file ++ template: src=airavata-server.properties.j2 ++ dest="{{ registry_dir }}/{{ airavata_dist }}/bin/airavata-server.properties" ++ owner={{ user }} ++ group={{ group }} ++ mode="u=rw,g=r,o=r" ++ ++- name: Copy Mysql jar to lib ++ copy: src="{{ mysql_connector_jar }}" ++ dest="{{ registry_dir }}/{{ airavata_dist }}/lib/{{ mysql_connector_jar }}" ++ owner={{ user }} ++ group={{ group }} ++ ++ ++- name: Open firwall ports ++ firewalld: port="{{ registry_port }}/tcp" zone=public permanent=true state=enabled immediate=yes ++ become_user: root ++ ++- name: stop registry ++ command: ./bin/airavata-server-stop.sh -f ++ chdir="{{ registry_dir }}/{{ airavata_dist }}/" ++ removes="{{ registry_dir }}/{{ airavata_dist }}/bin/server_start_*" ++ ++- name: start registry ++ command: ./bin/airavata-server-start.sh regserver -d ++ chdir="{{ registry_dir }}/{{ airavata_dist }}/" ++ creates="{{ registry_dir }}/{{ airavata_dist }}/bin/server_start_*" ++ ++ ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/registry/templates/airavata-server.properties.j2 ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/registry/templates/airavata-server.properties.j2 index 0000000,0000000..b8d093e new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/registry/templates/airavata-server.properties.j2 @@@ -1,0 -1,0 +1,281 @@@ ++# ++# ++# 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. ++# ++ ++########################################################################### ++# ++# This properties file provides configuration for all Airavata Services: ++# API Server, Registry, Workflow Interpreter, GFac, Orchestrator ++# ++########################################################################### ++ ++########################################################################### ++# API Server Registry Configuration ++########################################################################### ++ ++#for derby [AiravataJPARegistry] ++#registry.jdbc.driver=org.apache.derby.jdbc.ClientDriver ++#registry.jdbc.url=jdbc:derby://localhost:1527/experiment_catalog;create=true;user=airavata;password=airavata ++# MySql database configuration ++registry.jdbc.driver=com.mysql.jdbc.Driver ++registry.jdbc.url=jdbc:mysql://{{ db_server }}:{{ db_server_port }}/{{ exp_catalog }} ++registry.jdbc.user={{ db_user }} ++registry.jdbc.password={{ db_password }} ++#FIXME: Probably the following property should be removed. ++start.derby.server.mode=false ++validationQuery=SELECT 1 from CONFIGURATION ++cache.enable=false ++jpa.cache.size=-1 ++#jpa.connection.properties=MaxActive=10,MaxIdle=5,MinIdle=2,MaxWait=60000,testWhileIdle=true,testOnBorrow=true ++enable.sharing={{enable_sharing}} ++ ++# Properties for default user mode ++default.registry.user=admin ++default.registry.password=admin ++default.registry.password.hash.method=SHA ++default.registry.gateway={{ default_gateway }} ++ ++########################################################################### ++# Application Catalog DB Configuration ++########################################################################### ++#for derby [AiravataJPARegistry] ++#appcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver ++#appcatalog.jdbc.url=jdbc:derby://localhost:1527/app_catalog;create=true;user=airavata;password=airavata ++# MySql database configuration ++appcatalog.jdbc.driver=com.mysql.jdbc.Driver ++appcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ app_catalog }} ++appcatalog.jdbc.user={{ db_user }} ++appcatalog.jdbc.password={{ db_password }} ++appcatalog.validationQuery=SELECT 1 from CONFIGURATION ++ ++########################################################################## ++# Replica Catalog DB Configuration ++########################################################################### ++#for derby [AiravataJPARegistry] ++#replicacatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver ++#replicacatalog.jdbc.url=jdbc:derby://localhost:1527/replica_catalog;create=true;user=airavata;password=airavata ++# MySql database configuration ++replicacatalog.jdbc.driver=com.mysql.jdbc.Driver ++replicacatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }} ++replicacatalog.jdbc.user={{ db_user }} ++replicacatalog.jdbc.password={{ db_password }} ++replicacatalog.validationQuery=SELECT 1 from CONFIGURATION ++ ++########################################################################### ++# Workflow Catalog DB Configuration ++########################################################################### ++#for derby [AiravataJPARegistry] ++#workflowcatalog.jdbc.driver=org.apache.derby.jdbc.ClientDriver ++#workflowcatalog.jdbc.url=jdbc:derby://localhost:1527/workflow_catalog;create=true;user=airavata;password=airavata ++# MySql database configuration ++workflowcatalog.jdbc.driver=com.mysql.jdbc.Driver ++workflowcatalog.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ replica_catalog }} ++workflowcatalog.jdbc.user={{ db_user }} ++workflowcatalog.jdbc.password={{ db_password }} ++workflowcatalog.validationQuery=SELECT 1 from CONFIGURATION ++ ++########################################################################### ++# User Profile MongoDB Configuration ++########################################################################### ++userprofile.mongodb.host=localhost ++userprofile.mongodb.port=27017 ++ ++ ++########################################################################### ++# Server module Configuration ++########################################################################### ++#credential store server should be started before API server ++#This is obsolete property with new script files. ++#servers=credentialstore,apiserver,orchestrator ++ ++ ++########################################################################### ++# API Server Configurations ++########################################################################### ++apiserver=org.apache.airavata.api.server.AiravataAPIServer ++apiserver.name={{ api_server_name }} ++apiserver.host={{ api_server_host }} ++apiserver.port={{ api_server_port }} ++apiserver.min.threads=50 ++ ++########################################################################### ++# Orchestrator Server Configurations ++########################################################################### ++orchestrator=org.apache.airavata.orchestrator.server.OrchestratorServer ++orchestrator.server.name={{ orchestrator_name }} ++orchestrator.server.host={{ orchestrator_host }} ++orchestrator.server.port={{ orchestrator_port }} ++orchestrator.server.min.threads=50 ++job.validators=org.apache.airavata.orchestrator.core.validator.impl.BatchQueueValidator,org.apache.airavata.orchestrator.core.validator.impl.ExperimentStatusValidator ++submitter.interval=10000 ++threadpool.size=10 ++start.submitter=true ++embedded.mode=true ++enable.validation=true ++ ++########################################################################### ++# Registry Server Configurations ++########################################################################### ++regserver=org.apache.airavata.registry.api.service.RegistryAPIServer ++regserver.server.name={{registry_name}} ++regserver.server.host={{registry_host}} ++regserver.server.port={{registry_port}} ++regserver.server.min.threads=50 ++ ++########################################################################### ++# GFac Server Configurations ++########################################################################### ++gfac=org.apache.airavata.gfac.server.GfacServer ++gfac.server.name={{ gfac_name }} ++gfac.server.host={{ gfac_host }} ++gfac.server.port={{ gfac_port }} ++gfac.thread.pool.size=50 ++host.scheduler=org.apache.airavata.gfac.impl.DefaultHostScheduler ++ ++ ++ ++########################################################################### ++# Airavata Workflow Interpreter Configurations ++########################################################################### ++workflowserver=org.apache.airavata.api.server.WorkflowServer ++enactment.thread.pool.size=10 ++ ++#to define custom workflow parser user following property ++#workflow.parser=org.apache.airavata.workflow.core.parser.AiravataWorkflowBuilder ++ ++ ++ ++########################################################################### ++# Job Scheduler can send informative email messages to you about the status of your job. ++# Specify a string which consists of either the single character "n" (no mail), or one or more ++# of the characters "a" (send mail when job is aborted), "b" (send mail when job begins), ++# and "e" (send mail when job terminates). The default is "a" if not specified. ++########################################################################### ++ ++job.notification.enable=true ++#Provide comma separated email ids as a string if more than one ++job.notification.emailids= ++job.notification.flags=abe ++ ++########################################################################### ++# Credential Store module Configuration ++########################################################################### ++credential.store.keystore.url={{ keystores_location }}/{{ cred_keystore }} ++credential.store.keystore.alias={{ cred_keystore_alias }} ++credential.store.keystore.password={{ cred_keystore_passwd }} ++credential.store.jdbc.url=jdbc:mysql://{{ db_server }}:3306/{{ credential_store }} ++credential.store.jdbc.user={{ db_user }} ++credential.store.jdbc.password={{ db_password }} ++credential.store.jdbc.driver=com.mysql.jdbc.Driver ++credential.store.server.host={{ cred_store_server_host }} ++credential.store.server.port={{ cred_store_port }} ++credentialstore=org.apache.airavata.credential.store.server.CredentialStoreServer ++credential.stroe.jdbc.validationQuery=SELECT 1 from CONFIGURATION ++ ++# these properties used by credential store email notifications ++email.server=smtp.googlemail.com ++email.server.port=465 ++email.user=airavata ++email.password=xxx ++email.ssl=true [email protected] ++ ++# SSH PKI key pair or ssh password can be used SSH based sshKeyAuthentication is used. ++# if user specify both password sshKeyAuthentication gets the higher preference ++ ++################# ---------- For ssh key pair sshKeyAuthentication ------------------- ################ ++#ssh.public.key=/path to public key for ssh ++#ssh.private.key=/path to private key file for ssh ++#ssh.keypass=passphrase for the private key ++#ssh.username=username for ssh connection ++## If you set "yes" for ssh.strict.hostKey.checking, then you must provide known hosts file path ++#ssh.strict.hostKey.checking=yes/no ++#ssh.known.hosts.file=/path to known hosts file ++### Incase of password sshKeyAuthentication. ++#ssh.password=Password for ssh connection ++ ++################ ---------- BES Properties ------------------- ############### ++#bes.ca.cert.path=<location>/certificates/cacert.pem ++#bes.ca.key.path=<location>/certificates/cakey.pem ++#bes.ca.key.pass=passphrase ++ ++########################################################################### ++# Monitoring module Configuration ++########################################################################### ++ ++#This will be the primary monitoring tool which runs in airavata, in future there will be multiple monitoring ++#mechanisms and one would be able to start a monitor ++monitors=org.apache.airavata.gfac.monitor.impl.pull.qstat.QstatMonitor,org.apache.airavata.gfac.monitor.impl.LocalJobMonitor ++ ++#These properties will used to enable email base monitoring ++email.based.monitor.host=imap.gmail.com ++email.based.monitor.address={{ monitor_email_address }} ++email.based.monitor.password={{ monitor_email_password }} ++email.based.monitor.folder.name=INBOX ++# either imaps or pop3 ++email.based.monitor.store.protocol=imaps ++#These property will be used to query the email server periodically. value in milliseconds(ms). ++email.based.monitoring.period=10000 ++ ++########################################################################### ++# AMQP Notification Configuration ++########################################################################### ++#for simple scenarios we can use the guest user ++#rabbitmq.broker.url=amqp://localhost:5672 ++#for production scenarios, give url as amqp://userName:password@hostName:portNumber/virtualHost, create user, virtualhost ++# and give permissions, refer: http://blog.dtzq.com/2012/06/rabbitmq-users-and-virtual-hosts.html ++rabbitmq.broker.url={{ rabbitmq_broker_url }} ++rabbitmq.status.exchange.name=status_exchange ++rabbitmq.process.exchange.name=process_exchange ++rabbitmq.experiment.exchange.name=experiment_exchange ++durable.queue=false ++prefetch.count=200 ++process.launch.queue.name=process.launch.queue ++experiment.launch..queue.name=experiment.launch.queue ++ ++########################################################################### ++# Zookeeper Server Configuration ++########################################################################### ++embedded.zk=false ++zookeeper.server.connection={{ zookeeper_url }} ++zookeeper.timeout=30000 ++ ++######################################################################## ++## API Security Configuration ++######################################################################## ++api.secured={{ api_secured }} ++security.manager.class=org.apache.airavata.api.server.security.DefaultAiravataSecurityManager ++### TLS related configuration #### ++TLS.enabled={{ tls_enable }} ++TLS.api.server.port={{ api_server_tls_port }} ++TLS.client.timeout=10000 ++#### keystore configuration #### ++keystore.path={{ keystores_location }}/{{ keystore }} ++keystore.password={{ keystore_passwd }} ++#### trust store configuration #### ++trust.store={{ keystores_location }}/{{ client_truststore }} ++trust.store.password=airavata ++#### remote authorization server url #### ++remote.oauth.authorization.server=https://idp.scigap.org:9443/services/ ++#### xacml based authorization policy #### ++authorization.policy=airavata-default-xacml-policy ++#### authorization cache related configuration #### ++authz.cache.enabled=true ++authz.cache.manager.class=org.apache.airavata.api.server.security.authzcache.DefaultAuthzCacheManager ++in.memory.cache.size=1000 http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/wso2_is/tasks/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/wso2_is/tasks/main.yml index 0000000,0000000..1e506c2 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/wso2_is/tasks/main.yml @@@ -1,0 -1,0 +1,41 @@@ ++--- ++- name: install role pre-requireties ++ yum: name=unzip state=latest update_cache=yes ++ become: yes ++ ++# downlaod wso2 is ++# extract it ++# - name: Download and unarchive wso2 is ++# unarchive: src="{{ zookeeper_url }}" dest="{{ user_home }}" copy=no owner="{{ user }}" group="{{ group }}" ++# for now wso2is from localhost ++ ++- name: copy WSO2 IS ++ unarchive: > ++ src="{{ wso2_is_dist }}" ++ dest="{{ user_home }}/" ++ owner="{{ user }}" ++ group="{{ group }}" ++ creates="{{ user_home }}/{{ wso2_is_dir }}/bin/wso2server.sh" ++ ++- name: copy carbon.xml ++ template: > ++ src=carbon.xml.j2 ++ dest="{{ user_home }}/{{ wso2_is_dir }}/repository/conf/carbon.xml" ++ owner="{{ user }}" ++ group="{{ group }}" ++ mode="u=rw,g=r,o=r" ++ ++- name: open carabon management console port ++ firewalld: port=9443/tcp zone=public permanent=true state=enabled immediate=yes ++ become: yes ++ ++# start wso2 is server ++- name: start wso2 is ++ command: ./bin/wso2server.sh start chdir="{{ user_home }}/{{ wso2_is_dir }}/" creates="{{ user_home }}/{{ wso2_is_dir }}/wso2carbon.pid" ++ environment: ++ JAVA_HOME: "{{ java_home }}" ++ ++# - name: stop wso2 is ++ # command: ./bin/airavata-server-stop.sh -f chdir="{{ gfac_dir }}/{{ airavata_dist }}/" removes="{{ gfac_dir }}/{{ airavata_dist }}/bin/server_start_*" ++ ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/wso2_is/templates/carbon.xml.j2 ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/wso2_is/templates/carbon.xml.j2 index 0000000,0000000..5f421f2 new file mode 100755 --- /dev/null +++ b/dev-tools/ansible/roles/wso2_is/templates/carbon.xml.j2 @@@ -1,0 -1,0 +1,688 @@@ ++<?xml version="1.0" encoding="ISO-8859-1"?> ++<!-- ++ Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. ++ ++ Licensed 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. ++--> ++ ++<!-- ++ This is the main server configuration file ++ ++ ${carbon.home} represents the carbon.home system property. ++ Other system properties can be specified in a similar manner. ++--> ++<Server xmlns="http://wso2.org/projects/carbon/carbon.xml"> ++ ++ <!-- ++ Product Name ++ --> ++ <Name>WSO2 Identity Server</Name> ++ ++ <!-- ++ machine readable unique key to identify each product ++ --> ++ <ServerKey>IS</ServerKey> ++ ++ <!-- ++ Product Version ++ --> ++ <Version>5.1.0</Version> ++ ++ <!-- ++ Host name or IP address of the machine hosting this server ++ e.g. www.wso2.org, 192.168.1.10 ++ This is will become part of the End Point Reference of the ++ services deployed on this server instance. ++ --> ++ <HostName>{{ ansible_fqdn }}</HostName> ++ ++ <!-- ++ Host name to be used for the Carbon management console ++ --> ++ <MgtHostName>localhost</MgtHostName> ++ ++ <!-- ++ The URL of the back end server. This is where the admin services are hosted and ++ will be used by the clients in the front end server. ++ This is required only for the Front-end server. This is used when seperating BE server from FE server ++ --> ++ <ServerURL>local:/${carbon.context}/services/</ServerURL> ++ <!-- ++ <ServerURL>https://localhost:${carbon.management.port}${carbon.context}/services/</ServerURL> ++ --> ++ <!-- ++ The URL of the index page. This is where the user will be redirected after signing in to the ++ carbon server. ++ --> ++ <!-- IndexPageURL>/carbon/admin/index.jsp</IndexPageURL--> ++ ++ <!-- ++ For cApp deployment, we have to identify the roles that can be acted by the current server. ++ The following property is used for that purpose. Any number of roles can be defined here. ++ Regular expressions can be used in the role. ++ Ex : <Role>.*</Role> means this server can act any role ++ --> ++ <ServerRoles> ++ <Role>IdentityServer</Role> ++ </ServerRoles> ++ ++ <!-- uncommnet this line to subscribe to a bam instance automatically --> ++ <!--<BamServerURL>https://bamhost:bamport/services/</BamServerURL>--> ++ ++ <!-- ++ The fully qualified name of the server ++ --> ++ <Package>org.wso2.carbon</Package> ++ ++ <!-- ++ Webapp context root of WSO2 Carbon management console. ++ --> ++ <WebContextRoot>/</WebContextRoot> ++ ++ <!-- ++ Proxy context path is a useful parameter to add a proxy path when a Carbon server is fronted by reverse proxy. In addtion ++ to the proxy host and proxy port this parameter allows you add a path component to external URLs. e.g. ++ URL of the Carbon server -> https://10.100.1.1:9443/carbon ++ URL of the reverse proxy -> https://prod.abc.com/appserver/carbon ++ ++ appserver - proxy context path. This specially required whenever you are generating URLs to displace in ++ Carbon UI components. ++ --> ++ <!-- ++ <MgtProxyContextPath></MgtProxyContextPath> ++ <ProxyContextPath></ProxyContextPath> ++ --> ++ ++ <!-- In-order to get the registry http Port from the back-end when the default http transport is not the same--> ++ <!--RegistryHttpPort>9763</RegistryHttpPort--> ++ ++ <!-- ++ Number of items to be displayed on a management console page. This is used at the ++ backend server for pagination of various items. ++ --> ++ <ItemsPerPage>15</ItemsPerPage> ++ ++ <!-- The endpoint URL of the cloud instance management Web service --> ++ <!--<InstanceMgtWSEndpoint>https://ec2.amazonaws.com/</InstanceMgtWSEndpoint>--> ++ ++ <!-- ++ Ports used by this server ++ --> ++ <Ports> ++ ++ <!-- Ports offset. This entry will set the value of the ports defined below to ++ the define value + Offset. ++ e.g. Offset=2 and HTTPS port=9443 will set the effective HTTPS port to 9445 ++ --> ++ <Offset>0</Offset> ++ ++ <!-- The JMX Ports --> ++ <JMX> ++ <!--The port RMI registry is exposed--> ++ <RMIRegistryPort>9999</RMIRegistryPort> ++ <!--The port RMI server should be exposed--> ++ <RMIServerPort>11111</RMIServerPort> ++ </JMX> ++ ++ <!-- Embedded LDAP server specific ports --> ++ <EmbeddedLDAP> ++ <!-- Port which embedded LDAP server runs --> ++ <LDAPServerPort>10389</LDAPServerPort> ++ <!-- Port which KDC (Kerberos Key Distribution Center) server runs --> ++ <KDCServerPort>8000</KDCServerPort> ++ </EmbeddedLDAP> ++ ++ <!-- ++ Override datasources JNDIproviderPort defined in bps.xml and datasources.properties files ++ --> ++ <!--<JNDIProviderPort>2199</JNDIProviderPort>--> ++ <!--Override receive port of thrift based entitlement service.--> ++ <ThriftEntitlementReceivePort>10500</ThriftEntitlementReceivePort> ++ ++ <!-- ++ This is the proxy port of the worker cluster. These need to be configured in a scenario where ++ manager node is not exposed through the load balancer through which the workers are exposed ++ therefore doesn't have a proxy port. ++ <WorkerHttpProxyPort>80</WorkerHttpProxyPort> ++ <WorkerHttpsProxyPort>443</WorkerHttpsProxyPort> ++ --> ++ ++ </Ports> ++ ++ <!-- ++ JNDI Configuration ++ --> ++ <JNDI> ++ <!-- ++ The fully qualified name of the default initial context factory ++ --> ++ <DefaultInitialContextFactory>org.wso2.carbon.tomcat.jndi.CarbonJavaURLContextFactory</DefaultInitialContextFactory> ++ <!-- ++ The restrictions that are done to various JNDI Contexts in a Multi-tenant environment ++ --> ++ <Restrictions> ++ <!-- ++ Contexts that will be available only to the super-tenant ++ --> ++ <!-- <SuperTenantOnly> ++ <UrlContexts> ++ <UrlContext> ++ <Scheme>foo</Scheme> ++ </UrlContext> ++ <UrlContext> ++ <Scheme>bar</Scheme> ++ </UrlContext> ++ </UrlContexts> ++ </SuperTenantOnly> --> ++ <!-- ++ Contexts that are common to all tenants ++ --> ++ <AllTenants> ++ <UrlContexts> ++ <UrlContext> ++ <Scheme>java</Scheme> ++ </UrlContext> ++ <!-- <UrlContext> ++ <Scheme>foo</Scheme> ++ </UrlContext> --> ++ </UrlContexts> ++ </AllTenants> ++ <!-- ++ All other contexts not mentioned above will be available on a per-tenant basis ++ (i.e. will not be shared among tenants) ++ --> ++ </Restrictions> ++ </JNDI> ++ ++ <!-- ++ Property to determine if the server is running an a cloud deployment environment. ++ This property should only be used to determine deployment specific details that are ++ applicable only in a cloud deployment, i.e when the server deployed *-as-a-service. ++ --> ++ <IsCloudDeployment>false</IsCloudDeployment> ++ ++ <!-- ++ Property to determine whether usage data should be collected for metering purposes ++ --> ++ <EnableMetering>false</EnableMetering> ++ ++ <!-- The Max time a thread should take for execution in seconds --> ++ <MaxThreadExecutionTime>600</MaxThreadExecutionTime> ++ ++ <!-- ++ A flag to enable or disable Ghost Deployer. By default this is set to false. That is ++ because the Ghost Deployer works only with the HTTP/S transports. If you are using ++ other transports, don't enable Ghost Deployer. ++ --> ++ <GhostDeployment> ++ <Enabled>false</Enabled> ++ </GhostDeployment> ++ ++ ++ <!-- ++ Eager loading or lazy loading is a design pattern commonly used in computer programming which ++ will initialize an object upon creation or load on-demand. In carbon, lazy loading is used to ++ load tenant when a request is received only. Similarly Eager loading is used to enable load ++ existing tenants after carbon server starts up. Using this feature, you will be able to include ++ or exclude tenants which are to be loaded when server startup. ++ ++ We can enable only one LoadingPolicy at a given time. ++ ++ 1. Tenant Lazy Loading ++ This is the default behaviour and enabled by default. With this policy, tenants are not loaded at ++ server startup, but loaded based on-demand (i.e when a request is received for a tenant). ++ The default tenant idle time is 30 minutes. ++ ++ 2. Tenant Eager Loading ++ This is by default not enabled. It can be be enabled by un-commenting the <EagerLoading> section. ++ The eager loading configurations supported are as below. These configurations can be given as the ++ value for <Include> element with eager loading. ++ (i)Load all tenants when server startup - * ++ (ii)Load all tenants except foo.com & bar.com - *,!foo.com,!bar.com ++ (iii)Load only foo.com & bar.com to be included - foo.com,bar.com ++ --> ++ <Tenant> ++ <LoadingPolicy> ++ <LazyLoading> ++ <IdleTime>30</IdleTime> ++ </LazyLoading> ++ <!-- <EagerLoading> ++ <Include>*,!foo.com,!bar.com</Include> ++ </EagerLoading>--> ++ </LoadingPolicy> ++ </Tenant> ++ ++ <!-- ++ Caching related configurations ++ --> ++ <Cache> ++ <!-- Default cache timeout in minutes --> ++ <DefaultCacheTimeout>15</DefaultCacheTimeout> ++ </Cache> ++ ++ <!-- ++ Axis2 related configurations ++ --> ++ <Axis2Config> ++ <!-- ++ Location of the Axis2 Services & Modules repository ++ ++ This can be a directory in the local file system, or a URL. ++ ++ e.g. ++ 1. /home/wso2wsas/repository/ - An absolute path ++ 2. repository - In this case, the path is relative to CARBON_HOME ++ 3. file:///home/wso2wsas/repository/ ++ 4. http://wso2wsas/repository/ ++ --> ++ <RepositoryLocation>${carbon.home}/repository/deployment/server/</RepositoryLocation> ++ ++ <!-- ++ Deployment update interval in seconds. This is the interval between repository listener ++ executions. ++ --> ++ <DeploymentUpdateInterval>15</DeploymentUpdateInterval> ++ ++ <!-- ++ Location of the main Axis2 configuration descriptor file, a.k.a. axis2.xml file ++ ++ This can be a file on the local file system, or a URL ++ ++ e.g. ++ 1. /home/repository/axis2.xml - An absolute path ++ 2. conf/axis2.xml - In this case, the path is relative to CARBON_HOME ++ 3. file:///home/carbon/repository/axis2.xml ++ 4. http://repository/conf/axis2.xml ++ --> ++ <ConfigurationFile>${carbon.home}/repository/conf/axis2/axis2.xml</ConfigurationFile> ++ ++ <!-- ++ ServiceGroupContextIdleTime, which will be set in ConfigurationContex ++ for multiple clients which are going to access the same ServiceGroupContext ++ Default Value is 30 Sec. ++ --> ++ <ServiceGroupContextIdleTime>30000</ServiceGroupContextIdleTime> ++ ++ <!-- ++ This repository location is used to crete the client side configuration ++ context used by the server when calling admin services. ++ --> ++ <ClientRepositoryLocation>${carbon.home}/repository/deployment/client/</ClientRepositoryLocation> ++ <!-- This axis2 xml is used in createing the configuration context by the FE server ++ calling to BE server --> ++ <clientAxis2XmlLocation>${carbon.home}/repository/conf/axis2/axis2_client.xml</clientAxis2XmlLocation> ++ <!-- If this parameter is set, the ?wsdl on an admin service will not give the admin service wsdl. --> ++ <HideAdminServiceWSDLs>true</HideAdminServiceWSDLs> ++ ++ <!--WARNING-Use With Care! Uncommenting bellow parameter would expose all AdminServices in HTTP transport. ++ With HTTP transport your credentials and data routed in public channels are vulnerable for sniffing attacks. ++ Use bellow parameter ONLY if your communication channels are confirmed to be secured by other means --> ++ <!--HttpAdminServices>*</HttpAdminServices--> ++ ++ </Axis2Config> ++ ++ <!-- ++ The default user roles which will be created when the server ++ is started up for the first time. ++ --> ++ <ServiceUserRoles> ++ <Role> ++ <Name>admin</Name> ++ <Description>Default Administrator Role</Description> ++ </Role> ++ <Role> ++ <Name>user</Name> ++ <Description>Default User Role</Description> ++ </Role> ++ </ServiceUserRoles> ++ ++ <!-- ++ Enable following config to allow Emails as usernames. ++ --> ++ <!--EnableEmailUserName>true</EnableEmailUserName--> ++ ++ <!-- ++ Security configurations ++ --> ++ <Security> ++ <!-- ++ KeyStore which will be used for encrypting/decrypting passwords ++ and other sensitive information. ++ --> ++ <KeyStore> ++ <!-- Keystore file location--> ++ <Location>${carbon.home}/repository/resources/security/wso2carbon.jks</Location> ++ <!-- Keystore type (JKS/PKCS12 etc.)--> ++ <Type>JKS</Type> ++ <!-- Keystore password--> ++ <Password>wso2carbon</Password> ++ <!-- Private Key alias--> ++ <KeyAlias>wso2carbon</KeyAlias> ++ <!-- Private Key password--> ++ <KeyPassword>wso2carbon</KeyPassword> ++ </KeyStore> ++ ++ <!-- ++ System wide trust-store which is used to maintain the certificates of all ++ the trusted parties. ++ --> ++ <TrustStore> ++ <!-- trust-store file location --> ++ <Location>${carbon.home}/repository/resources/security/client-truststore.jks</Location> ++ <!-- trust-store type (JKS/PKCS12 etc.) --> ++ <Type>JKS</Type> ++ <!-- trust-store password --> ++ <Password>wso2carbon</Password> ++ </TrustStore> ++ ++ <!-- ++ The Authenticator configuration to be used at the JVM level. We extend the ++ java.net.Authenticator to make it possible to authenticate to given servers and ++ proxies. ++ --> ++ <NetworkAuthenticatorConfig> ++ <!-- ++ Below is a sample configuration for a single authenticator. Please note that ++ all child elements are mandatory. Not having some child elements would lead to ++ exceptions at runtime. ++ --> ++ <!-- <Credential> --> ++ <!-- ++ the pattern that would match a subset of URLs for which this authenticator ++ would be used ++ --> ++ <!-- <Pattern>regularExpression</Pattern> --> ++ <!-- ++ the type of this authenticator. Allowed values are: ++ 1. server ++ 2. proxy ++ --> ++ <!-- <Type>proxy</Type> --> ++ <!-- the username used to log in to server/proxy --> ++ <!-- <Username>username</Username> --> ++ <!-- the password used to log in to server/proxy --> ++ <!-- <Password>password</Password> --> ++ <!-- </Credential> --> ++ </NetworkAuthenticatorConfig> ++ ++ <!-- ++ The Tomcat realm to be used for hosted Web applications. Allowed values are; ++ 1. UserManager ++ 2. Memory ++ ++ If this is set to 'UserManager', the realm will pick users & roles from the system's ++ WSO2 User Manager. If it is set to 'memory', the realm will pick users & roles from ++ CARBON_HOME/repository/conf/tomcat/tomcat-users.xml ++ --> ++ <TomcatRealm>UserManager</TomcatRealm> ++ ++ <!--Option to disable storing of tokens issued by STS--> ++ <DisableTokenStore>false</DisableTokenStore> ++ ++ <!-- ++ Security token store class name. If this is not set, default class will be ++ org.wso2.carbon.security.util.SecurityTokenStore ++ --> ++ <TokenStoreClassName>org.wso2.carbon.identity.sts.store.DBTokenStore</TokenStoreClassName> ++ ++ ++ ++ <!-- Configurations to avoid Cross Site Request Forgery vulnerabilities --> ++ <CSRFPreventionConfig> ++ <!-- CSRFPreventionFilter configurations that adopts Synchronizer Token Pattern --> ++ <CSRFPreventionFilter> ++ <!-- Set below to true to enable the CSRFPreventionFilter --> ++ <Enabled>false</Enabled> ++ <!-- Url Pattern to skip application of CSRF protection--> ++ <SkipUrlPattern>(.*)(/images|/css|/js|/docs)(.*)</SkipUrlPattern> ++ </CSRFPreventionFilter> ++ </CSRFPreventionConfig> ++ ++ <!-- Configuration to enable or disable CR and LF sanitization filter--> ++ <CRLFPreventionConfig> ++ <!--Set below to true to enable the CRLFPreventionFilter--> ++ <Enabled>true</Enabled> ++ </CRLFPreventionConfig> ++ </Security> ++ ++ <!-- ++ The temporary work directory ++ --> ++ <WorkDirectory>${carbon.home}/tmp/work</WorkDirectory> ++ ++ <!-- ++ House-keeping configuration ++ --> ++ <HouseKeeping> ++ ++ <!-- ++ true - Start House-keeping thread on server startup ++ false - Do not start House-keeping thread on server startup. ++ The user will run it manually as and when he wishes. ++ --> ++ <AutoStart>true</AutoStart> ++ ++ <!-- ++ The interval in *minutes*, between house-keeping runs ++ --> ++ <Interval>10</Interval> ++ ++ <!-- ++ The maximum time in *minutes*, temp files are allowed to live ++ in the system. Files/directories which were modified more than ++ "MaxTempFileLifetime" minutes ago will be removed by the ++ house-keeping task ++ --> ++ <MaxTempFileLifetime>30</MaxTempFileLifetime> ++ </HouseKeeping> ++ ++ <!-- ++ Configuration for handling different types of file upload & other file uploading related ++ config parameters. ++ To map all actions to a particular FileUploadExecutor, use ++ <Action>*</Action> ++ --> ++ <FileUploadConfig> ++ <!-- ++ The total file upload size limit in MB ++ --> ++ <TotalFileSizeLimit>100</TotalFileSizeLimit> ++ ++ <Mapping> ++ <Actions> ++ <Action>keystore</Action> ++ <Action>certificate</Action> ++ <Action>*</Action> ++ </Actions> ++ <Class>org.wso2.carbon.ui.transports.fileupload.AnyFileUploadExecutor</Class> ++ </Mapping> ++ ++ <Mapping> ++ <Actions> ++ <Action>jarZip</Action> ++ </Actions> ++ <Class>org.wso2.carbon.ui.transports.fileupload.JarZipUploadExecutor</Class> ++ </Mapping> ++ <Mapping> ++ <Actions> ++ <Action>dbs</Action> ++ </Actions> ++ <Class>org.wso2.carbon.ui.transports.fileupload.DBSFileUploadExecutor</Class> ++ </Mapping> ++ <Mapping> ++ <Actions> ++ <Action>tools</Action> ++ </Actions> ++ <Class>org.wso2.carbon.ui.transports.fileupload.ToolsFileUploadExecutor</Class> ++ </Mapping> ++ <Mapping> ++ <Actions> ++ <Action>toolsAny</Action> ++ </Actions> ++ <Class>org.wso2.carbon.ui.transports.fileupload.ToolsAnyFileUploadExecutor</Class> ++ </Mapping> ++ </FileUploadConfig> ++ ++ <!-- FileNameRegEx is used to validate the file input/upload/write-out names. ++ e.g. ++ <FileNameRegEx>^(?!(?:CON|PRN|AUX|NUL|COM[1-9]|LPT[1-9])(?:\.[^.])?$)[^<>:"/\\|?*\x00-\x1F][^<>:"/\\|?*\x00-\x1F\ .]$</FileNameRegEx> ++ --> ++ <!--<FileNameRegEx></FileNameRegEx>--> ++ ++ <!-- ++ Processors which process special HTTP GET requests such as ?wsdl, ?policy etc. ++ ++ In order to plug in a processor to handle a special request, simply add an entry to this ++ section. ++ ++ The value of the Item element is the first parameter in the query string(e.g. ?wsdl) ++ which needs special processing ++ ++ The value of the Class element is a class which implements ++ org.wso2.carbon.transport.HttpGetRequestProcessor ++ --> ++ <HttpGetRequestProcessors> ++ <Processor> ++ <Item>info</Item> ++ <Class>org.wso2.carbon.core.transports.util.InfoProcessor</Class> ++ </Processor> ++ <Processor> ++ <Item>wsdl</Item> ++ <Class>org.wso2.carbon.core.transports.util.Wsdl11Processor</Class> ++ </Processor> ++ <Processor> ++ <Item>wsdl2</Item> ++ <Class>org.wso2.carbon.core.transports.util.Wsdl20Processor</Class> ++ </Processor> ++ <Processor> ++ <Item>xsd</Item> ++ <Class>org.wso2.carbon.core.transports.util.XsdProcessor</Class> ++ </Processor> ++ </HttpGetRequestProcessors> ++ ++ <!-- Deployment Synchronizer Configuration. t Enabled value to true when running with "svn based" dep sync. ++ In master nodes you need to set both AutoCommit and AutoCheckout to true ++ and in worker nodes set only AutoCheckout to true. ++ --> ++ <DeploymentSynchronizer> ++ <Enabled>false</Enabled> ++ <AutoCommit>false</AutoCommit> ++ <AutoCheckout>true</AutoCheckout> ++ <RepositoryType>svn</RepositoryType> ++ <SvnUrl>http://svnrepo.example.com/repos/</SvnUrl> ++ <SvnUser>username</SvnUser> ++ <SvnPassword>password</SvnPassword> ++ <SvnUrlAppendTenantId>true</SvnUrlAppendTenantId> ++ </DeploymentSynchronizer> ++ ++ <!-- Deployment Synchronizer Configuration. Uncomment the following section when running with "registry based" dep sync. ++ In master nodes you need to set both AutoCommit and AutoCheckout to true ++ and in worker nodes set only AutoCheckout to true. ++ --> ++ <!--<DeploymentSynchronizer> ++ <Enabled>true</Enabled> ++ <AutoCommit>false</AutoCommit> ++ <AutoCheckout>true</AutoCheckout> ++ </DeploymentSynchronizer>--> ++ ++ <!-- Mediation persistence configurations. Only valid if mediation features are available i.e. ESB --> ++ <!--<MediationConfig> ++ <LoadFromRegistry>false</LoadFromRegistry> ++ <SaveToFile>false</SaveToFile> ++ <Persistence>enabled</Persistence> ++ <RegistryPersistence>enabled</RegistryPersistence> ++ </MediationConfig>--> ++ ++ <!-- ++ Server intializing code, specified as implementation classes of org.wso2.carbon.core.ServerInitializer. ++ This code will be run when the Carbon server is initialized ++ --> ++ <ServerInitializers> ++ <!--<Initializer></Initializer>--> ++ </ServerInitializers> ++ ++ <!-- ++ Indicates whether the Carbon Servlet is required by the system, and whether it should be ++ registered ++ --> ++ <RequireCarbonServlet>${require.carbon.servlet}</RequireCarbonServlet> ++ ++ <!-- ++ Carbon H2 OSGI Configuration ++ By default non of the servers start. ++ name="web" - Start the web server with the H2 Console ++ name="webPort" - The port (default: 8082) ++ name="webAllowOthers" - Allow other computers to connect ++ name="webSSL" - Use encrypted (HTTPS) connections ++ name="tcp" - Start the TCP server ++ name="tcpPort" - The port (default: 9092) ++ name="tcpAllowOthers" - Allow other computers to connect ++ name="tcpSSL" - Use encrypted (SSL) connections ++ name="pg" - Start the PG server ++ name="pgPort" - The port (default: 5435) ++ name="pgAllowOthers" - Allow other computers to connect ++ name="trace" - Print additional trace information; for all servers ++ name="baseDir" - The base directory for H2 databases; for all servers ++ --> ++ <!--H2DatabaseConfiguration> ++ <property name="web" /> ++ <property name="webPort">8082</property> ++ <property name="webAllowOthers" /> ++ <property name="webSSL" /> ++ <property name="tcp" /> ++ <property name="tcpPort">9092</property> ++ <property name="tcpAllowOthers" /> ++ <property name="tcpSSL" /> ++ <property name="pg" /> ++ <property name="pgPort">5435</property> ++ <property name="pgAllowOthers" /> ++ <property name="trace" /> ++ <property name="baseDir">${carbon.home}</property> ++ </H2DatabaseConfiguration--> ++ <!--Disabling statistics reporter by default--> ++ <StatisticsReporterDisabled>true</StatisticsReporterDisabled> ++ ++ <!-- Enable accessing Admin Console via HTTP --> ++ <!-- EnableHTTPAdminConsole>true</EnableHTTPAdminConsole --> ++ ++ <!-- ++ Default Feature Repository of WSO2 Carbon. ++ --> ++ <FeatureRepository> ++ <RepositoryName>default repository</RepositoryName> ++ <RepositoryURL>http://product-dist.wso2.com/p2/carbon/releases/wilkes/</RepositoryURL> ++ </FeatureRepository> ++ ++ <!-- ++ Configure API Management ++ --> ++ <APIManagement> ++ ++ <!--Uses the embedded API Manager by default. If you want to use an external ++ API Manager instance to manage APIs, configure below externalAPIManager--> ++ ++ <Enabled>true</Enabled> ++ ++ <!--Uncomment and configure API Gateway and ++ Publisher URLs to use external API Manager instance--> ++ ++ <!--ExternalAPIManager> ++ ++ <APIGatewayURL>http://localhost:8281</APIGatewayURL> ++ <APIPublisherURL>http://localhost:8281/publisher</APIPublisherURL> ++ ++ </ExternalAPIManager--> ++ ++ <LoadAPIContextsInServerStartup>true</LoadAPIContextsInServerStartup> ++ </APIManagement> ++</Server> http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/wso2_is/vars/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/wso2_is/vars/main.yml index 0000000,0000000..f7b4eb7 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/wso2_is/vars/main.yml @@@ -1,0 -1,0 +1,18 @@@ ++--- ++#Variables associated with this role ++# Oracle Java 8 ++java_dir_source: "/usr/local/src" ++ ++java_version: 8 ++java_version_update: 91 ++java_version_build: '14' ++java_version_string: "1.{{ java_version }}.0_{{ java_version_update }}" ++java_home: "/usr/java/jdk1.{{ java_version }}.0_{{ java_version_update }}" ++ ++java_rpm_filename: "jdk-{{ java_version }}u{{ java_version_update }}-linux-x64.rpm" ++java_rpm_url: "http://download.oracle.com/otn-pub/java/jdk/{{ java_version }}u{{ java_version_update }}-b{{ java_version_build }}/{{ java_rpm_filename }}" ++ ++wso2_is_rul: http://wso2.com/products/identity-server/#download ++wso2_is_dist: wso2is-5.1.0.zip ++wso2_is_dir: wso2is-5.1.0 ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/zookeeper/handlers/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/zookeeper/handlers/main.yml index 0000000,0000000..daefebe new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/zookeeper/handlers/main.yml @@@ -1,0 -1,0 +1,12 @@@ ++--- ++- name: start zookeeper ++ service: name=zookeeper state=started enabled=yes ++ become: yes ++ ++- name: stop zookeeper ++ service: name=zookeeper state=stopped ++ become: yes ++ ++- name: restart zookeeper ++ service: name=zookeeper state=restarted enabled=yes ++ become: yes http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/zookeeper/tasks/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/zookeeper/tasks/main.yml index 0000000,0000000..78bcec2 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/zookeeper/tasks/main.yml @@@ -1,0 -1,0 +1,34 @@@ ++--- ++################################################################################ ++# Setup and run Zookeeper ++- name: Download and unarchive zookeeper ++ unarchive: src="{{ zookeeper_url }}" ++ dest="{{ user_home }}" ++ copy=no ++ owner="{{ user }}" ++ group="{{ group }}" ++ ++- name: open zookeeper port ++ firewalld: port=2181/tcp zone=public permanent=true state=enabled immediate=yes ++ become: yes ++ ++- name: Copy zoo.cfg file ++ template: src=zoo.cfg.j2 dest="{{ zookeeper_dir }}/conf/zoo.cfg" owner="{{ user }}" group="{{ group }}" mode="u=rw,g=r,o=r" ++ notify: ++ - restart zookeeper ++ ++- name: Check if systemd exists ++ stat: path=/usr/lib/systemd/system/ ++ register: systemd_check ++ ++- name: Systemd script. ++ template: src=zookeeper.service.j2 dest=/usr/lib/systemd/system/zookeeper.service ++ when: systemd_check.stat.exists == true ++ notify: ++ - restart zookeeper ++ become: yes ++ ++- name: reload systemd daemons ++ command: systemctl daemon-reload ++ become: yes ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/zookeeper/templates/zoo.cfg.j2 ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/zookeeper/templates/zoo.cfg.j2 index 0000000,0000000..8426b98 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/zookeeper/templates/zoo.cfg.j2 @@@ -1,0 -1,0 +1,28 @@@ ++# The number of milliseconds of each tick ++tickTime={{tick_time}} ++# The number of ticks that the initial ++# synchronization phase can take ++initLimit={{init_limit}} ++# The number of ticks that can pass between ++# sending a request and getting an acknowledgement ++syncLimit={{sync_limit}} ++# the directory where the snapshot is stored. ++# do not use /tmp for storage, /tmp here is just ++# example sakes. ++dataDir={{zookeeper_data_dir}} ++# the port at which the clients will connect ++clientPort={{ client_port }} ++# the maximum number of client connections. ++# increase this if you need to handle more clients ++#maxClientCnxns=60 ++# ++# Be sure to read the maintenance section of the ++# administrator guide before turning on autopurge. ++# ++# http://zookeeper.apache.org/doc/current/zookeeperAdmin.html#sc_maintenance ++# ++# The number of snapshots to retain in dataDir ++#autopurge.snapRetainCount=3 ++# Purge task interval in hours ++# Set to "0" to disable auto purge feature ++#autopurge.purgeInterval=1 http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/zookeeper/templates/zookeeper.service.j2 ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/zookeeper/templates/zookeeper.service.j2 index 0000000,0000000..19c3718 new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/zookeeper/templates/zookeeper.service.j2 @@@ -1,0 -1,0 +1,15 @@@ ++# {{ansible_managed}} ++ ++[Unit] ++Description=ZooKeeper ++ ++ ++[Service] ++Type=forking ++ExecStart={{zookeeper_dir}}/bin/zkServer.sh start ++ExecStop={{ zookeeper_dir }}/bin/zkServer.sh stop ++Restart=always ++TimeoutSec=300 ++ ++[Install] ++WantedBy=multi-user.target http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/roles/zookeeper/vars/main.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/roles/zookeeper/vars/main.yml index 0000000,0000000..a3e10db new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/roles/zookeeper/vars/main.yml @@@ -1,0 -1,0 +1,17 @@@ ++--- ++#Variables associated with this role ++# zookeeper related variable ++zookeeper_version: 3.4.8 ++zookeeper_url: http://www.us.apache.org/dist/zookeeper/zookeeper-{{zookeeper_version}}/zookeeper-{{zookeeper_version}}.tar.gz ++ ++apt_cache_timeout: 3600 ++client_port: "{{ zookeeper_client_port }}" ++init_limit: 5 ++sync_limit: 2 ++tick_time: 2000 ++data_dir: /var/lib/zookeeper ++log_dir: /var/log/zookeeper ++zookeeper_dir: "{{ user_home }}/zookeeper-{{zookeeper_version}}" ++zookeeper_data_dir: "{{ zookeeper_dir }}/data" ++ ++... http://git-wip-us.apache.org/repos/asf/airavata/blob/514567c8/dev-tools/ansible/site.yml ---------------------------------------------------------------------- diff --cc dev-tools/ansible/site.yml index 0000000,0000000..69ff15b new file mode 100644 --- /dev/null +++ b/dev-tools/ansible/site.yml @@@ -1,0 -1,0 +1,76 @@@ ++--- ++#Master playbook ++- hosts: zookeeper ++ tags: zookeeper, airavata ++ roles: ++ - env_setup ++ - java ++ - zookeeper ++ ++- hosts: rabbitmq ++ tags: rabbitmq, airavata ++ roles: ++ - env_setup ++ - rabbitmq ++ ++- hosts: database ++ tags: mysql , airavata ++ roles: ++ - env_setup ++ - role: database ++ become: yes ++ become_user: "{{user}}" ++ ++- hosts: wso2is ++ tags: wso2is ++ roles: ++ - env_setup ++ - java ++ - role: wso2_is ++ become: yes ++ become_user: "{{user}}" ++ ++ ++- hosts: gfac ++ tags: gfac, airavata ++ roles: ++ - env_setup ++ - java ++ - role: common ++ become: yes ++ become_user: "{{user}}" ++ - role: gfac ++ become: yes ++ become_user: "{{user}}" ++ ++- hosts: api-orch ++ tags: api-orch, airavata ++ roles: ++ - env_setup ++ - java ++ - role: common ++ become: yes ++ become_user: "{{user}}" ++ - role: api-orch ++ become: yes ++ become_user: "{{user}}" ++ ++- hosts: registry ++ tags: registry, airavata ++ roles: ++ - env_setup ++ - java ++ - role: common ++ become: yes ++ become_user: "{{user}}" ++ - role: registry ++ become: yes ++ become_user: "{{user}}" ++ ++- hosts: pga ++ tags: pga ++ roles: ++ - env_setup ++ - pga ++ ++...
