FINAL PROJECT INSTRUCTIONS
The final project will be completed in two steps. The first part will be due in Week 8 and the second part will be due in Week 12.
- For all scripts, detailed comments should be given for each command run with references to manuals and other implementations. You should be using Standard Bash Language/Commands with proper syntax.
- For the written responses to both Part 1 and Part 2, at least three industry and/or scholarly sources should be cited as references in APA format. You should go into as much detail as possible so that your competence is demonstrated when explaining your steps.
Part 1 (Due in Week 8)
You are leading an effort in your company to use Ubuntu for all servers being used in the production environment. In your own words, explain the steps that you would take for deploying the latest version of the Ubuntu© Enterprise License (Ubuntu©) Operating System. The tenets that you need to discuss in detail are:
- Hardware requirements for 64-bit operating systems for desktops and servers. What specifications do you recommend for desktops and servers?
- Release notes
- Obtaining an enterprise license, technical support, and copies of the Ubuntu image
- Testing installation steps in the development environment and functionality testing
- Addressing companys security standards
- User and group management
- Ubuntu libraries for business as usual operations
- Performance testing
- Application deployment
- File system and permissions
- Full installation of Ubuntu in the production environment
- Customized configurations
Part 2 (Due in Week 12)
After you have fully installed the Ubuntu© operating system to your companys production servers, you are now responsible for managing and monitoring the servers with Ubuntu© installed. You need to use the virtual environment that you set up with Ubuntu to do the following:
- Create a script (called user_creation.sh) that creates a user group named employees. Put the following users in the employees group: steve, joan, samantha, robert, and yourself (first name). All users should have a user directory in the home directory (e.g., /home/samantha) where only the user has read and write permissions. Explain what kinds of permissions/access are needed to effectively run this script. Where would you store this script on the file system and why?
- Explain to your boss in detail how to create a disk mount named /data with 2TB of disk space (assuming you have 10TB of free and unallocated disk space on the server) and a directory on the /data mount called /tenants. Each user in the user group except for you should have read and write privileges. Your have only read privileges for this directory.
- Create another script (called users_monitoring.sh) that logs each users commands and activities on the operating system. It should be sending the log messages to this endpoint:
- IP address: localhost
- Port: 8080
- Protocol: UDP
- The script should run every five minutes, so you need to explain how you would get this to run on a timed basis. What kinds of permissions/access are needed to effectively run this script and transmit logs? Explain to your team where you would store this script on the file system and why.
- Create a script (called health_monitoring.sh) that writes the current CPU usage, memory usage, disk space usage for the /data mount that was previously created, a list of all files created on the /data mount, and all of the processes currently being run on the server to a file (performance.txt) every hour. You want to overwrite the file, performance.txt, and give it read-only access. Please explain to your boss where you would put the performance.txt file on the file system and where you would put the health_monitoring.sh script.
- Your team wants to deploy a new application on the servers that needs the latest Java© Development Kit (JDK) and GNU Compiler Collection (GCC). How do you check for which versions of these packages that are currently installed on the servers? In detail, how do you tell your team to update and install the latest versions of these packages on the servers? What commands should they be doing to check? How should your team ensure that the servers are using the latest versions of all packages on the servers in production?