Skip to content

About

"UnixSysAdmin2023-Mastering-Shell-to-Cloud: Comprehensive repo for CS 470 course, covering Unix system administration, shell programming, networking, security, automation, and cloud orchestration."

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 

Repository files navigation

Unix System Admin 2023 - Mastering from Shell Programming to Cloud Orchestration!!

Welcome to the Unix System Admin 2023 - Mastering Shell to Cloud repository! This repository is a collection of resources and labs from the class CS 470 - Unix System Administration, Summer 2023 at SDSU by the instructor Peter Bartoli.

Course Overview

This course provides a broad and deep introduction to the Unix and Linux operating system families, covering various distributions including Linux, BSD, and commercial Unix. Throughout the course, you will develop skills in troubleshooting practical operating system malfunctions, networking machines, file systems, and software, compiling and installing software packages, implementing security practices, and administering public and private clouds.

Repository Contents

This repository contains the labs, Google Sheets for questions and learning definitions, as well as challenges encountered and their solutions for the CS 470 course on Unix System Administration, Summer 2023.

Google Sheet

The Google Sheet provided in this repository serves as a collaborative platform for asking questions, sharing learning definitions, and discussing various topics related to the course. Feel free to contribute, ask questions, and learn from your peers.

Labs

  • Lab 0: Unix basics, lab setup, and SSH key-based authentication
  • Lab 1: OpenBSD, TCP/IP, and DNS with BIND9
  • Lab 1b: Directory services (OpenLDAP) and certificates (OpenSSL/LibreSSL)
  • Lab 2: E-mail server on FreeBSD with sendmail and dovecot
  • Lab 3: File server on Rocky Linux with NFS
  • Lab 4: Ubuntu Linux, Docker, and web server with NGINX
  • Lab 5: Commercial Unix, Solaris
  • Lab 5b: Commercial Unix, AIX
  • Lab 6: Private cloud with VMware ESXi and backups
  • Lab 7: GitLab in a public cloud service with Azure
  • Lab 8: Ansible, automation, and centralized logging with syslog
  • Lab 9: Patching, updates, and self-service grading with the reaper

Challenges and Solutions

In this repository, you will find a compilation of challenges encountered during the course and their respective solutions. These challenges cover various difficulty levels and provide valuable insights into troubleshooting and problem-solving in Unix system administration.

Required Texts:

  • Veeraraghavan, SAMS Teach Yourself Shell Programming in 24 Hours, 2nd Edition
  • Kochan, Shell Programming in Unix, Linux, and OS X, 4th Edition
  • Nemeth, et. al, UNIX and Linux System Administration Handbook, Fifth Edition

You can easily find all the texts on Library Genesis: https://libgen.li/

Equipment requirements:

  • CPU: ARM-based Mac (M1/M2) or Mac/PC with 7th generation or newer Intel Core / AMD CPUs - VMware’s CPU requirements at https://kb.vmware.com/s/article/51643 (not recommended no "Celeron" or "Atom" CPUs)

  • RAM: 8 GB minimum, 16 GB or more recommended

  • Disk Storage : ~120 GB free storage space (need more space? $30-40 will get you 500GB of portable USB3 disk for the best experience use an internal SSD, if you can afford it)

  • Hypervisor:

    • For Intel/AMD - CPU , we'll use VMware
    • For Intel Macs - VMware Fusion
    • For ARM Macs - download UTM for Macs https://mac.getutm.app/

P/S: If you buy a new PC/Laptop, try to get something with a Windows “Pro” license, not “Home.”

Scheulde

Week 1

  • Lecture 0: Course Documents and Overview
  • Lecture 1: Unix History and Design Concepts
  • Lab 0: Unix Basics, Lab Setup, and SSH Key-Based Authentication
  • Reading: Read Nemeth 1 and 7

Week 2

  • Lab 1: OpenBSD, TCP/IP, and DNS with BIND9
  • Lecture 2: Demo Day - OpenBSD Installation, vi, screen, script, and Shell Scripting Demos
  • Lecture 3: TCP/IP, DNS, NAT, and Lab Network Architecture
  • Lab 1b: Directory Services (OpenLDAP) and Certificates (OpenSSL/LibreSSL)
  • Reading: Kochan 1-8, Skim Nemeth 7, 13, 14, 15, 16

Week 3

  • Lecture 4: Licensing, Filesystems, and the File Namespace, man, and the Command Line
  • Lecture 5: Booting, Init and Initialization, Service Management, and Troubleshooting
  • Lab 2: E-mail Server on FreeBSD with Sendmail and Dovecot
  • Reading: Skim Nemeth 2, 5, 20, 21, 22

Week 4

  • Lab 3: File Server on Rocky Linux with NFS
  • Lecture 6: argv, fork/exec, the Kernel, the Linker, Libraries, and Processes
  • Lab 4: Ubuntu Linux, Docker, and Web Server with NGINX
  • Reading: Skim Nemeth 4, 11

Week 5

  • Lecture 7: Web Servers and Mail Servers
  • Lab 5: Commercial Unix, Solaris
  • Reading: Skim Nemeth 12, 18, 19

Week 6

  • Lecture 8: User Management, Authentication, and Access Control
  • Lab 5b: Commercial Unix, AIX
  • Reading: Skim Nemeth 3, 8, 17

Week 7

  • Lecture 9: Trusted Computing, Security, Backups, Service Levels, and Business Continuity
  • Lab 6: Private Cloud with VMware ESXi and Backups
  • Reading: Skim Nemeth 27, 31

Week 8

  • Lecture 10: Hosting, Virtualization, Containerization, the Cloud, and Automation
  • Lab 7: GitLab in a Public Cloud Service with Azure
  • Reading: Skim Nemeth 9, 23, 24, 25, 30

Week 9

  • Lecture 11: Version Control, Archiving, Logging, and Monitoring
  • Lab 8: Ansible, Automation, and Centralized Logging with Syslog
  • Reading: Skim Nemeth 10, 28, 29

Week 10

  • Lecture 12: Compiling Software, Package Management, Software Updates, and Grading
  • Lab 9: Patching, Updates, and Self-Service Grading with the Reaper
  • Reading: Skim Nemeth 6, 26

Week 11

  • Lab Day - No Lecture
  • Final Exam

Getting Started

To get started with this repository, follow these steps:

  1. Clone the repository to your local machine using git clone https://github.com/username/UnixSysAdmin2023-Mastering-Shell-to-Cloud.git
  2. Access the respective lab folders to find the instructions and resources for each lab.
  3. Utilize the provided Google Sheet for learning definitions and answering questions.
  4. Explore the challenges directory to gain insights into troubleshooting and problem-solving techniques.
  5. Look at the solution if needed

Contribution Guidelines

Contributions to this repository are welcome! If you encounter additional challenges, have alternative solutions, or want to contribute to the Google Sheet, please submit a pull request. Let's collaborate and enhance our understanding of Unix system administration together.

Wishing you success in mastering Unix system administration and overcoming the challenges along the way! Especially to the SDSU CS Student :)

About

"UnixSysAdmin2023-Mastering-Shell-to-Cloud: Comprehensive repo for CS 470 course, covering Unix system administration, shell programming, networking, security, automation, and cloud orchestration."

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors