|JP Vossen on 23 Oct 2011 11:28:47 -0700|
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
|Re: [PLUG] ideas for class material|
Date: Sat, 22 Oct 2011 19:24:09 -0400 From: Andrew Craig<email@example.com> Subject: [PLUG] ideas for class material
I am currently in a Computer Technology program and have an upcoming Linux III class. The professor is open to ideas for curriculum.
I want to do stuff, not write about it, excluding any documentation of course. I was thinking of the following ideas - fix broken stuff - break working stuff - ssh stuff - scripts - hacking - build an arch or BSD system - build up workstations and / or server
- Try different Rescue and other LiveCDs - Try recovering deleted data from a "bad" hard drive Create a loop mount volume Damage it Give everyone copies See what they can recoverAll of the above are good, though I can't say I'd suggest building BSD for a Linux class--they are quite different things. :-)
And I'm shocked that Rich already replied to this and didn't say what I thought he'd say, which is--build a Gentoo box! Or "Linux from scratch" or maybe even Slackware... You will learn more about the guts of Linux using any of those than you will using Debian, Ubuntu, Fedora, CentOS, etc.
"Build a box" is boring though. Build it for what? How about building a general "services" server for a small business or branch office? This is a single sever (also a single point of failure) that does just about everything:
Linux software RAID1 or RAID5 DHCP Internal DNS Internal email SMTP (authenticated?) IMAP (authenticated?) (external email relay config for extra credit) Samba (SMB/CIFS, WINS) for Windows clients & groups and permissions NFS for Linux clients & groups and permissions SSH (which facilitates tons of stuff, like remote admin sshfs, rsync, and much more) Local client backup (BackupPC, Duplicity, Backula, Amanda, etc.) Test a restore Off-site server backup (Box Backup, rsync.net, some cloud) Test a restore LAMP for Intranet Some CMS/wiki (Drupal or Mediawiki) MySQL database Write server docs in the CMS/wiki Print server (CUPS) syslog (rsyslog, syslog-ng) log aggregator LogCheck, swatch or other log monitoring Monit, Cacti, OpenNMS or similar network monitoring Set up cron jobs for something e.g. use wget to mirror a web site (get permission!) Caching proxy server for Internet surfing Write a script to run from cron to summarize logs Revision control server Subversion Bazaar Web GUI for either/both etckeeper or similar Write an acceptance test plan for all of the aboveThis is a pretty big project if you've never done it before. It could be broken up, or limited as needed. It also doesn't require too much in the way of security (firewall, separating internal and external services) or scripting, both of which are critical. So maybe:
Firewall config for services server (arguably overkill) VPN to HQ office? Find some simple tasks to automate with scriptsPick a virtualization solution everyone can live with and build the server to spec in that so you can "hand in" the machines for testing. Yes, I know that doing software RAID in a VM is silly. Do it anyway for the experience.
The no-cost VMware Player runs on Windows or Linux and would work. OTOH, since this server is a single point of failure, building it to run in a KVM or similar VM that runs on a minimal "headless" Linux host makes DR (disaster recovery) or hardware swaps almost trivial. Or maybe build in free Amazon EC2 micro instances (http://aws.amazon.com/free/what-is-aws-free-usage-tier/)? That might already automate too much of the above though.
Having said all of that, shell scripting is easily a whole course by itself but is often overlooked, especially by those with a Windows/GUI point-and-click perspective. (That may be changing with Win8 that can be CLI/headless. Only took 'em just under 20 years to see the light.) _Learning the bash Shell_ would be a good textbook, and I have a ton of other resources listed in http://www.bashcookbook.com/bashinfo. I also have a few presos in http://www.phillylinux.org/talks.html.
This is all very system administration focused, and is arguably not "Linux" at all, since Linux is really just a kernel. But to really focus on Linux then means mostly kernel guts, configs, compiling, etc. While that's interesting, it's not similar to the list at the top, and you probably should walk (& build some servers) before you try brain surgery (custom kernels). IMO.
Hope this is useful, JP ----------------------------|:::======|------------------------------- JP Vossen, CISSP |:::======| http://bashcookbook.com/ My Account, My Opinions |=========| http://www.jpsdomain.org/ ----------------------------|=========|------------------------------- "Microsoft Tax" = the additional hardware & yearly fees for the add-on software required to protect Windows from its own poorly designed and implemented self, while the overhead incidentally flattens Moore's Law. ___________________________________________________________________________ Philadelphia Linux Users Group -- http://www.phillylinux.org Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce General Discussion -- http://lists.phillylinux.org/mailman/listinfo/plug