Difference between revisions of "Remote Experiment Controller"
Jump to navigation
Jump to search
Line 73: | Line 73: | ||
* Multicast Server | * Multicast Server | ||
− | $ scp deployment/images/target/ | + | $ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/ |
+ | $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/ | ||
+ | $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/ | ||
+ | $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/ | ||
$ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/ | $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/ | ||
+ | * Optional (rec.web) | ||
+ | $ scp deployment/images/target/rec.web.tar multicast-server-name:/tmp/ | ||
+ | $ scp deployment/images/target/rec.web-upgrade-db.tar multicast-server-name:/tmp/ | ||
+ | $ scp deployment/images/target/rec.web-db.tar multicast-server-name:/tmp/ | ||
+ | $ scp deployment/compose/target/docker-compose-rec.web.yml multicast-server-name:/tmp/ | ||
* Hardware Server | * Hardware Server | ||
Line 85: | Line 93: | ||
* Create user elab | * Create user elab | ||
$ sudo useradd --create-home --shell /bin/false --expiredate 1 elab | $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab | ||
− | + | ||
* Add user to docker group | * Add user to docker group | ||
$ sudo usermod -a -G docker elab | $ sudo usermod -a -G docker elab | ||
− | + | ||
* Load ReC client image | * Load ReC client image | ||
$ sudo -u elab docker load --input /tmp/webswing.tar | $ sudo -u elab docker load --input /tmp/webswing.tar | ||
− | + | ||
* Load Multicast Controller image | * Load Multicast Controller image | ||
$ sudo -u elab docker load --input /tmp/multicast.tar | $ sudo -u elab docker load --input /tmp/multicast.tar | ||
− | + | ||
* Load ReC client admin console image | * Load ReC client admin console image | ||
$ sudo -u elab docker load --input /tmp/webswing-admin.tar | $ sudo -u elab docker load --input /tmp/webswing-admin.tar | ||
− | + | ||
* Load Reverse Proxy image | * Load Reverse Proxy image | ||
$ sudo -u elab docker load --input /tmp/reverse-proxy.tar | $ sudo -u elab docker load --input /tmp/reverse-proxy.tar | ||
− | + | ||
* Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home | * Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home | ||
$ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/ | $ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/ | ||
− | + | ||
* Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy | * Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy | ||
$ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d | $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d | ||
+ | |||
+ | * Optional (rec.web) | ||
+ | $ sudo -u elab docker load --input /tmp/rec.web.tar | ||
+ | $ sudo -u elab docker load --input /tmp/rec.web-upgrade-db.tar | ||
+ | $ sudo -u elab docker load --input /tmp/rec.web-db.tar | ||
+ | $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=askPass > /home/elab/asadmin_mail.secret | ||
+ | $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=rec > /home/elab/asadmin_recdb.secret | ||
+ | $ sudo -u elab echo rec > /home/elab/rec-db.secret | ||
+ | $ sudo -u elab echo root > /home/elab/root-db.secret | ||
+ | $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml -f /home/elab/docker-compose-rec.yml up -d | ||
== Hardware Server == | == Hardware Server == | ||
Line 111: | Line 129: | ||
* Replace wpexperiment with your experiment name | * Replace wpexperiment with your experiment name | ||
$ export experiment=wpexperiment | $ export experiment=wpexperiment | ||
− | + | ||
* Create user elab | * Create user elab | ||
$ sudo useradd --create-home --shell /bin/false --expiredate 1 elab | $ sudo useradd --create-home --shell /bin/false --expiredate 1 elab | ||
− | + | ||
* Create experiment directory | * Create experiment directory | ||
$ sudo -u elab mkdir /home/elab/rec-deployment/${experiment} | $ sudo -u elab mkdir /home/elab/rec-deployment/${experiment} | ||
− | + | ||
* Unpack experiment package to experiment directory | * Unpack experiment package to experiment directory | ||
$ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d /home/elab/rec-deployment/${experiment} | $ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d /home/elab/rec-deployment/${experiment} | ||
− | + | ||
* Start experiment | * Start experiment | ||
$ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start | $ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start | ||
+ | |||
+ | = Test = | ||
+ | |||
+ | |||
Steps to connect to IST environment: | Steps to connect to IST environment: | ||
# TODO Steps | # TODO Steps |
Revision as of 13:14, 13 April 2021
Contents
Pre-requisites
Build environment
- Maven 3.6.3
- OpenJDK 11 (11.0.8+)
- Docker (20.10+)
- docker-compose (1.25.4+)
Multicast Controller and rec.client
- Docker (20.10+)
- docker-compose (1.25.4+)
Hardware Server
- OpenJDK 11 (11.0.8+)
rec.web (recommended only for testing locally)
- Docker (20.10+)
- docker-compose (1.25.4+)
Preparation steps
First checkout the project from github:
$ git clone https://github.com/linkareti/rec-project.git
(FIXME) Then we need to switch to jdk11-migration branch:
$ git checkout jdk11-migration
To create a pendulum experiment, the script create_pendulum_experiment.sh helps to create a base experiment for a brand new pendulum
experiments/create_pendulum_experiment.sh
Mandatory arguments: * 1st argument: Name of the experiment (e.g. worldpendulum) * 2nd argument: ID of the experiment (e.g. ELAB_WORLD_PENDULUM) * 3rd argument: Pendulum location (e.g. Faro)
Optional arguments: * 4th argument: URL to the video (e.g. rtsp://elabmc.ist.utl.pt:80/wp_ccalg.sdp) * 5th argument: Pendulum serial device location (default: /dev/ttyS0)
Sample script execution to create pendulum:
$ ./create_pendulum_experiment.sh wpalentejo ELAB_WP_ALENTEJO Alentejo rtsp://elabmc.ist.utl.pt:80/wp_alentejo.sdp /dev/ttyS0
Build
Configure the following properties based on your environment:
build_pendulum.properties:
- pendulum.experiment.list: Name of the experiment(s) to build, comma (,) delimited.
- pendulum.multicast.controller.host: Hostname where Multicast controller is going to be installed (default: elab-multicast)
- pendulum.multicast.controller.port: Listen CORBA port used to recieve connections from Hardware Server, rec.web and rec.client (default: 9001)
- pendulum.rec.multicastcontroller.jmxremote.port: Listen JMX port used to recieve connections from rec.web (default: 25001)
- install.dir: Base directory where Multicast Controller is going to be installed (default: /home/elab)
- deployment.subdir: Sub directory where Multicast Controller is going to be installed (default: /rec-deployment)
docker-compose-pendulum.yml:
- WEBSWING_PUBLIC_URL: URL where webswing is accessible (e.g. https://elab-dev.vps.tecnico.ulisboa.pt/)
Package everything:
$ mvn clean package -Dmaven.test.skip=true -Djarsigner.alias="REC" -Dbuild.environment=pendulum -Dpack.docker.images
Copy resulting packages to destination servers:
- Multicast Server
$ scp deployment/images/target/reverse-proxy.tar multicast-server-name:/tmp/ $ scp deployment/images/target/multicast.tar multicast-server-name:/tmp/ $ scp deployment/images/target/webswing-admin.tar multicast-server-name:/tmp/ $ scp deployment/images/target/webswing.tar multicast-server-name:/tmp/ $ scp deployment/compose/target/docker-compose-{pendulum,template}.yml multicast-server-name:/tmp/
- Optional (rec.web)
$ scp deployment/images/target/rec.web.tar multicast-server-name:/tmp/ $ scp deployment/images/target/rec.web-upgrade-db.tar multicast-server-name:/tmp/ $ scp deployment/images/target/rec.web-db.tar multicast-server-name:/tmp/ $ scp deployment/compose/target/docker-compose-rec.web.yml multicast-server-name:/tmp/
- Hardware Server
$ scp dist/java/*HardwareServer*.zip hardware-server-name:/tmp/
Install
ReC Client and Multicast Controller
- Create user elab
$ sudo useradd --create-home --shell /bin/false --expiredate 1 elab
- Add user to docker group
$ sudo usermod -a -G docker elab
- Load ReC client image
$ sudo -u elab docker load --input /tmp/webswing.tar
- Load Multicast Controller image
$ sudo -u elab docker load --input /tmp/multicast.tar
- Load ReC client admin console image
$ sudo -u elab docker load --input /tmp/webswing-admin.tar
- Load Reverse Proxy image
$ sudo -u elab docker load --input /tmp/reverse-proxy.tar
- Copy docker-compose-template.yml and docker-compose-pendulum.yml to elab user home
$ sudo -u elab cp /tmp/docker-compose-{pendulum,template}.yml /home/elab/
- Start ReC client, ReC client Administration Console, ReC Multicast Controller and Reverse Proxy
$ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml up -d
- Optional (rec.web)
$ sudo -u elab docker load --input /tmp/rec.web.tar $ sudo -u elab docker load --input /tmp/rec.web-upgrade-db.tar $ sudo -u elab docker load --input /tmp/rec.web-db.tar $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=askPass > /home/elab/asadmin_mail.secret $ sudo -u elab echo AS_ADMIN_ALIASPASSWORD=rec > /home/elab/asadmin_recdb.secret $ sudo -u elab echo rec > /home/elab/rec-db.secret $ sudo -u elab echo root > /home/elab/root-db.secret $ sudo -u elab docker-compose -f /home/elab/docker-compose-template.yml -f /home/elab/docker-compose-pendulum.yml -f /home/elab/docker-compose-rec.yml up -d
Hardware Server
- Replace wpexperiment with your experiment name
$ export experiment=wpexperiment
- Create user elab
$ sudo useradd --create-home --shell /bin/false --expiredate 1 elab
- Create experiment directory
$ sudo -u elab mkdir /home/elab/rec-deployment/${experiment}
- Unpack experiment package to experiment directory
$ sudo -u elab unzip /tmp/${experiment}HardwareServer*.zip -d /home/elab/rec-deployment/${experiment}
- Start experiment
$ sudo -u elab /home/elab/rec-deployment/${experiment}/${experiment}Daemon.sh start
Test
Steps to connect to IST environment:
- TODO Steps