-
Notifications
You must be signed in to change notification settings - Fork 20
Sysadmin
Congratulations! You're now (also) a sysadmin!
Sysadmins (system administrators) run computers and servers. Broadly speaking, your tasks are:
- Buy / sell hardware
- Install / update software (operating systems, applications, libraries)
- Server upkeep (keep the website running)
- Account management (add / remove users)
- Email list management (add / remove users from groups)
- Documentation
In the past we used our own server infrastructure, but currently the OCF hosts our website(s). In particular, we manage three websites:
- https://hkn.eecs.berkeley.edu (the HKN website)
- https://prot-hkn.eecs.berkeley.edu (the HKN prot wiki)
- https://hivemind.eecs.berkeley.edu (an EECS lab computer status page)
We also have control of two domains for testing:
- https://hkn-eecs-berkeley-edu.dev-apphost.ocf.berkeley.edu (the Rails website)
- https://dev-hkn-eecs-berkeley-edu.dev-apphost.ocf.berkeley.edu (the Django website)
The OCF has excellent staff documentation for their operations. Historically, some compserv officers have served as OCF staff, so we have close relations with the OCF.
The OCF handles server upkeep for our website. They install security updates, upgrade hardware, run backups (we make database backups as well), and keep the servers running, so we only have to make sure our website keeps running.
Currently (Fall 2018), we only administer one computer, code-named bridge, the Windows desktop machine in the Soda office. bridge was generously donated to us by Aaron Wong, an alumni of HKN.
For bridge, you need to keep Windows updated on security patches, and install any software requested by officers / members (bridge committee, in particular).
The OCF runs on Debian Linux, a distribution of Linux focused on stability (never crashing). It is developed by over a thousand people distributed across the world. Several other derivative distributions depend on its packages, notably Ubuntu and Kali Linux (for security researchers).
For experience with Linux, I recommend installing Debian, Ubuntu, or Arch Linux on your computer and using it for CS work. If you are (wisely) afraid of messing up your system, install it in a virtual machine, using something like Virtualbox.
systemd
, short for 'system daemon', is the system and service manager on Debian. It is the first program loaded on startup, and it runs all other programs. Notably, it runs journald (logs), logind (login), networkd (networking), the shell (text-based, like bash, or graphical shells like GNOME / KDE / XFCE), and other background processes (services).
Most systemd
control happens through systemctl
, most often enabling / disabling / starting / stopping services:
sudo systemctl enable mysqld
The logs (debugging output) can be accessed through journalctl
:
journalctl -e
The website is run as a systemd service unit, so that it is started on startup and automatically rebooted on crashes.
For more information, see the [Debian handbook on Unix services] (https://www.debian.org/doc/manuals/debian-handbook/unix-services.en.html#sect.systemd).
Homepage
Guide
- Basics
- Recommended Onboarding Pacing Schedule
- Comprehensive Setup (Forking, Cloning, and Dev Environment)
- Setup
- Django Development Tutorial
- Other Software Engineering Useful Topics
- Contribution Procedure
- Layout
- Deployment
- Server Administration
- Git Guide
- Style
- FAQ
- For Maintainers
Rails - unmaintained - leftover to serve as source of inspiration for other wiki pages