Containers – 10 Minute Notice

    • Start Here
      • LE NGINX Proxy

This landing site for the CSCI 4113/5113 module is the most important module in this course; as your group’s final project submission at the end of the semester will include launching an application stack of your choice on the CS Cloud OpenStack Platform. Like the previous modules it combines all previous knowledge thus far. Please review earlier modules on Canvas if you need a refresher. While these concepts will also apply to our later section on container orchestration via K8’s your final project does not need that level of involvement. Once you have your file staged, you will find it is extremely easy to shift your entire container stack to a different host with an rsync script; even with a 10 minute notice.

This final module’s goal is to further explore services via unorchestrated containers, but with a more production-ready mindset. While we worked with docker compose in the previous module for developing our application stacks, deploying via compose is not typically recommended for larger scale production. We will transpose these into podman systemd unit files using podman-systemd as a starting point. Unlike docker, podman is daemon-less; RHEL also does not ship compose from its enterprise repositories. While not in scope of this class, it usually is much easier to translate podman workloads from systemd into an orchestrated solution such as K8s provided by RKE2, EKS, GKE, Red Hat OpenShift, etc. The podman toolchain includes utils to generate k8s yamls as well.

To illustrate the portability of containers, Module 8 will have you using Podman instead of Docker, and Red Hat Enterprise Linux 9 instead of Debian 12. Since RHEL 8, docker is no longer shipped in RHEL and can only be installed with other channels such as EPEL.

Module 8 submissions must be in this environment; however your final project submission can be any webapp stack you want to run as long as it consists of a LetsEncrypt Proxy, Database, and whatever backing applications you would like. Examples of previous semester submissions by students included wordpress, drupal, homebridge, minetest, minecraft, etc. Your Instances will stay running for 1 semester following the conclusion of this course.

Since OpenStack is EC2 compatible, you will also be able to download your volume from our on-prem OpenStack Cloud and upload it to ie, AWS if your final project is something you have intrest in running longer term personally. Cloud is not covered in this course but there are several guides on the internets moving OpenStack workloads to Amazon. Your instructor also happens to be the CS Cloud OpenStack operator so feel free to ask questions outside of class about maintaining and managing the on-prem cloud at campus in our datacenters. We will be looking for a sysadmin student employee next semester!

If you would like extra credit; you can further combine knowledge back from Module 6, and build your own app as your backing webapp in an actions pipeline. Feel free to use the university GitHub Enterprise service as a pipeline to build your container. As a reminder the container process supervisor we used in this case is the s6-overlay. For this route to count, you must use a process supervisor within your custom image. While s6-overlay is recommended since there are example templates from the previous lab, feel free to use any init solution you want, such as supervisord… as long as it works.

To begin this week’s module, click “Start Here” at the top right of this page. It is recommended that your group delegates tasks as desired.


Reboot Test Reminder!

Your server must be able to survive the “reboot test”. All services should come back automatically. If your services fail to start; you will not recieve any points. Your group would need to resubmit in this case with a late penalty. Make sure your container start properly with a reboot test.

Group Contribution

This section is again a group project. Everyone must contribute in some manner and what who contributed on needs to also be submitted in the Assignment 8 field in this module in Canvas. If a group partner is not contributing, call them out on your peer evaluation.

Instance Image

We are changing it up this Module back to Enterprise Linux, RPM. This includes ie, RHEL, RL, AlmaLinux OS, CentOS Stream. If you need a refresher visit Module 1 on Canvas for the refresher on Linux System Administration. It is recommended review the rpm, systemd, and SELinux labeling sections.

Start Early

Reminder to start this module early. Do not wait until the last minute as this project is expected to take a bit with troubleshooting.