Ubuntu Web Development Environment
You are part of a startup company that just hired 3 new Linux developers. In
preparation for their arrival your boss has given you the task of creating a new Linux
environment. There are some basic requirements that need to be in place before the
You are expected to install and configure two Linux servers (Ubuntu-Server and
Fedora-Server). Server Installation procedure not required to be displayed and
explained. Focus on the tasks given below. The servers are meant to run headless for
less overhead (No GUI needed). You should include a Linux workstation, such as
Ubuntu Desktop or Fedora Desktop (for testing). Ubuntu-Server will serve as the main
server running all services. Fedora-Server will be the remote backup server.
• Post installation requirements include full update and static IP address
configuration for all servers. You must install an additional hard drive for
storing backups on the backup server (Fedora-Server). The newly mounted
drive should be persistent (FSTAB).
• For testing access and configurations, you are to create the user accounts for
team members ( John, Richard, Mark) on the main server (Ubuntu-Server). A
common group called cosmic must be created and all team members added
to that group. Create any other group you deem necessary for completing the
• Users must be required to login via SSH using encryption keys instead of
passwords. Richard is expected to perform some admin tasks on the servers
and needs to be able to run commands using “sudo”. Users must be limited to
only run 2 concurrent SSH sessions.
• Create a Docker container using Dockerfile, the container should be
Ubuntu:latest with Apache2 installed on it (Ubuntu-Server). Configure Apache
to host two sites www.startup.test and www.info .startup.test using virtual
hosts. Remember to disable the default Apache site. The docker container
should start automatically at boot up.
• A scheduled backup to a remote server (Fedora-Server) should be configured
for each site’s root directory (public_hmtl). The home directory should also be
backed up to a remote server (Fedora-Server). This task is to be completed
using Crontab and Rsync.
•This is not a pure theoretical assignment, use virtualization or physical
hardware to demonstrate your solution.
•Remember to justify your choices and configurations in the main part.
You are expected to do additional research which goes beyond the course
•Your report should have three (optionally four) divided parts –
Introduction, Main Part/Solution, and Summary/Conclusion.
Introduction: clearly and in detail, states what you will do to address the assignment
tasks. See the assessment criteria grid for details.
Main Part: Present the arguments for why you decided to configure servers and
services the way you did. A complete discussion of all the services with regards to their
roles on the server in line with best practices. See the assessment criteria grid for
Solution/technical part: Prove with screenshots that the configurations and services
implemented work. Students are expected to demonstrate an understanding of
configurations presented (This can form part of the main section). See the assessment
criteria grid for details.
Summary/Conclusion should clearly be linked to the introduction – presenting
findings and results in addition to a summary. See the assessment criteria grid for
Remember to cite your sources in the Harvard Style and add a list of sources at the end
of the document.
NB: THE FINAL REPORT SHOULD NOT BE A GUIDE/TUTORIAL BUT WILL ACT AS
DOCUMENTATION FOR YOUR SETUP.
For complete overview of the marking criteria – please refer to the grid in the Section
4: Marking and Assessment Criteria