# Infrastructure Configuration for SARS-CoV-2 training The computing infrastructure that we use for the SANBI / Africa CDC SARS-Cov-2 sequence analysis training is hosted by [Ilifu cloud](https://ilifu.ac.za). It consists of a number of copies of the [COMBAT SARS-CoV-2 Workbench](https://github.com/COMBAT-SARS-COV-2) and a proxy server to allow external access to those servers. The Workbench is a web application run using Docker containers and is visible to users at [workbench-1](https://workbench-1.sanbi.ac.za/), [workbench-2](https://workbench-2.sanbi.ac.za) and so on (up to workbench-10). Each Workbench runs on a virtual machine with 2 virtual CPUs, 16 GB of RAM and 100 GB of disk space. The Ilifu cloud has a limited number of external IP addresses available, so a "reverse proxy" is used to route network traffic to the right machine while only using a single external IP address. This "reverse proxy" (ilifu-proxy.sanbi.ac.za) also has its own name server that knows the internal IP addresses for the different servers so that it can translate a name e.g. workbench-1 into the correct IP to reach that server. Here is a diagram of the infrastructure configuration. ![](https://i.imgur.com/qByeCQa.png) No user action is needed to use the workbench web interfaces: this all works transparently for them. SSH access is a bit trickier: to access the command line interfaces of the each workbench machine, one needs to use a VPN (virtual private network). This is provided by an OpenVPN server running on the ilifu-proxy machine. A set of name server records - workbench-1-cli, etc - provides an externally visible way of finding the internal IP addresses of the machines. To use the VPN and SSH the user needs three things: 1. the VPN client configuration: 20 clients have been configured and the configuration files can be handed out to course participants and trainers. 2. the OpenVPN software that is available for [Windows](https://openvpn.net/client-connect-vpn-for-windows/), [MacOS](https://openvpn.net/client-connect-vpn-for-mac-os/) and Ubuntu (install packages `network-manager-openvpn` and `network-manager-openvpn-gnome`). Once the client is installed, the client config file can be imported to set up a VPN connection (note that on Ubuntu you also need to ensure that the "Use this connection only for resources on its network" option on the IPv4 settings tab of the OpenVPN connection is enabled) 3. A SSH client: MacOS and Ubuntu come with these built in, Windows users should install [Git for Windows](https://git-scm.com/downloads) that comes with SSH. Once all of the above is set up, one can connect to the command line of the workbench machines with e.g. `ssh username@workbench-1-cli.sanbi.ac.za`. The `username` is a user e.g. `ubuntu`. These user credentials will be configured before doing training on installing the Workbench. The entire infrastructure is configured using [terraform](https://www.terraform.io/) and [ansible](https://www.ansible.com/). The [ansible config](https://github.com/combat-sars-cov-2/ilifu-workbench-ansible) and [terraform config] are both on GitHub.