Summer term 2019
Instructor: Steve VanDevender, stevev@cs.uoregon.edu
CRN: 40859
Lectures: 1500-1550 MTWR, 121 MCK
Office hours: by appointment, 123 Computing Center (email or call 6-1804)
The Accessible Education Center is requesting a peer notetaker for this course. You can earn $25 per credit hour for uploading the notes that you're already taking. If you take clear and comprehensive notes, please go to aec.uoregon.edu/peer-notetaking to sign up to be a notetaker. You may also enter the CRNs of other classes you are taking to see if there are additional notetaking opportunities.
Virtual machine deployment in Amazon AWS, configuration management using Puppet, and version control using Git.
Stuff you're going to need:
Virtual lab assignments for this term. Please let me know as soon as possible if you have a different team member preference. You are also encouraged to choose a fun team name.
Team and virtual lab setup:
Once you have a team of 2-3 people together, each of you should send this information to me at stevev@cs.uoregon.edu:
Once I have this information, I will be contacting you with:
Once you have this information, make sure you can:
We'll also spend some time in class next week learning how to use Amazon EC2 to create and manage your virtual machine instances.
Please consider joining the Mailman-managed class mailing list.
This course is an introduction to the discipline of system administration -- how to operate and maintain computer services for use by other people. Major topics will include system management (particularly with virtual machine hosting), configuration management and automation; communicating and working with other system administrators and your user community; security; system reliabilty; and ethics.
After taking this course, you should understand:
I do not have a required textbook for this course. I have previously used Principles of Network and System Administration by Mark Burgess. If you like learning by reading, I recommend this book as a good general introductory textbook.
You may find these other books and online resources to be of interest for further reference and background during the course:
The assignments in this course will all involve working with a small group (2 or 3 people) to install, configure, and maintain UNIX-based virtual machines. There will be five weekly assignments, the first handed out at the beginning of the second week of class, and a two-week final project of your group's choice (subject to instructor approval). Assignments will involve both doing work on your virtual machines and providing documentation of that work, and may also involve my inspection of the state of your group's machines.
General descriptions of the weekly assignments are included in the course schedule below. Detailed specifications for the assignments will be provided when they are handed out. Example assignments from last year's course are linked to in the schedule below; note, however, that these are subject to change.
Your entire grade for this course will be based on assignments and some in-class presentations by your group. Five weekly assignments will each be worth 10 points and the two-week final project worth 30 points. Note: to receive credit for a regular assignment or the final project, you must make at least one non-trivial commit for it to one of the Git repositories for your group.
There will also be four informal in-class presentations related to the assignments each worth 5 points. The presentations don't have to be elaborate or fancy -- the main goal is simply to share your experiences on the assignments with other class members. You don't have to bring fancy visual aids or be incredibly articulate. Just be able to describe the most interesting aspects of the assignment and be able to answer reasonable questions from me or other class members.
Your final grade will be determined from the 100-point total.
Since the assignments involve a progression of tasks you will not be able to miss assignments, and if you do poorly on an assignment you may need to rework it before starting the next assignment.
Late policy: I will deduct two points for each day that an assignment is late, i.e. if I receive an assignment within 24 hours after it was originally due, two points will be deducted; between 24 and 48 hours after the original due date/time, four points will be deducted, etc. If you have extenuating circumstances and make prior arrangements with me before the original due date/time I may consider exceptions. Again, note that because later assignments depend on having completed prior assignments you cannot skip assignments.
CIS 313 is a prerequisite for this class. If you have not taken CIS 313 but would like to take the class please contact me.
I also strongly recommend that you be familiar with the UNIX command-line environment and basic UNIX operating system concepts such as the filesystem, processes and virtual memory management, and user accounts; and with basic TCP/IP networking concepts like network services and addressing. Some review will be provided and advanced details will be discussed in lectures, but if you haven't used UNIX systems on TCP/IP networks before you are probably not ready for this class.
Sometimes in the past this class has filled up early in summer term registration. If it should fill up before you register, pretty much all you can do is check DuckWeb frequently to see if anyone drops the class. You can add the class via DuckWeb without petitioning through the first week if spaces become available.
I put my lecture notes online in http://pages.uoregon.edu/stevev/cis399/notes so you can refer to them outside of class.
Week, Lecture dates | Topics | Assignment |
---|---|---|
Week 1 June 24-27 | Introduction and review: What is system administration?, course outline and expectations, group and virtual lab setup, virtual machine operating systems. | |
Week 2 July 1-3 | Virtual machine deployment, exploring your virtual machine environment | Create and explore your group's set of virtual machines. |
Week 3 July 8-11 | Puppet configuration management, Git | Set up Puppet on AWS instances, integrate with Git, make a simple Puppet module. |
Week 4 July 15-18 | Service reliability, replication, load-balancing | Install and configure web service using Puppet, create a basic load-balancing configuration. |
Week 5 July 22-25 | User account management, policies and ethics | Create user accounts for everyone in the class on your system. |
Week 6 July 29-August 1 | Monitoring, measurement, and notification | Create and test monitoring and notifications for your instances |
Week 7 August 5-8 | Some miscellaneous topics | Admin project of your choice (as approved by instructor), due at final |
Week 8 August 12-14 | Final project presentations, the future of system administration |