Welcome to the Documentation of how to set up a multi-machine environment within Oracle VM using Vagrant.
Summary This documentation will guide you step by step on how to set up and configure a multi-machine environment capable of hosting a app made with Javascript and a database that is connected to the app in a separate virtual machine using MongoDB.
By The end of this you should be able to run the app.js
file inside the app VM and connect to the website development.local
via
your preferred browser, without a need for any port such as 3000
. The default port for the server hosting software NGINX is
80
therefore we are also going to be implementing what is known as a reverse proxy to change that port to redirect the user to the
website which will be listening on port 3000
.
- Introduction
- Explanation
- Installation and Requirements
- Booting up the Virtual Machines
- Access VM
- Run Server
- Open Website in Browser
This is a guide of how to install and run the VM for Sparta global, allowing you to access their app in the browser.
The reason for this is so that the process that is usually followed when installing these software into our virtual machine,
are completely automated at the start up of the virtual machine - meaning a less technical member of staff or client can quickly view the
progress by running the command vagrant up
and this README is also a instructional aid as well.
Virtual Machine 1 - DB
- MongoDB
- Config file
Virtual Machine 2 - APP
- Nginx
- Python software
- Node JS
- NPM (package manager) _Get
These Steps are for the installation and set up
If you already have the VM setup on your machine then skip to the next part Booting the VM Machine
Download Ruby 2.6.6 here: Windows | Mac
Follow the instructions on download, and when you are greeted by a Command line looking Ruby Interpreter screen make sure you select to install the third option. Do this by entering 3.
To confirm you have downloaded it correctly go to a command line (Bash) or (Shell) and use:
ruby --version
You should get ruby 2.6.6p146 (2020-03-32 revision 67876) [x64-mingw32]
Now to download Vagrant, this is the program that will create the Virtual machine
via the terminal. This is one of many
software that are capable of creating and running the virtual machine, although it is hosted through Oracle VM which we will install later
on.
Download Vagrant 2.2.7 here: Windows | Mac
This download may take a while and also ask you to restart your computer, once that is done you will need to confirm the download was successful.
To confirm you have downloaded it correctly go to a command line (Bash) or (Shell) and use:
vagrant --version
You should get vagrant 2.2.7
Important
Now this is an important part if you are Windows else carry on to the next part.
If you have Windows 10 Pro please go to Turn on windows features on or off and turn off Hyper-V. For any other Window versions please follow the next steps to enable virtualization on your machine.
Follow this Tutorial
Once this has been turned on you can continue. If you want to check it has been turned on, go to the CMD and type systeminfo
then
at the bottom make sure the Virtualisation settings are all on.
Download Virtual Machine: Windows | Mac
Follow the instructions to download it, make sure you have enough room on your drives as it can sometimes be quite large in terms of when the Virtual machines are made.
To confirm you have got the correct version, open the Oracle VM app and go to help > about
to see the version.
You should have version 6.1.4r136177 (Qt5.6.2)
Important
If you are on windows, then you will need to follow some extra steps to manually install drivers.
- In File Explorer, navigate to C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv
- Right click on the VBoxDrv.inf Setup Information file and and select Install
- When it's finished installing, open up a new terminal window and run sc start vboxdrv
- Press the Windows Key and search for Control Panel, go from there to Network and Internet, then Network and Sharing Centre, then Change Adapter Settings.
- Right click on VirtualBox Host-Only Network and choose Properties
- Click on Install => Service
- Under Manufacturer choose Oracle Corporation and under Network Service, choose VirtualBox NDIS6 Bridged Networking driver
Just to be safe, Restart your machine one more time.
That is all for the requirements, it should all work now. Next we will see how to set up the environment inside your computer.
First of all make sure you have downloaded this Repo as a zip. Create a folder inside one of your directories
called anything you like, a good example could be VM_MultiMachine
and place that zip inside and unzip it.
Once unzipped you should have the following files in your directory:
- app
- environment
- tests
- .gitignore
- README.md
That means you are ready to start creating your virtual machine using Vagrant! The first thing you need to do is open a git bash command line in ADMINISTRATOR MODE so that you have all privileges. Then navigate to the folder that has the files you just unzipped.
Tips
- To change drive simply do
cd /<driveletter/
to change onto that root. - To go back a directory do
cd ..
to go back a single directory
Once you are inside the directory you unzipped the contents of this repo, type the following command:
vagrant up
This will automatically create a VM for both the app and the database. This may take a few minutes... depending on your chosen drives speed.
All the dependencies and software should be pre-installed in the provisions that I have added into the VagrantFile
.
When it comes to a end, the two Oracle machines should be running, there are two ways to check this:
- Open the
oracle VM VirtualBox Manager
and you will see them both running - Type
Vagrant status
Perfect Now you can move onto the next step...
Important
If you are not interested in going into the Virtual Machine and just want to access it via the browser, simply skip to Open Website in browser
Accessing the VM
To access the Virtual Machine you just created, use the command:
vagrant ssh <name_of_machine>
First of all we are going to enter the app
machine with vagrant ssh app
this should load us into the virtual machine.
Running the server
If you followed the last step you should be inside your virtual machine where the app can be launched, everything has been taken care of in the background thanks to the provision. If you are interested in how it works then please go (HERE).
The first thing to do is navigate to the app directory, you should be in the home directory now so to check use ls
, you should see the
app folder. To access the app and run the node app, follow these steps:
# Navigate into app directory
cd app
# ls to see what is in the directory
ls
# run the node application
sudo node app.js
>> app listening on port 3000 << Expected output
If you have got this far and see the expected output then you are now ready to move onto the next step. The app should now be available to connect to on the browser.
The last step is to open a Browser of your choice. I prefer FireFox.
Navigate to your URL, from here you can access parts of the NGINX server using the development.local
.
Here is a full list of the websites available.
URL | Description |
---|---|
Development.local | This is the home page of the app |
Development.local/fibonacci/number |
This page is of course related to the Fibonacci number sequence. Replace number with a digit and it will return the value of that Particular place in the Fibonacci sequence. E.G. /6 → 5 |
Development.local/posts |
This page connects to a database to display a list of posts. |
If you would like to know how more about the server, database, proxy and other aspects of this application are set up in the back end, please refer to this page.