Skip to content

DTaaS on Single Vagrant Machine

These are installation instructions for running DTaaS software inside one vagrant Virtual Machine. The setup requires a machine which can spare 16GB RAM, 8 vCPUs and 50GB Hard Disk space to the vagrant box.

Create Base Vagrant Box

Create dtaas Vagrant box. You would have created an SSH key pair - vagrant and vagrant.pub. The vagrant is the private SSH key and is needed for the next steps. Copy vagrant SSH private key into the current directory (deploy/vagrant/single-machine). This shall be useful for logging into the vagrant machines created for two-machine deployment.

Target Installation Setup

The goal is to use the dtaas Vagrant box to install the DTaaS software on one single vagrant machine. A graphical illustration of a successful installation can be seen here.

Single vagrant machine

There are many unused software packages/docker containers within the dtaas base box. The used packages/docker containers are highlighed in blue color.

Tip

The illustration shows hosting of gitlab on the same vagrant machine with http(s)://gitlab.foo.com The gitlab setup is outside the scope this installation guide. Please refer to gitlab docker install for gitlab installation.

Configure Server Settings

A dummy foo.com URL has been used for illustration. Please change this to your unique website URL.

Please follow the next steps to make this installation work in your local environment.

Update the Vagrantfile. Fields to update are:

  1. Hostname (node.vm.hostname = "foo.com")
  2. MAC address (:mac => "xxxxxxxx"). This change is required if you have a DHCP server assigning domain names based on MAC address. Otherwise, you can leave this field unchanged.
  3. Other adjustments are optional.

Installation Steps

Execute the following commands from terminal

vagrant up
vagrant ssh

Set a cronjob inside the vagrant virtual machine to remote the conflicting default route.

wget https://raw.githubusercontent.com/INTO-CPS-Association/DTaaS/release-v0.3/deploy/vagrant/route.sh
sudo bash route.sh

If you only want to test the application and are not setting up a production instance, you can follow the instructions of single script install.

If you are not in a hurry and would rather have a production instance, follow the instructions of regular server installation setup to complete the installation.

References

Image sources: Ubuntu logo, Traefik logo, ml-workspace, nodejs, reactjs, nestjs