Description
CIT 470: Advanced Network & System Administration
Midterm Report and Presentation
Introduction:
There is not late work submitted or accepted for the midterm report and presentation.
You should plan accordingly over the next three weeks.
For your midterm, you will provide a report and presentation that provides a brief overview of the work you have done so far in the semester. This assignment helps prepare you for the real world where you may be asked to research new technologies and present your findings.
It will cover the following topics:
FOG:
oServer and client installation
oHost registration
oImage capture
Docker:
oInstallation and testing (Hello World)
oContainerization overview
Apache:
oDocker containerization
oWebpage creation
Uptime-Kuma:
oDocker containerization
oWebsite monitoring
oDocker container monitoring
Requirements:
Part 1 – Report:
Please write a report that discusses the software you have used throughout the semester, starting from FOG. You are permitted to use the content from your Reflection Report assignments, but you may need to add on to it. Also, the structure of your report is free form, allowing you to choose what works best for you. However, please make sure it includes an overall introduction and conclusion, is divided into logical sections, and clearly communicates your ideas. In addition, a length requirement is not given, but you should ensure your writing sufficiently explains your work.
Please be aware you cannot receive credit for a section of the report / presentation if you did not turn in a lab.
If you did turn in a lab but did not receive full credit you will have the option to redo the lab for a regrade before the report / power point / recorded presentation us due. If you do not redo the labs for credit your midterm report should cover why things do not go as well in the labs and what you would do to correct any concerns.
Please be aware I will be out of town the for the entirety of Spring Break. I will be leaving at 5pm Friday March 1st and will not return until very late on Monday March 11th.
I will have limited access to the internet during this time so if you have questions you should ask by 4pm Friday March 1st.
The report / power point / recorded presentation will be due on Sunday March 17th.
Please note there will be new assignment the week after spring break.
For your midterm grade I will consider all work done through docker up-time kuma lab.
I will submit these before I leave on Friday March 1st.
With the topics listed in the Introduction, your report must meet the following requirements:
Provide a brief overview of the four applications / containers listed above, including their purposes, features, and benefits. Be sure to emphasize containerization when discussing Docker.
How did you install each application (referring to your experiences in the lab)? If a Docker container was used instead of a native installation, how did you run and use it? You do not need to list the commands; instead, discuss the overall steps you took.
The report should not include any code or how to install project. This would be documentation. Your report and other parts are to discuss at a higher level.
What did you do with each application and container in the labs? The subpoints in the Introduction should be focused on here (except for containerization overview).
How would the software / containers you used benefit a company? You may cite personal experience if you work at a company and use this software.
Which of the applications / containers did you find easy to use? Which ones were difficult? Briefly discuss at least one change you would like to see in a future version of at least one application / container.
Include a title page, a References / Works Cited page, and in-text citations in your report. These requirements must be met through following MLA or APA standards.
Part 2 – Presentation:
For your presentation, cover the same topics as above, but summarize what you wrote about them in your report. Create a PowerPoint presentation with this information, then record a video of you presenting your work with it. You may consider using OBS studio for this (the link will be in Canvas).
Your presentation should be around 7-10 minutes in length (it is okay to be a few seconds less or more). Also, consider using images to demonstrate your work and tables to organize information. Be sure to cite your sources with one or more slides listing them. If you use images from the Internet, you will need to cite them as well.
Part 3 – What do I submit to Canavas.
Your written report
Your power point for your presentation
You should ask questions as early as possible as you do not want to wait until the last moment.
Unformatted Attachment Preview
CIT 470: Advanced Network & System
Administration
Docker Containerization: Apache Webserver
Introduction:
In this lab, you will deploy an Apache container with Docker. This process will be performed via
a very brief script you will write and run on your Docker server. You will then create a test
HTML webpage to test whether you can host web content.
Requirements:
Part 1: Scripted Apache Container Deployment
Please write a script that deploys an Apache container via Docker. This script must be run by the
root user and perform the following:
•
Disable SELinux on your Docker server to the program from interfering with Apache.
o Use text transformation to replace the SELinux configuration file line that
activates the program with a line that completely disables it.
•
Create the following directory: /home/cit470/website.
•
Run the command in the documentation below to deploy an Apache 2.4 container. You
will need to modify that command with the following information:
o Name the container 470_apache.
o Use the folder you created instead of the generic /home/user/website/.
•
When the deployment is finished (no verification checks needed), print a message that
confirms the container is deployed and prints a link to the main webpage. The link should
be formatted as follows: http://172.17.0.1:8080/docker.html.
o Store the Docker server’s IP address in a variable and then print it here.
o Make sure you use http and port 8080 in the script and browser address bar. We
will not be configuring HTTPS in this lab.
Part 2: Test Webpage Creation
After deploying the Apache container, create a simple HTML file named test.html that has a title
of CIT 470 Test Page, a boldfaced first heading of your full name, and an italicized second
heading of your major(s). Create this file in the directory your script created.
Documentation & Tips:
We strongly recommend using the following documentation for this lab:
•
How to Install Apache in a Docker Container in Linux (tecmint.com)
o This page will explain how to deploy an Apache container. Skip the Docker
installation instructions and go directly to the section discussing Apache.
•
HTML Editors (w3schools.com)
•
HTML Text Formatting (w3schools.com)
o These pages will help you create the HTML page.
Here are some tips to keep in mind as you work on this lab:
•
SELinux is disabled by editing a specific file. A simple web search for disabling SELinux
will help you locate it.
•
The sed and hostname commands can help you perform some of your script’s tasks.
•
The Apache container documentation contains a test HTML page. You can use it to get
started with Part 2.
•
If you encounter permission errors accessing your webpage, reboot your Docker server.
Make sure to run systemctl enable docker before doing so if you did not run it in the
last lab.
o However, if you reboot your server during this lab, note that you will need to
restart your Apache container; otherwise, your webpages will be unavailable. To
restart the container, type docker ps -a, then type docker run [ID], with ID being
the Container ID of the Apache container.
Submission Instructions:
When you are finished, submit a Word document that contains the following:
•
The results of the docker images command after running the script.
•
There should be one named httpd. The text from your script for Part 1.
#!/bin/bash
sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config
setenforce 0
mkdir /home/cit470/website
docker run -d –name 470_apache -p 8080:80 -v
/home/user/website:/usr/local/apache2/htdocs/ httpd:2.4
ip_address=$(hostname -I | awk ‘{print $1}’)
echo “Apache container deployed successfully! Access the main webpage at
http://$ip_address:8080″
•
The text from your HTML page for Part 2
CIT 470 Test Page
Andrew Thawng
Computer Information Technology
•
A screenshot of your test HTML page being viewed from the Docker Server’s Firefox
browser.
CIT 470: Advanced Network & System
Administration
Docker Containerization: Uptime-Kuma
Introduction:
In this lab, you will download and run the Docker image for the Uptime-Kuma web-based
monitoring tool. You will then configure the tool to monitor some webpages and your Docker
server’s containers.
Requirements:
Please use the documentation provided below to download and run a Docker container for the
Uptime-Kuma monitoring tool. Visit the tool’s web interface and create new Monitor entries for
the following:
•
NKU’s home page.
•
The test.html webpage you made in the last lab.
•
The Docker container for your Apache webserver.
For monitoring the Docker container, you will need to make the socket for Docker available to
the Uptime-Kuma container when deploying it (in other words, specify the port in your docker
run command). The second article will provide the command argument necessary to do so. You
will then need to register your Docker server as a Docker Host in the tool’s web interface (check
the Settings menu for this).
Documentation & Tips:
We recommend the following webpage to install Uptime-Kuma:
•
GitHub – louislam/uptime-kuma: A fancy self-hosted monitoring tool
o The tool’s GitHub page. Follow its instructions on installing via Docker.
•
Documentation on how to setup docker container monitor · Issue #2093 ·
louislam/uptime-kuma · GitHub
o Use this article to configure Uptime-Kuma for Docker container monitoring.
Scroll down to the section sharing the command to give the container access to
the socket.
Here are some tips to keep in mind as you work on this lab:
•
For your test webpage, make sure you use http://[vm_ip_address]:8080/test.html.
Including the IP address, not just 127.0.0.1 or localhost, is important.
•
When creating a new Monitor, you can change the monitor type to support Docker
containers.
•
When running the Uptime-Kuma container, make sure you add the socket support
argument in the middle of your run command. It should be placed after the first -v
argument (you should have two -v parameters in your command).
Submission Instructions:
When you are finished, submit a Word document that contains the following:
•
A screenshot of the docker ps -a command, listing your Uptime-Kuma container.
•
A screenshot of the Docker Host being configured successfully in the Uptime-Kuma web
interface.
•
A screenshot of the dashboard of the Uptime-Kuma web interface, showing all three
monitoring entries in the Up state.
o The entries will be colored green if up.
o Focus on their listing on the left panel. You may need to scroll down to get all
three on your screen simultaneously.
CIT 470: Advanced Network & System
Administration
Docker Server Installation
Introduction:
In this lab, you will install Docker on one of your CentOS 8 servers. You will need to experiment
and troubleshoot to complete this task due to CentOS 8 no longer officially supporting the
software.
Scenario and Requirements:
You are a member of your company’s system administration team. One day, your supervisor
pays you a visit and introduces you to the Docker software. She is keenly interested in having the
company use it as it provides an efficient, safe, and convenient way to develop, test, and deploy
applications. However, the software is not officially supported by CentOS 8 devices, which is the
operating system your company’s servers use. Despite the technical hurdle in sight, your
supervisor kindly (and firmly) insists that you find a way to install Docker. She also asks you to
briefly document some information concerning your solution so it can be easily and quickly
replicated on the company’s production servers.
Your task in this lab is to install Docker on one of your CentOS 8 servers. You will need to do
some research to find a way to make this work.
When you successfully install it, write one or two brief paragraphs discussing the following:
•
What changes did you make to your server to get Docker installed? For example, did you
have to uninstall any existing packages? Did you have to disable any services or
processes? Did you have to open any firewall ports?
Due to CentOS not having the Docker Engine package by default, I had to create the
repository manually. I also had to manually start the Docker service and enable it to
run at startup.
o If you did not make any changes, you can report that.
•
•
How did you install Docker? For example, did you install it from source? Did you install
a repository?
To install Docker, I created a repository that pointed to the official docker source
for CentOS repository.
What specific articles did you consult to install Docker?
I used this website to assist with the installation process
https://docs.docker.com/engine/install/centos/
Documentation & Tips:
For this lab, you will need to perform independent research and find sources to help you install
Docker. You are still permitted to request help from the TA or professor, but if you do so, please
specify what you are stuck with and what you have tried so far.
Here are some tips to keep in mind as you work on this lab:
•
When searching for sources on the Internet, be sure to use proper keywords to ensure
your searches are specific enough. For example, you will need to specify CentOS 8, not
just CentOS. Note that Docker is installed through different means on other operating
systems.
•
If the installation method you use utilizes yum or dnf at some point, it may result in an
error (this happens when you attempt to simply install the required packages without
additional configurations and downloads). If you receive such an error, include the first
parameter in the bottom of the error message to override the error (the parameter will
start with two dashes (–)).
Submission Instructions:
When you are finished, submit a Word document that contains the following:
•
The paragraph(s) you wrote in response to the given questions.
In order to install Docker on a CentOS 8 server, I had to make some changes to the
server. First, the Docker Engine package was not available by default, so I had to
create the repository manually by using the following command: ” sudo yum-configmanager –add-repo https://download.docker.com/linux/centos/docker-ce.repo”.
This added the Docker repository to my system. Then, I had to manually start the
Docker service and enable it to run at startup. To install Docker, I created a
repository that pointed to the official docker source for CentOS repository. I
followed the instructions provided in this website:
https://docs.docker.com/engine/install/centos/ which was very helpful in assisting
with the installation process. After installation, I verified that Docker was working
by running the commands “docker run centos /bin/echo “Welcome to the Docker
World!”” and “docker run hello-world”. I also pulled a CentOS image and was
able to run it by using the commands “docker pull centos” and “docker run -it
centos /bin/bash”. Within the CentOS instance, I ran the command “uname -a” to
get further confirmation that the installation was successful.
•
Screenshots of the output for the following commands, which you will run after installing
Docker to prove that it works:
o docker run centos /bin/echo “Welcome to the Docker World!”
o docker run hello-world
•
Screenshots of the output for the following commands, which will prove you can pull a
CentOS image and can run it:
o docker pull centos
o docker run -it centos /bin/bash
o uname -a
▪
Run this command while in the CentOS instance.
▪
Hint: You can leave the container shell by entering the exit command.
CIT 470: Advanced Network & System
Administration
FOG Installation
Introduction:
READ THIS LAB COMPLETELY BEFORE YOU START
In this lab, you will install FOG on a server you will be dedicating to the program. This program
will be used in the next lab to clone a CentOS 8 client machine and create an image. Once
installed, the FOG server will provide a convenient web-based user interface for you to work
with.
Requirements:
Please install the FOG server software on the specific server dedicated to it (it will have the most
disk space compared to your other VMs). When you run the installation script, please ensure you
use the following settings:
•
Select the option that correlates to the RedHat distribution.
•
Select the FOG Server option (not FOG Storage).
•
For the following options, keep the specified configurations as is and do not let the script
alter them:
o Default network interface
o All DHCP settings
▪
Note: Your pfSense server is your LAN’s DHCP server. Ensure your
selections for these questions reflect this.
o Internationalization support (additional languages)
▪
Note: You are permitted to install this one if you wish to use FOG’s UI in
a different language).
o HTTPS support
o Hostname settings
•
Ensure you followed these instructions when you review the recap section. If everything
is configured correctly, allow the script to perform the installation.
When the installation is finished, install the FOG Client software on one of your client machines.
Use the default Webroot directory, do not enable the tray icon, and have the script start the FOG
service when done.
Documentation & Tips:
For this lab, we strongly recommend that you use the documentation given below. However, feel
free to use different sources or even supplemental ones; the ones below are simply the ones we
recommend, not require:
Here are some tips to keep in mind as you work on this lab:
•
CentOs uses the su command to move to root. sudo doesn’t work.
•
Be sure to run dnf update -y before running the installation script.
•
Disable selinux.
https://linuxize.com/post/how-to-disable-selinux-on-centos-8/
•
Disable Firewall
•
Shutdown your VM after update and take a snapshot. This will speed up
any recovery if you need to revert.
Fog Server Setup
•
https://docs.fogproject.org/en/latest/installation/server/install-fog-server/
o This guide will explain how to install the FOG server software.
o The script will ask if you want to disable selinux and the firewall
The script doesn’t actually do this if you answer Y.
See the tips section on how to disable these items.
o It is a good idea to get a script of your installation. You can
do this by typing the script command before you start.
Type exit once you are done. There is important information
given by the installation script.
Fog Client Setup (This is not installed on the same VM as the Fog Server)
Do this after your Fog Server is setup properly.
•
https://docs.fogproject.org/en/latest/kb/reference/fog-client-installation-options
o Use the CentOS instructions to complete the FOG client software installation.
o You will want to scroll down the page to the Linux Client section
•
Please note that the installation script may take some time to complete due to the large
number of packages it installs. If the script hangs on a specific package for 10 minutes or
more, you may need to terminate the script with Ctrl + C and then restart it.
•
To access the FOG server’s web interface, type in the server’s IP address in a VM’s web
browser. Please wait to login until the installation is complete.
•
The FOG client installation may show an error message. So long as the installer resolves
the error and does not perform an uninstall, the software should be successfully installed.
Submission Instructions:
When you are finished, submit a Word document that contains the following:
•
A screenshot of the message the FOG installation script prints when the installation
succeeds.
•
A screenshot of a VM’s web browser visiting the homepage of the FOG server’s web
interface.
https://192.168.1.102/fog/management
•
A screenshot of the results of the mono SmartInstaller.exe program, showing a successful
installation message (it will show Finished without an un-installation message).
CIT 470: Advanced Network & System
Administration
Midterm Report and Presentation
Introduction:
There is not late work submitted or accepted for the midterm report and presentation.
You should plan accordingly over the next three weeks.
For your midterm, you will provide a report and presentation that provides a brief overview of
the work you have done so far in the semester. This assignment helps prepare you for the real
world where you may be asked to research new technologies and present your findings.
It will cover the following topics:
•
FOG:
o Server and client installation
o Host registration
o Image capture
•
Docker:
o Installation and testing (Hello World)
o Containerization overview
•
Apache:
o Docker containerization
o Webpage creation
•
Uptime-Kuma:
o Docker containerization
o Website monitoring
o Docker container monitoring
Requirements:
Part 1 – Report:
Please write a report that discusses the software you have used throughout the semester, starting
from FOG. You are permitted to use the content from your Reflection Report assignments,
but you may need to add on to it. Also, the structure of your report is free form, allowing you
to choose what works best for you. However, please make sure it includes an overall introduction
and conclusion, is divided into logical sections, and clearly communicates your ideas. In
addition, a length requirement is not given, but you should ensure your writing sufficiently
explains your work.
Please be aware you cannot receive credit for a section of the report / presentation if you did not
turn in a lab.
If you did turn in a lab but did not receive full credit you will have the option to redo the lab for a
regrade before the report / power point / recorded presentation us due. If you do not redo the
labs for credit your midterm report should cover why things do not go as well in the labs and
what you would do to correct any concerns.
Please be aware I will be out of town the for the entirety of Spring Break. I will be leaving at
5pm Friday March 1st and will not return until very late on Monday March 11th.
I will have limited access to the internet during this time so if you have questions you should ask
by 4pm Friday March 1st.
The report / power point / recorded presentation will be due on Sunday March 17th.
Please note there will be new assignment the week after spring break.
For your midterm grade I will consider all work done through docker up-time kuma lab.
I will submit these before I leave on Friday March 1st.
With the topics listed in the Introduction, your report must meet the following requirements:
•
Provide a brief overview of the four applications / containers listed above, including their
purposes, features, and benefits. Be sure to emphasize containerization when discussing
Docker.
•
How did you install each application (referring to your experiences in the lab)? If a
Docker container was used instead of a native installation, how did you run and use it?
You do not need to list the commands; instead, discuss the overall steps you took.
•
The report should not include any code or how to install project. This would be
documentation. Your report and other parts are to discuss at a higher level.
•
What did you do with each application and container in the labs? The subpoints in the
Introduction should be focused on here (except for containerization overview).
•
How would the software / containers you used benefit a company? You may cite personal
experience if you work at a company and use this software.
•
Which of the applications / containers did you find easy to use? Which ones were
difficult? Briefly discuss at least one change you would like to see in a future version of
at least one application / container.
•
Include a title page, a References / Works Cited page, and in-text citations in your
report. These requirements must be met through following MLA or APA standards.
Part 2 – Presentation:
For your presentation, cover the same topics as above, but summarize what you wrote about
them in your report. Create a PowerPoint presentation with this information, then record a video
of you presenting your work with it. You may consider using OBS studio for this (the link will
be in Canvas).
Your presentation should be around 7-10 minutes in length (it is okay to be a few seconds less or
more). Also, consider using images to demonstrate your work and tables to organize information.
Be sure to cite your sources with one or more slides listing them. If you use images from the
Internet, you will need to cite them as well.
Part 3 – What do I submit to Canavas.
1. Your written report
2. Your power point for your presentation
3. Your recorded presentation
You should ask questions as early as possible as you do not want to wait until the last
moment.
CIT 470: Advanced Network & System
Administration
Reflection Report
Instructions:
In this activity, you will write a few paragraphs reflecting on your work in this section’s labs.
This will help you prepare for your midterm and final presentations.
Length is not the focus, but quality is. Please ensure your writing is long enough to adequately
answer the questions below. Also, make sure you cite your sources according to MLA or APA
standards.
For this report, please respond to the following in relation to the applications you worked with in
this section’s labs:
•
Please describe the software you worked with. What is its main purpose? What are some
of its key features?
•
How did you install the software? Please cite any sources you used in doing this.
•
What did you do with the software in the lab(s)? What configurations did you make and
which VMs did you use for this? Again, please cite the sources you used for the
configurations.
•
Why would a company want to use the software you installed? In what ways would the
company benefit from it? Please cite at least one source that discusses this.
Reflection
Introduction to FOG Software
The open-source software application I installed and configured in this lab is called FOG
– which stands for Free Open Ghost. FOG’s primary purpose is to enable easy and rapid
deployment of disk images to a large number of computers. This allows automating the operating
system installation process as well as software bundle distribution (Rouse, 2022).
Some major capabilities provided by FOG include:
• PXE-based network booting for hardware-independent image deployment
• Web-based administrative dashboard for centralized control
• Disk image management for capturing, storing and deploying system backups
• Multicasting functionality to scale to hundreds of target machines
• Inventory tracking for assets and installed software versions
• Integration with Windows, Linux and macOS clients
By leveraging these features, companies can greatly optimize and scale their IT operations staff
to handle refresh cycles efficiently. Next I will cover my specific installation method.
Installing FOG Solution
I installed FOG Server by following the advised documentation guidelines provided by
the FOG Project (2023). The foundation was a CentOS 8 Stream virtual machine I created using
Oracle’s free VirtualBox platform. Given disk space recommendations, I allocated a 100GB disk
and 4GB of RAM to adequately host the various FOG services.
The documentation directed preparing CentOS by disabling security controls like
SELinux and firewalls to simplify initial configurations. With those disabled, I was able to
execute the bundled “installfog.sh” script which prompts interactively to install required
components. This included MySQL, Apache, TFTP server, DHCP server, as well as
administrative PHP code. I configured these services leveraging my existing network settings in
VirtualBox.
Utilizing FOG Capabilities
With my FOG Server fully installed on the CentOS virtual machine, I experimented with
core capabilities using additional client VMs under VirtualBox. Primary amongst these was
FOG’s disk imaging utilities which can rapidly backup and restore full system drive contents for
deployment automation. I created an initial disk image backup of a clean CentOS install which
served as my “gold” master template. By distributing this image to other systems using FOG’s
PXE network boot support, I could completely bypass slow manual OS installations. This
highlights the immense time and effort savings that FOG enables.
I also leveraged options like FOG’s remote management dashboard, reporting features,
and inventory tracking to validate full functionality as part of my testing. These supplement the
core imaging aspects to simplify administration of all life-cycle stages.
FOG Benefits for Enterprise Usage
Based on my installation and testing, it becomes very clear the optimizations FOG can
drive for enterprise IT groups responsible for managing thousands of endpoints (Rouse, 2022).
The transition from tedious, repetitive manual work towards purely automated installations and
configuration changes is truly groundbreaking.
Eliminating the unnecessary complexity around initial OS deployments, software
updates, and PC refresh allows more focus on user experience and delivering innovations – the
true purpose of IT teams. FOG transforms these processes to empower the staff, not constrain
them. Large organizations stand to benefit most given the scale of labor savings and preventable
human errors. With dedicated virtualization equipment, companies could deploy over a thousand
fully customized systems overnight using FOG as opposed to weeks or months of manual
imaging. This massive change multiplies IT contributions to the business.
References
FOG Project. (2023). FOG Server Installation Guide.
https://docs.fogproject.org/en/latest/installation/server/install-fog-server/
Rouse, M. (2022). What is FOG (Free Open Ghost)? SearchEnterpriseDesktop.
https://www.techtarget.com/searchenterprisedesktop/definition/FOG-Free-Open-Ghost
Purchase answer to see full
attachment