Install VDS 92 to IA Cloud 10 environment
For executing the trained models from 9.X version in the IA Cloud 10 environment, you need to install and configure VDS 92 services, as well as additional Mesos and Marathon, to prevent race conditions.
To do this, on the BEP Master server:
Run the command:
./install.sh install vds-services-92Copy the existing mesos and marathon directories:
cp -r /opt/workfusion/mesos /opt/workfusion/mesos9 cp -r /opt/workfusion/marathon /opt/workfusion/marathon9Add mesos-master9.ini configuration to /opt/workfusion/supervisord/apps.
- set new port (
port) - set new zookeeper url for mesos (
zk) - update
LD\_LIBRARY\_PATHwith mesos9 path - update
execwith mesos9 path - update
work\_dirwith mesos9 path - update
webuiwuth mesos9 path - update
credentialswith mesos9 path - Change
{{bep\_master\_hostname}}and{{integration\_server\_hostname}}to appropriate hostnames
# Ansible managed # Recommended ciphers list supported since mesos 1.4.0: # LIBPROCESS_SSL_CIPHERS='ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256', [program:mesos-master9] environment = LD_LIBRARY_PATH="/opt/workfusion/mesos9/usr/lib/:/opt/workfusion/mesos9/usr/lib64/:$LD_LIBRARY_PATH", LIBPROCESS_SSL_ENABLED=true, LIBPROCESS_SSL_KEY_FILE=/opt/workfusion/ssl/bep_master.key, LIBPROCESS_SSL_CERT_FILE=/opt/workfusion/ssl/bep_master.crt, LIBPROCESS_SSL_CIPHERS='AES128-SHA:AES256-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA', LIBPROCESS_SSL_CA_FILE=/opt/workfusion/ssl/ca.crt command = bash -c ' source /opt/workfusion/environment.sh exec /opt/workfusion/mesos9/usr/sbin/mesos-master \ --hostname={{bep_master_hostname}} \ --port=5051 \ --quorum=1 \ --work_dir=/opt/workfusion/mesos9/work \ --webui_dir=/opt/workfusion/mesos9/usr/share/mesos/webui \ --zk=zk://{{integration_server_hostname}}:2181/mesos9 \ --authenticate_http_readonly \ --authenticate_http_readwrite \ --credentials=/opt/workfusion/mesos9/credentials.json \ start-foreground ' autostart = false autorestart = true startinorder = true stopasgroup = true priority = 870 stdout_logfile = /opt/workfusion/supervisord/log/%(program_name)s2.log redirect_stderr = true stdout_logfile_maxbytes = 0 stdout_logfile_backups = 0- set new port (
Add marathon9.ini configuration to /opt/workfusion/supervisord/apps:
- set new zookeeper url for marathon (
zk) - set new zookeeper url for mesos (
master) - set new http port (
http\_port) - set new mesos leader ui url (
mesos\_leader\_ui\_url) - update
LD\_LIBRARY\_PATHwith mesos9 path - update
execwith marathon9 path - Change
{{bep\_master\_hostname}}and{{integration\_server\_hostname}}to appropriate hostnames
# Ansible managed [program:marathon9] directory = /opt/workfusion/marathon9 environment = LD_LIBRARY_PATH="/opt/workfusion/mesos9/usr/lib/:/opt/workfusion/mesos9/usr/lib64/:$LD_LIBRARY_PATH", MESOS_NATIVE_JAVA_LIBRARY="/opt/workfusion/mesos9/usr/lib/libmesos.so", LIBPROCESS_SSL_ENABLED=true, LIBPROCESS_SSL_KEY_FILE=/opt/workfusion/ssl/bep_master.key, LIBPROCESS_SSL_CERT_FILE=/opt/workfusion/ssl/bep_master.crt, LIBPROCESS_PORT=15001, JAVA_OPTS="-Xmx16G" command = bash -c ' source /opt/workfusion/environment.sh exec /opt/workfusion/marathon9/usr/share/marathon/bin/marathon \ --zk zk://{{integration_server_hostname}}:2181/marathon9 \ --master zk://{{integration_server_hostname}}:2181/mesos9 \ --http_address 127.0.0.1 \ --http_port 8081 \ --mesos_leader_ui_url "https://{{bep_master_hostname}}:5051" \ --disable_ha ' autostart = false autorestart = true startinorder = true stopasgroup = true priority = 880 stdout_logfile = /opt/workfusion/supervisord/log/%(program_name)s2_access.log stderr_logfile = /opt/workfusion/supervisord/log/%(program_name)s2_error.log stdout_logfile_maxbytes = 0 stdout_logfile_backups = 0 stderr_logfile_maxbytes = 0 stderr_logfile_backups = 0- set new zookeeper url for marathon (
Re-read and update the supervisord configs:
wfmanager reread wfmanager updateAdd /opt/workfusion/nginx/sites/marathon9.conf, specify the api port and link it to marathon9. For that change
{{bep\_master\_hostname}}to appropriate hostnames:# Ansible managed server { server_name {{bep_master_hostname}}; listen 8481 ssl; include snippets/ssl_params; include snippets/proxy_params; ssl_certificate /opt/workfusion/ssl/bep_master.crt; ssl_certificate_key /opt/workfusion/ssl/bep_master.key; error_page 497 https://$host:$server_port$request_uri; location / { error_page 502 =503 /50x.html; include auth/whitelist; auth_basic "Marathon auth"; auth_basic_user_file auth/marathon.htpasswd; proxy_pass http://127.0.0.1:8081/; } location /50x.html { return 503; } }Update /opt/workfusion/vds-scaling-service/vds-scaling-service.properties:
- set mesos9 url (
mesos.url) - Change {{
bep\_master\_hostname}} and{{integration\_server\_hostname}}to appropriate hostnames
# Ansible managed vds.env=flat-prod server.port=9081 server.contextPath=/vds-scaling-service server.address=127.0.0.1 registry.host=workfusion s3.endpointUrl=https://{{integration_server_hostname}}:443 s3.accessKey=JOZXPHL1ZC8WXZAJXNU7 s3.secretKey=qAEYOVLOViPjxk3Lbuj0wrDztf8fGJrqMb4Obw== aws.bucket.model=vds-models aws.bucket.assets=vds-resources mq.api.protocol=https mq.host={{integration_server_hostname}} mq.port.api=45672 mq.port.amqp=5672 mq.username=vds mq.password=ZRIkw5^J1K hypermodel.uris= hypermodel.work.dir=hypermodel/work/ hypermodel.memorySize=5400 mesos.url=https://{{bep_master_hostname}}:8481/ cluster.master.host={{bep_master_hostname}} gateway.extract.endpoint.url=http://127.0.0.1:9080/vds-gateway-service/extract-v2 logging.logstash.endpoint={{integration_server_hostname}}:4568 hypermodel.extract.max_continuous_errors=10 mesos.executor.type=MESOS_NATIVE mesos.extractApp.path=/opt/workfusion/vds-data/vds-extract-app/vds-extract-app.jar mesos.java.path=/opt/workfusion/java/bin/java # LOGGING logging.level.root=warn- set mesos9 url (
In /opt/workfusion/vds-mesos-adapter/vds-mesos-adapter.properties:
- Set mesos9 marathon api (
mesos.marathon.api). - Change
{{bep\_master\_hostname}}and{{integration\_server\_hostname}}to appropriate hostnames.
# Ansible managed vds.env=flat-prod server.port=9052 server.contextPath=/vds-mesos-adapter server.address=127.0.0.1 registry.host=workfusion s3.endpointUrl=https://{{}}:443 s3.accessKey=JOZXPHL1ZC8WXZAJXNU7 s3.secretKey=qAEYOVLOViPjxk3Lbuj0wrDztf8fGJrqMb4Obw== s3.bucket.models=vds-models s3.bucket.assets=vds-resources mq.api.protocol=https mq.host={{integration_server_hostname}} mq.port.api=45672 mq.port.amqp=5672 mq.username=vds mq.password=ZRIkw5^J1K aws.use-aws-cli=false mesos.java.path=/opt/workfusion/java/bin/java mesos.upload.type=local mesos.ssh.host={{bep_master_hostname}} mesos.ssh.port=22 mesos.ssh.username= mesos.ssh.key.path= mesos.ssh.key.password= mesos.ssh.work-dir=/opt/workfusion/vds-data/eval/ mesos.marathon.api.endpoint=https://{{bep_master_hostname}}:8481/ # LOGGING logging.level.root=warn- Set mesos9 marathon api (
On BEP Agent, in /opt/workfusion/supervisord/apps/mesos-slave.ini:
- Set zookeeper url for mesos9 master (
master). - Change
{{bep\_agent\_hostname}}and{{integration\_server\_hostname}}to appropriate hostnames.
# Ansible managed # Recommended ciphers list supported since mesos 1.4.0: # LIBPROCESS_SSL_CIPHERS='ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256', [program:mesos-slave] environment = LD_LIBRARY_PATH="/opt/workfusion/mesos/usr/lib/:/opt/workfusion/mesos/usr/lib64/:$LD_LIBRARY_PATH", LIBPROCESS_SSL_ENABLED=true, LIBPROCESS_SSL_KEY_FILE=/opt/workfusion/ssl/bep_agent.key, LIBPROCESS_SSL_CERT_FILE=/opt/workfusion/ssl/bep_agent.crt, LIBPROCESS_SSL_SUPPORT_DOWNGRADE=true, LIBPROCESS_SSL_CIPHERS='AES128-SHA:AES256-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA', LIBPROCESS_SSL_CA_FILE=/opt/workfusion/ssl/ca.crt command = bash -c ' source /opt/workfusion/environment.sh exec /opt/workfusion/mesos/usr/sbin/mesos-slave \ --no-systemd_enable_support \ --hostname={{bep_agent_hostname}} \ --port=5051 \ --work_dir=/opt/workfusion/mesos/work \ --runtime_dir=/opt/workfusion/mesos/runtime \ --master=zk://{{integration_server_hostname}}:2181/mesos9 \ --resources="cpus:7;mem:27915;ports:[40000-44000]" \ --launcher_dir="/opt/workfusion/mesos/usr/libexec/mesos" \ --sandbox_directory="/opt/workfusion/mesos/sandbox" \ --executor_environment_variables="{\"LD_LIBRARY_PATH\": \"/opt/workfusion/mesos/usr/lib:/opt/workfusion/mesos/usr/lib64\"}" \ --authenticate_http_readonly \ --authenticate_http_readwrite \ --http_credentials=/opt/workfusion/mesos2/credentials.json \ --gc_delay="3days" \ --gc_disk_headroom="0.1" \ start-foreground ' autostart = false autorestart = true startinorder = true stopasgroup = true priority = 875 stdout_logfile = /opt/workfusion/supervisord/log/%(program_name)s.log redirect_stderr = true stdout_logfile_maxbytes = 0 stdout_logfile_backups = 0- Set zookeeper url for mesos9 master (
Restart all services on the BEP Master and BEP Agent servers:
wfmanager restart all