Installation
Machine Preparation
The ELT gateway will run on a standard ELT INS machine whereas the VLT gateway will run on a standard VLTSW WS. If no workstation is available, it is possible for testing to run the ELT gateway and VLT gateway in two VMs:
Install a VM for the ELT Gateway with:
4x Core Intel CPU.
8 Gb RAM
50GB disk
1 NIC
Fedora 38
Developement environment: EltDevEnv 5.2.0-1.fc38
Install a VM for the VLT Gateway with:
4x Core Intel CPU.
8 Gb RAM
50GB disk
1 NIC
CentOS 8
Developement environment: VLT2024
If needed, install a VM for CII services.
Operational User
The infrastructure configuration shall be done for both ELT-GW and VLT-GW as root.
The building of the VLT gateway shall be done as vgwmgr.
The system startup will be done with account eltdev on the ELT-GW host.
Environment Variables
The ELT-GW relies on the following environment variables:
ELTGW_ROOT: it shall point to the elt gateway software installation directory, in principle /elt/eltgw.
NOMAD_ADDR: it shall point to the nomad server, host name:4646.
CONSUL_HTTP_ADDR: it shall point to the consul server, host name:8500
Check beforehand whether these variables are set and whether they are valid. If needed, define them in a .lua file or in .bashrc.
Installing software
On the ELT-GW host:
Log-in as root
In the download directory, do: dnf install elt-eltgw* puppet-evltgw
go to /usr/local/bin/evltgw-install
edit data/common.yaml appropriately. The more relevant parameters at this stage are:
eltgwip: ip address of eltGW host
vltgwip: ip address of vltGW host
cii_host: ip of the host where cii services are running.
run ./installELTGW
If you run the cii services on the same host as the eltgw, execute: /elt/ciisrv/postinstall/cii-postinstall role_groupserver
If you run the cii services on another machine, execute: /elt/ciisrv/postinstall/cii-postinstall role_groupclient cii services host
On the VLT-GW host:
Log-in as root
Download the following rpms: puppet-evltgw-1.0.0-2.fc34.noarch.
In the download directory, do: dnf install puppet-evltgw
Go to /usr/local/bin/evltgw-install
If you want to use local tcs with local tcs database:
As vltmgr, setup db with: initacc.sh. It will create an eltgw environment named wvgw and a test tcs environment named wxxtcs.
As root: ./installVLTTCSSIM: it will create accounts tcs and tcsmgr.
In data/common.yaml set ips for: elt gateway (vgw::eltip), vlt gateway (vgw::vltgwip), telescope ip (vgw::tcsgwip), acc db host (vgw::acchost), tcs ccs env name (vgw::tcs_envname), introot (vgw::introot), insroot (vgw::ins_root), vlt root (vgw::vltroot)
Execute the script:
./installVLTGW: the accounts vgw and vgwmgr shall be created.Log-in as vgwmgr
Do a git clone of version 1.0.1 from evltgw release
Modify the configuration files inMsgVGWConfig.yaml, inScanVGWConfig.yaml, outMsgVGWConfig.yaml, outScanVGWConfig.yaml available at evltgw/vltGW/CONFIG/vgwroots/src/INS_ROOT/SYSTEM/COMMON/CONFIGFILES/ as described in VLT Gateway
Go to evltgw/vltGW and do: pkginBuild vgwins -clean. Scanning will fail if TCS environment is not up and running. The scan link creation step may fail even if a TCS environment is available. In this case, you should restart pkginbuild from this step with: pkginBuild vgwins -fromstep CREATE_SCAN
Nomad and consul services
ELT-GW is using the nomad workload manager and the consul service registry. Nomad and consul are stopped and started with systemctl. The nomad and consul services running on the eltGW VM will run in server mode and will be part of a cluster whose clients run on other hosts (e.g. the instrument workstation), see APPENDIX for examples of nomad and consul configuration on both client and server sides. Two important parameters for the nomad client on eltGW VM are defined in the meta stanza of the client stanza in nomad.hcl:
eltgw_root: It shall contain the location of the directory where all the executables and configuration files are installed, e.g. /elt/eltgw.
host_type: it shall be set to eltgw so that the eltGW is executed on the right server.
The NOMAD_ADDR environment variable points to the nomad server and shall be set in either .bashrc or private.lua file (normally to to http://${HOSTNAME}:4646).
CONSUL_HTTP_ADDR points to the consul server and shall be set either in .bashrc or private.lua file (normally http://${HOSTNAME}:8500). Any of these variable should be modified only if consul or nomad were listening on a different port.