Skip to content

Commit

Permalink
Add staff trainings (0xcf#400)
Browse files Browse the repository at this point in the history
See 0xcf#400 for description
  • Loading branch information
64bitpandas authored Jan 22, 2022
1 parent d4cef35 commit 70a28c2
Show file tree
Hide file tree
Showing 10 changed files with 427 additions and 2 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,18 @@ The current iteration uses Jekyll to produce pages.

decal-web is built for [Jekyll](https://jekyllrb.com), a static site generator. View the [quick start guide](https://jekyllrb.com/docs/) for more information.

You will need Ruby 2 to build the site (it has been tested on Ruby2.7.4). If using Arch, [follow this guide](https://gist.github.com/jhass/8839655bb038e829fba1) to install it.
You will need Ruby 2 to build the site (it has been tested on Ruby2.7.4).
* On Ubuntu 20.04, Ruby can be installed using `sudo apt install ruby-full`.
* If using Arch, [follow this guide](https://gist.github.com/jhass/8839655bb038e829fba1) to install it.
* [ruby-install](https://github.com/postmodern/ruby-install) is a helpful script- you can run `ruby-install 2.7.4` if Ruby is on the wrong version in your package manager.

You may also need to install Bundler 2.2.25: `gem install bundler:2.2.25`

1. Install Jekyll
```bash
$ bundle install
```
1. Start your local Jekyll server. You can also use `make dev`.
1. Start your local Jekyll server. You can also use `make local-dev`.
```bash
$ bundle exec jekyll serve
```
Expand Down
Binary file added assets/images/labs/s1/ocf-supernova.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/labs/s1/ocf-waddles.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/labs/s2/ocf-puppet.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added assets/images/labs/s4/ocf-fork.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
120 changes: 120 additions & 0 deletions labs/s1.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,120 @@
---
title: Staff Training Lab 1 - Welcome to the OCF!
layout: lab
facilitator: Ben Cuan
nav_exclude: true
---

## Table of contents
{: .no_toc .text-delta }

1. TOC
{:toc}

---


## Introduction

<img src="../../assets/images/labs/s1/ocf-waddles.png" alt="ocf waddles" width="50%"/>

Welcome to OCF staff!

These staff training activities are meant to help you get familiarized with the inner workings of the OCF, and feel comfortable contributing to the OCF yourself (whether that be technically, administratively, or both)! All new, veteran, and aspiring staffers are welcome to participate in as much or as little as desired throughout the semester, but we encourage you to come every week even if it's just to hang out with us!

### What will we do in these staff trainings?
The purpose of these training labs are to cover the most useful aspects of OCF infrastructure and organization that staffers actively contribute to or interact with on a day-to-day basis. This includes:
* how to access and interact with important OCF services/servers like tsunami, supernova, puppet, webhosting, docs, ocf-web, HPC, etc.
* an overview of OCF hardware, and how to request shiny new stuff on the buysheet
* what committees are and how to get involved with them
* the RT system, and how to run staff hours
* common tools used in the OCF like Git, vim, and useful terminal commands
* kubernetes, if interest and time allows
* lots of excuses to meet other staffers and make new friends!

You **do not** need any prior experience in anything at all to participate. Concurrent enrollment in the [OCF DeCal](https://decal.ocf.berkeley.edu/) (either beginner or advanced track is ok) is encouraged for new staff.


### Getting Help
Even if you're feeling the slightest bit unsure about something, or if you're curious and want to learn more, don't hesitate to talk to other staff members! We're usually in the lab after-hours (around 8-10pm most days), or during scheduled [staff hours](https://www.ocf.berkeley.edu/staff-hours). If you can't make it to the lab during these times, feel free to post to the following Discord/Slack channels:
* #rebuild: technical and infrastructure-related discussion
* #administrivia: administrative discussion
* #decal-comm: discussion specific to decal and staff training content

### Who to Talk To
If you want to ask someone about something, or just want to say hi, here's a list of some veteran staff members and what they do. **If you'd like to add yourself to this list, make a PR to decal-web and/or ping @bencuan!**

General Managers (GMs): oversee the administrative side of the OCF, including BoD meetings. Ask them about hosting staff hours, contributing non-technically, and joining the Board of Directors!
* Ben Cuan (bencuan)
* Justin Zhang (jyxzhang)

Site Managers (SMs): oversee the technical side of the OCF, including the lab space. Ask them about OCF infrastructure, technical projects, and upcoming lab upgrades!
* Jonathan Zhang (rjz)
* Ethan Wu (etw)

Operations Managers (OMs): oversee the OCF's operations staff (opstaff), who run the front desk and many other lab operations, including technical and design projects.
* Amy Oh (amyoh)

Internal Committee (#internal-comm): manages staff events, socials, and meetings.
* Kian Sutarwala (kian)
* Bryan Li (bryli)

External Committee (#external-comm): manages industry, alumni, and club relations.
* Nikhil Ograin (ncograin)
* Andrei Dones (anddone)

Finance Committee (#finance-comm): manages the OCF budget, purchases, and funding from ABSA, STF, and other sources.
* Saurabh Narain (snarain)
* Raymond Huang (rayh)
* Nicholas Berberi (ncberberi)

DeCal Committee (#decal-comm): runs the Decal and staff workshops.
* Lance Mathias (lmathias)
* Laksith (laksith)
* Ben Cuan (bencuan)

## Task 1: Getting Started

If this is your first time at a staff meeting, we'll need to add you to staff so that you can access resources for contributing!

Before proceeding, **make sure you have an OCF account** (ocf.io/join). This is different from your CalNet account.

Once you have an OCF account, talk to someone with root access (such as the SM's or GM's) who will be able to add you to the staff role.

To verify that you have been added successfully, log in to any OCF desktop using your OCF account credentials. Then, open up a terminal (using ctrl+alt+T or by clicking the icon on the taskbar) and type in `ssh supernova`. It should look something like this:

<img src="../../assets/images/labs/s1/ocf-supernova.png" alt="ocf supernova" width="100%"/>

You can access supernova at any time on other machines (including your own) by typing in `ssh <YOUR_USERNAME>@supernova.ocf.io` on your terminal. If prompted for a password, it's ok if nothing shows up when you type- just hit enter after typing in your password and it will go through.

We'll explore what ssh actually does, as well as some cool things you can do on supernova, in next week's staff training!


## Task 2: Slide into our DM's

Outside of the lab, most of our communication happens over the OCF chat network, which consists of [Discord](ocf.io/discord), [Slack](ocf.io/slack), [IRC](ocf.io/irc), and [Matrix](ocf.io/matrix). All of these are bridged, meaning that sending a message in one platform sends it to all of the other platforms too, so pick your favorite one and click on its link to join!

Most staff are currently active on Discord, so if you don't have any prior preferences then we recommend you join it so you can reach other staff more easily through DM's.


### Discord Instructions

If you're joining on Discord, you must first verify your account (instructions on the #verify channel).

Once you're verified, send a message to the #introduce-yourself channel so we can get to know you a little better! Once you do so, you'll receive the newstaff and ocf roles.

You should then be able to add yourself to whatever topic-specific roles you desire (such as for committees or groups), so you can get pinged for any action happening in those areas. It's also recommended to turn notifications on for any channels of interest, as committees/groups usually have their own meeting times outside of general meetings that you won't want to miss.

### Slack Instructions

If you're joining Slack, you will need to create an account using your OCF account email ([email protected]). The confirmation email should then be forwarded to your berkeley.edu email address.

Once you join, you'll need to manually add the channels you're interested in. A good way to do so is click the "+" button when hovering over Channels, then sort by most members and go down the list from there.

### IRC/Matrix Instructions

Post on #rebuild if you run into any issues or have any questions about getting set up.

## Conclusion

That's about it for this week! This is the first time we're trying these staff training activities, so if you ever have any feedback or ideas on how to improve them, please [create an issue](https://github.com/0xcf/decal-web/issues) or [make a PR](https://github.com/0xcf/decal-web/pulls) to decal-web! The source files can be found in the [labs folder](https://github.com/0xcf/decal-web/tree/master/labs) and start with the 's' prefix.
91 changes: 91 additions & 0 deletions labs/s2.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
---
title: Staff Training Lab 2 - Hitchhikers Guide to the OCF Lab
layout: lab
facilitator: Ben Cuan
nav_exclude: true
---

## Table of contents
{: .no_toc .text-delta }

1. TOC
{:toc}

---


## Introduction

<img src="../../assets/images/labs/s2/ocf-puppet.png" alt="ocf puppet" width="50%"/>

Welcome back to the second week of staff training!

This time, we will take a whirlwind tour of some of the cool things we have around the lab, and get you comfortable working with them through the command line.

The exercises below are best when done after completing the [Shell Spelunking portion of Decal Lab b1](https://decal.ocf.berkeley.edu/labs/b1/#shell-spelunking). If you are not enrolled in the Decal and would like access to the Gradescope to save your answers, please ask a [facilitator](https://decal.ocf.berkeley.edu/staff/) to add you (at least one should be in the lab if you're here in person), or send a message in #decal-comm.

**You are encouraged (and, in some instances, practically required) to use all external resources at your disposal, including Google, [OCF documentation](new.ocf.io/docs), and other staff members, to complete any portion of this and future labs.** Doing so is not cheating, and you should keep using them for any contributions you make to the OCF.

## The OCF Servers

Most of our services reside in some form or another on physical hardware inside the OCF lab. **You can see a full list of servers at [ocf.io/servers](https://www.ocf.berkeley.edu/docs/staff/backend/servers/).**

Here's a quick terminology guide:
* **Physical Servers and Desktops**, including the NUC and Raspberry Pi, are bare-metal hardware that exists in the lab. Ask a GM/SM to give you a tour of the server room!
* **Hypervisors** are software that resides directly on the physical servers. They can manage and contain multiple virtual machines (see below).
* **Virtual Machines** are self-contained operating systems that can be used and connected to as if they were individual computers. Being able to run a large number of virtual machines on a single hypervisor is really useful for a variety of reasons (e.g. easier to maintain, more flexible, needs less physical space in the server room, and so on).

## RTFM! (Scavenger Hunt)

You will need [the OCF documentation](new.ocf.io/docs) to complete the following exercises. Try to get as far as you can, but don't be afraid to ask for help if you've been digging for a while and still can't find anything!

The following tasks will need to be completed on an OCF desktop, possibly SSH'ed into supernova (`ssh supernova` when logged into a desktop).

### Task 1
If you've been (or are) in the lab, you've probably seen the TV in the middle of the room. This TV is actually displaying output from an Intel NUC behind it (`tornado`), and you can connect to it and change what it's showing.

Figure out how to open a remote desktop connection to `tornado` from an OCF desktop, open up a new tab, and show a cute cat picture on the TV!

**Notes:**
* While you could theoretically do this with `ssh tornado`, this is not the intended solution.
* You are welcome to mess around on the TV after-hours, but please do not do this when the lab is open to the public!


### Task 2
One of the more popular services the OCF offers is free printing. We have a 200-page-per-semester quota to make sure we don't get bankrupted by toner purchases. However, there is a way to change this quota on an individual account level (this is often used when a print job fails and we need to refund the pages so they can try again).

Find a way to give yourself 200 additional pages this semester!

**Notes:**
* The unofficial policy for staff printing quotas is 'if you can figure out a way to give yourself unlimited pages, you are allowed unlimited pages'. That being said, do be reasonable with your newfound privilege, and if anyone asks you how to do it, redirect them here instead of giving them the answer :)
* If you gave yourself too many pages and are starting to feel guilty, as a bonus exercise you can try to figure out how to subtract pages from your account as well.

### Task 3
If you participate in staff hours, you may get representatives coming in to ask questions about their organization's status in the OCF system. Before helping them with anything sensitive (like changing their password or creating an account), we usually like to verify that they are actually who they say they are.

Suppose Justin Zhang (OCF username jyxzhang) comes into the lab and wants to set up webhosting for his club, Berkeley Legends. How can you check his status to ensure he is an official signatory of the organization?

**Notes:**
* There are multiple ways to do this (such as querying the username or querying the org name). All methods should have matching information, so it doesn't matter which one you use.
* If querying the org, you may need to try a few different queries since the listed name may not match commonly used names (such as 'CSM' vs 'Computer Science Mentors').

### Task 4
The OCF hosts open-source software mirrors-- if you ever downloaded a Linux distribution like Ubuntu, Arch, or Debian, there is a chance you were downloading it directly from OCF servers!

Let's say that you want to install Arch Linux on a new machine via the command line. The first step would be to download the disk image-- figure out how you can manually fetch it from the OCF mirrors.

**Notes:**
* You are looking for the latest `.iso` file. It may help to navigate to the mirror site through your browser before attempting to fetch it on the command line.
* The `wget` command will be useful.
* You don't actually need to download it if you don't want to, since the ISO is >800MB.
* i use arch btw

### Task 5
If you've messed around with your own computer, you've likely found out that it somewhere between 4 and 64GB of RAM. The typical server has far more. But how much exactly?

Find the server/hypervisor(s) with the largest amount of RAM. How much does it have?

**Notes:**
* One way to do this is to first find a way to see all of the server RAM usage, and deduce which ones likely have the most RAM installed. (hint: grafana)
* You may need to Google how to get the RAM usage in Linux.
* You may also need to SSH into the server before checking its RAM usage.
70 changes: 70 additions & 0 deletions labs/s3.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
---
title: Staff Training Lab 3 - Administrivia Time
layout: lab
facilitator: Ben Cuan
nav_exclude: true
---

## Table of contents
{: .no_toc .text-delta }

1. TOC
{:toc}

---


## Introduction

Welcome to the third week of staff training!

Last week, we poked around some of the technical infrastructure around the lab and found some cool scripts. This week, we'll poke around some of the tools we use to manage the OCF administratively!

Even if you plan on primarily contributing technically, it's still very important to figure out how to use our systems (to do things such as request purchases for your projects). And if you plan on contributing non-technically, this is all you really need to know to start helping out!

## Spending Money

The OCF receives funding from three main sources:
* The [Student Technology Fund](https://techfund.berkeley.edu/), which allows us to purchase new servers and other hardware,
* The [ASUC](https://lead.berkeley.edu/manage-your-organization/fund-your-org/), whos funding keeps our lab space open to students (through opstaff stipends, printing supplies, etc.),
* And alumni, who graciously donate to cover costs that the first two sources do not.

If you have more questions about how we manage our money and/or would like to be directly involved in doing so, the Finance Committee (#finance-comm on Discord/Slack/IRC) is the perfect place for you! Please ask them about how you can contribute.

### Task 1

We are constantly looking for ways to spice up the lab space! Your task is to find cool posters, stickers, decorations, or anything else you can think of that we could put in the lab space to make it more interesting. (As an example, one thing we currently have up in the lab is this [vim poster](https://medium.com/usevim/vim-cheat-sheet-poster-2-0-2c5cba12f2a6).)

Once you found something awesome, go to [ocf.io/buy](https://ocf.io/buy) and fill out the form to add it to the buysheet!

All buysheet submissions are recorded in [ocf.io/buysheet](https://ocf.io/buysheet) and are put up to an approval vote during the weekly Board of Directors (BoD) meeting, which takes place from 7-8pm on Wednesdays. If you'd like to participate in the process of approving purchases, all you need to do is show up then!

## Board of Directors

In addition to reviewing buysheet, the Board of Directors serves as the general decision-making body of the OCF. In the past, BoD has discussed and planned for things such as:
* Amending the constitution and bylaws
* Voting on future GM's, SM's and committee heads
* Designing/planning/purchasing new servers

In order to join BoD and cast votes, all you need to do is attend 2 consecutive meetings. Once appointed to BoD, you will stay on to the end of the semester unless you miss 2 or more consecutive meetings (after which you can just be re-appointed).

During BoD, we take minutes (notes) on what was discussed for future reference. Minutes are publicly available; in fact, you can view them from as far back as 1989 at [ocf.io/bod/minutes](https://ocf.io/bod/minutes)!

If you attend BoD, you can volunteer to help take them and record a small part of OCF history by SSHing into supernova and using the command `minutes bod`.

### Task 2

Find some minutes that were taken in the year you were born (or, 1989 if you are older than the OCF). Find out what kinds of things were going on that year (and, as a bonus, try to figure out where the OCF was located on campus at that time-- it's moved around a lot).

## RT

As you might imagine, the OCF gets a lot of emails (users asking for help, clubs wanting to make a website, companies giving infosessions...) and it can get pretty hard to keep track of them all. As a solution, the OCF uses [Request Tracker (RT)][rt.ocf.io]. Here, incoming emails and requests are split up into queues. Here are a few:
* **bod** contains topics that staff would like to bring up during BoD meetings. You are welcome to make a new ticket in this queue if there's something you want to discuss.
* **devnull** mostly contains spam, advertisements, and other low-priority emails. You can safely ignore this queue.
* **help** typically contains questions from users. Most of our time on RT is on responding to these tickets.

Responding to RT tickets is a fantastic way to directly interact and support OCF users, as well as get hands-on experience doing things like setting up application hosting, creating new email addresses, and requesting domains from the university hostmaster. The best way to get started is to shadow a veteran staffer during their [staff hours](https://ocf.io/staff-hours)-- just ask them and you can join! You'll also learn how to add your own staff hours next week.

### Task 3

In one of the queues not mentioned above, there exists a ticket called "Toy RT Ticket". Find it, and reply to it with an out-of-context movie quote (or, honestly, anything you want).
Loading

0 comments on commit 70a28c2

Please sign in to comment.