We have a new dedicated server from Hetzner. We need an experienced sysadmin that can configure this server for us to host many VPSes based on VirtualBox. The routing between the VPSes must be implemented with PfSense.
Aside from the main IP address used for the metal server, we have the following IPs:
- 6 IPs directly accesible from the outside world; 1 of these IPs will be used by PfSense
- 30 IPs that will need to be routed throught PfSense
Internally, we are using the LEMP stack (Linux, Nginx, MySql, PHP); you will need to configure one (1) VPS and give us access via SSH. We will install anything else that we consider to be necessary. When we are done, you will clone that VPS until we would have 1 VPS for each IP that we own.
In total, we need to configure 36 boxes:
- 5 direct-access Ubuntu 16.04
- 1 PFSense
- 30 Ubuntu 16.04 machines that will access the outside world through PfSense;
When we will be done, all 36 virtual machines will be reachable from the Internet.
Each machine will need to have 2 working URLs:
a. a URL for PHPMyAdmin such as:
b. a URL to an environment where a programmer can start working immediately
All the working environments will be mapped locally to the folder:
For each VPS, we will have a "work" user.
After each clonning, the following parameters will have to be updated:
1. set new IP address (we need the new IP address, we cannot have 2 VMs with the same IP);
2. set new VRDE port (each machine must be accessible with the RDP protocol);
2. update the config files for Nginx in order to have the 2 URLs working;
3. rename the working folder for the "work url" as:
4. assign a new random password to the "work" user; This is very important: each
VPS will have a different password for the SSH user ("work" user);
5. assign a new random password for the HTTP protection for the PhpMyAdmin URL;
6. assign a new random password for the root MySql user;
7. create a database named "work-X": work-1, work-2, work-3 etc
Steps 3 and 7 are created so that it will be more easy to understand on what VPS a user is.
On the metal server, we would need to install PhpVirtualBox; we must be able to control all VPSes through this interface.
The metal machine will work on PHP7, Nginx and Ubuntu 16.04 - just like all the Virtual Machines.
The metal machine will only have the minimum number of services installed. The VDRE ports will not be opened in the firewall. We will disable the firewall during the install. When the firewall is enabled, the VRDE ports must not be accessible.
The numeration of the VRDE ports will start with number 10000
- Install PfSense and 5 VirtualBox machines with the latest Ubuntu 16.04 LTS
- Create a list of VMs and their associated IP addresses; using this list, we will
update the DNS for the 2 URLs that need to work on each VPS (phpmyadmin and work) You will not have access to the DNS; this is something that we will do ourselves.
- Install the rest of the VPSes
For each VPS, we will put all the data in an Google Docs Excel Sheet.
After this task we have another short one: we are using Google Cloud DNS and it seems that something is not exactly right. The subdomains are mapped to an IP but it seems that we don't have an authoritative DNS?
Please read the spces carefully. We are very particular about our requirements. We don't want something "like that", we want something "exactly like that".