<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.csclub.uwaterloo.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=S23adhik</id>
	<title>CSCWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.csclub.uwaterloo.ca/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=S23adhik"/>
	<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/Special:Contributions/S23adhik"/>
	<updated>2026-04-07T10:22:43Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Infrastructure_Renewal_Plan&amp;diff=5481</id>
		<title>Infrastructure Renewal Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Infrastructure_Renewal_Plan&amp;diff=5481"/>
		<updated>2025-12-28T07:12:04Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Will slowly update this page.&lt;br /&gt;
&lt;br /&gt;
Plan is to move a lot of the less-essential services to Proxmox to allow us to make them a bit easier to backup, and manage. Also getting rid of old storage, and servers.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Two new servers currently have been bought; Teriyaki, and Tahini, will buy more ram for them once prices go down.&lt;br /&gt;
&lt;br /&gt;
Will add Sorbitol to proxmox general-use cluster to act as backup, and phase out citric-acid ASAP&lt;br /&gt;
&lt;br /&gt;
Will add in 1 more Dell r730 to cluster&lt;br /&gt;
&lt;br /&gt;
Will replace Cobalamin with an r730.&lt;br /&gt;
&lt;br /&gt;
Will put in 2 more r730&#039;s into MC 3015 to replace xylitol, and all other Dell r815.&lt;br /&gt;
&lt;br /&gt;
Then install 2 of the 3.2tb ssds onto the proxmox general use cluster to act as storage for all of the syscom/club containers.&lt;br /&gt;
&lt;br /&gt;
Use the other 2 ssds as a /scratch replacement so we can decommision corn-syrup, carbonated-water, yerba-mate, riboflavin, &lt;br /&gt;
&lt;br /&gt;
In addition we&#039;re planning to go full-flash.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5479</id>
		<title>SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5479"/>
		<updated>2025-12-09T00:35:15Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== GlobalSign ==&lt;br /&gt;
&lt;br /&gt;
The CSC currently has an SSL Certificate from GlobalSign for *.csclub.uwaterloo.ca provided at no cost to us through IST.  GlobalSign likes to take a long time to respond to certificate signing requests (CSR) for wildcard certs, so our CSR really needs to be handed off to IST at least 2 weeks in advance. You can do it sooner – the certificate expiry date will be the old expiry date + 1 year (+ a bonus )  Having an invalid cert for any length of time leads to terrible breakage, followed by terrible workarounds and prolonged problems.&lt;br /&gt;
&lt;br /&gt;
When the certificate is due to expire in a month or two, syscom should (but apparently doesn&#039;t always) get an email notification. This will include a renewal link. Otherwise, use the [https://uwaterloo.ca/information-systems-technology/about/organizational-structure/information-security-services/certificate-authority/globalsign-signed-x5093-certificates/self-service-globalsign-ssl-certificates IST-CA self service system]. Please keep a copy of the key, CSR and (once issued) certificate in &amp;lt;tt&amp;gt;/users/sysadmin/certs&amp;lt;/tt&amp;gt;. The OpenSSL examples linked there are good to generate a 2048-bit RSA key and a corresponding CSR. It&#039;s probably a good idea to change the private key (as it&#039;s not that much effort anyways). Just sure your CSR is for &amp;lt;tt&amp;gt;*.csclub.uwaterloo.ca&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
At the self-service portal, these options worked in 2013. If you need IST assistance, [mailto:ist-ca@uwaterloo.ca ist-ca@uwaterloo.ca] is the email address you should contact.&lt;br /&gt;
  Products: OrganizationSSL&lt;br /&gt;
  SSL Certificate Type: Wildcard SSL Certificate&lt;br /&gt;
  Validity Period: 1 year&lt;br /&gt;
  Are you switching from a Competitor? No, I am not switching&lt;br /&gt;
  Are you renewing this Certificate? Yes (paste current certificate)&lt;br /&gt;
  30-day bonus: Yes (why not?)&lt;br /&gt;
  Add specific Subject Alternative Names (SANs): No (*.csclub.uwaterloo.ca automatically adds csclub.uwaterloo.ca as a SAN)&lt;br /&gt;
  Enter Certificate Signing Request (CSR): Yes (paste CSR)&lt;br /&gt;
  Contact Information:&lt;br /&gt;
    First Name: Computer Science Club&lt;br /&gt;
    Last Name: Systems Committee&lt;br /&gt;
    Telephone: +1 519 888 4567 x33870&lt;br /&gt;
    Email Address: syscom@csclub.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
=== Helpful links ===&lt;br /&gt;
* [https://support.globalsign.com/ssl/ssl-certificates-installation/generate-csr-openssl How to generate a new CSR and private key]&lt;br /&gt;
* [https://uwaterloo.atlassian.net/wiki/spaces/ISTKB/pages/262013183/How+to+obtain+a+new+GlobalSign+certificate+or+renew+an+existing+one How to obtain a new GlobalSign certificate or renew an existing one]&lt;br /&gt;
* [https://system.globalsign.com/bm/public/certificate/poporder.do?domain=PAR12271n5w6s27pvg8d92v4150t GlobalSign UWaterloo self-service page]&lt;br /&gt;
* [https://support.globalsign.com/ca-certificates/intermediate-certificates/organizationssl-intermediate-certificates GlobalSign intermediate certificate] (needed to create a certificate chain; see below)&lt;br /&gt;
&lt;br /&gt;
=== OpenSSL cheat sheet ===&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Generate a new CSR and private key (do this in a new directory):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -out csclub.uwaterloo.ca.csr -new -newkey rsa:2048 -keyout csclub.uwaterloo.ca.key -nodes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Enter the following information at the prompts:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Country Name (2 letter code) [AU]:CA&lt;br /&gt;
State or Province Name (full name) [Some-State]:Ontario&lt;br /&gt;
Locality Name (eg, city) []:Waterloo&lt;br /&gt;
Organization Name (eg, company) [Internet Widgits Pty Ltd]:University of Waterloo&lt;br /&gt;
Organizational Unit Name (eg, section) []:Computer Science Club&lt;br /&gt;
Common Name (e.g. server FQDN or YOUR name) []:*.csclub.uwaterloo.ca&lt;br /&gt;
Email Address []:systems-committee@csclub.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
Please enter the following &#039;extra&#039; attributes&lt;br /&gt;
to be sent with your certificate request&lt;br /&gt;
A challenge password []:&lt;br /&gt;
An optional company name []:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
View the information inside a CSR:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl req -noout -text -in csclub.uwaterloo.ca.csr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
View the information inside a private key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl pkey -noout -text -in csclub.uwaterloo.ca.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
View information inside a certificate:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
openssl x509 -noout -text -in csclub.uwaterloo.ca.crt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== csclub.cloud ===&lt;br /&gt;
Once a year, someone from IST will ask us to create a temporary TXT record for csclub.cloud to prove to GlobalSign that we own it. This must be created at the &amp;lt;b&amp;gt;root&amp;lt;/b&amp;gt; of the domain. Since this zone is managed dynamically (via the acme.sh script on biloba, see below), we need to freeze the domain and update /var/lib/bind/db.csclub.cloud directly.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re in the correct server (not Biloba). Here are the steps:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;rndc freeze csclub.cloud&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Open /var/lib/bind/db.csclub.cloud and add a new TXT record. It&#039;ll look something like&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
TXT &amp;quot;_globalsign-domain-verification=blablabla&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
In the same file, make sure to also update the SOA serial number. It should generally be YYYYMMDDNN where NN is a monotonically increasing counter (YYYYMMDD is the current date).&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;rndc reload&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Run a DNS query to make sure you can see the TXT record:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dig -t txt @dns1 csclub.cloud&lt;br /&gt;
dig -t txt @dns2 csclub.cloud&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Email back the person from IST and let them know that we created the TXT record.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&lt;br /&gt;
Once the certificate has been renewed, delete the TXT record, update the SOA serial number, and run &amp;lt;code&amp;gt;rndc reload&amp;lt;/code&amp;gt;.&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;rndc thaw csclub.cloud&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Certificate Files ==&lt;br /&gt;
Let&#039;s say you obtain a new certificate for *.csclub.uwaterloo.ca. Here are the files which should be stored in the certs folder:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csclub.uwaterloo.ca.key: private key created by openssl&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csclub.uwaterloo.ca.csr: certificate signing request created by openssl&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;order: order number from GlobalSign&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csclub.uwaterloo.ca.crt: certificate created by GlobalSign&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;globalsign-intermediate.crt: intermediate certificate from GlobalSign, obtainable from [https://support.globalsign.com/ca-certificates/intermediate-certificates/organizationssl-intermediate-certificates here]. As of this writing, we use the &amp;quot;OrganizationSSL SHA-256 R3 Intermediate Certificate&amp;quot;. Just click the &amp;quot;View in Base64&amp;quot; button and copy the contents.&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;There is an alternative way to get the intermediate certificate: if you run &amp;lt;code&amp;gt;openssl x509 -noout -text -in csclub.uwaterloo.ca.crt&amp;lt;/code&amp;gt;, under X509v3 extensions &amp;gt; Authority Information Access, there should be a field called &amp;quot;CA Issuers&amp;quot; which has a URL which looks like http://secure.globalsign.com/cacert/gsrsaovsslca2018.crt. You can download that file and convert it to PEM:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget https://secure.globalsign.com/cacert/gsrsaovsslca2018.crt&lt;br /&gt;
openssl x509 -inform der -in gsrsaovsslca2018.crt -out globalsign-intermediate.crt&lt;br /&gt;
rm gsrsaovsslca2018.crt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csclub.uwaterloo.ca.chain: create this with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat csclub.uwaterloo.ca.crt globalsign-intermediate.crt &amp;gt; csclub.uwaterloo.ca.chain&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;csclub.uwaterloo.ca.pem: create this with the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat csclub.uwaterloo.ca.key csclub.uwaterloo.ca.chain &amp;gt; csclub.uwaterloo.ca.pem&lt;br /&gt;
chmod 600 csclub.uwaterloo.ca.pem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Certificate Locations ==&lt;br /&gt;
&lt;br /&gt;
Keep a copy of newly generated certificates in /users/sysadmin/certs.&lt;br /&gt;
&lt;br /&gt;
A list of places you&#039;ll need to put the new certificate to keep our services running. Private key (if applicable) should be kept next to the certificate with the extension .key.&lt;br /&gt;
&lt;br /&gt;
* auth1:/etc/ssl/private/csclub-wildcard.crt (for slapd, make sure to &amp;lt;code&amp;gt;sudo service slapd restart&amp;lt;/code&amp;gt;)&lt;br /&gt;
* auth2:/etc/ssl/private/csclub-wildcard.crt (for slapd, make sure to &amp;lt;code&amp;gt;sudo service slapd restart&amp;lt;/code&amp;gt;)&lt;br /&gt;
* phosphoric-acid:/etc/ssl/private/csclub-wildcard-chain.crt (for ceod)&lt;br /&gt;
* coffee:/etc/ssl/private/csclub.uwaterloo.ca (for PostgreSQL and MariaDB)&lt;br /&gt;
* caffeine:/etc/ssl/private/csclub-wildcard.crt (for Apache)&lt;br /&gt;
* mailman:/etc/ssl/private/csclub-wildcard-chain.crt (for Apache)&lt;br /&gt;
* prometheus:/etc/ssl/private/csclub-wildcard-chain.crt (for Apache)&lt;br /&gt;
* potassium-benzoate:/etc/ssl/private/csclub-wildcard.crt (for nginx)&lt;br /&gt;
* mattermost:/etc/ssl/private/csclub-wildcard.crt (for nginx)&lt;br /&gt;
* chat:/etc/ssl/private/csclub-wildcard-chain.crt (for nginx)&lt;br /&gt;
* chamomile:/etc/ssl/private/cloud.csclub.uwaterloo.ca.chain.crt, /etc/ssl/private/csclub.cloud.chain, /etc/ssl/private/csclub.uwaterloo.ca.chain (for nginx)&lt;br /&gt;
* nextcloud (nspawn container inside guayusa): /etc/ssl/private/csclub.uwaterloo.ca.chain (for nginx)&lt;br /&gt;
* keycloak: /opt/keycloak/ssl (you can figure out the rest)&lt;br /&gt;
* &amp;lt;s&amp;gt;mail:/etc/ssl/private/csclub-wildcard.crt (for Apache, Postfix and Dovecot)&amp;lt;/s&amp;gt; (UPDATE: we use certbot now for these)&lt;br /&gt;
* &amp;lt;s&amp;gt;bigbluebutton:/etc/nginx/ssl/csclub-wildcard-chain.crt (podman container on xylitol)&amp;lt;/s&amp;gt; (Also certbot)&lt;br /&gt;
* &amp;lt;s&amp;gt;load-balancer-0(1|2):/etc/ssl/private/csclub.uwaterloo.ca (for haproxy)&amp;lt;/s&amp;gt; [Down since 2020]&lt;br /&gt;
&lt;br /&gt;
Some services (e.g. Dovecot, Postfix) prefer to have the certificate chain in one file. Concatenate the appropriate intermediate root to the end of the certificate and store this as csclub-wildcard-chain.crt.&lt;br /&gt;
&lt;br /&gt;
=== More certificate locations ===&lt;br /&gt;
We have some SSL certificates which are not used by web servers, but still need to be renewed eventually.&lt;br /&gt;
&lt;br /&gt;
==== Prometheus node exporter ====&lt;br /&gt;
All of our Prometheus node exporters are using mTLS via stunnel (every bare-metal host, as well as caffeine, coffee and mail, is running this exporter). The certificates (both client and server) are set to expire in &amp;lt;b&amp;gt;September 2031&amp;lt;/b&amp;gt;; before then, create new keypairs in /opt/prometheus/tls, and deploy the new server.crt, node.crt and node.key to /etc/stunnel/tls on all machines. Restart prometheus and all of the node exporters.&lt;br /&gt;
&lt;br /&gt;
==== ADFS ====&lt;br /&gt;
See [[ADFS]]. When the university&#039;s IdP certificate expires (&amp;lt;b&amp;gt;October 2025&amp;lt;/b&amp;gt;), we can just download a new one and restart Apache; when our own certificate expires (&amp;lt;b&amp;gt;July 2031&amp;lt;/b&amp;gt;), we need to submit a new form to IST (please do this &amp;lt;i&amp;gt;before&amp;lt;/i&amp;gt; the cert expires).&lt;br /&gt;
&lt;br /&gt;
==== Keycloak ====&lt;br /&gt;
See [[Keycloak]]. When the saml-passthrough certificate expires (&amp;lt;b&amp;gt;January 2032&amp;lt;/b&amp;gt;), you need to create a new keypair in /srv/saml-passthrough on caffeine, and upload the new certificate into the Keycloak UI (IdP settings). When the Keycloak SP certificate expires (&amp;lt;b&amp;gt;December 2031&amp;lt;/b&amp;gt;), make sure to create a new keypair and upload it to the Keycloak UI (Realm Settings).&lt;br /&gt;
&lt;br /&gt;
== letsencrypt ==&lt;br /&gt;
&lt;br /&gt;
We support letsencrypt for our virtual hosts with custom domains. We use the &amp;lt;tt&amp;gt;cerbot&amp;lt;/tt&amp;gt; from debian repositories with a configuration file at &amp;lt;tt&amp;gt;/etc/letsencrypt/cli.ini&amp;lt;/tt&amp;gt;, and a systemd timer to handle renewals.&lt;br /&gt;
&lt;br /&gt;
The setup for a new domain is:&lt;br /&gt;
&lt;br /&gt;
# Become &amp;lt;tt&amp;gt;certbot&amp;lt;/tt&amp;gt; on caffine with &amp;lt;tt&amp;gt;sudo -u certbot bash&amp;lt;/tt&amp;gt; or similar.&lt;br /&gt;
# Run &amp;lt;tt&amp;gt;certbot certonly -c /etc/letsencrypt/cli.ini -d DOMAIN --logs-dir /tmp&amp;lt;/tt&amp;gt;. The logs-dir isn&#039;t important and is only needed for troubleshooting.&lt;br /&gt;
# Set up the Apache site configuration using the example below. (apache config is in /etc/apache2) Note the permanent redirect to https.&lt;br /&gt;
# Make sure to commit your changes when you&#039;re done.&lt;br /&gt;
# Reloading apache config is &amp;lt;tt&amp;gt;sudo systemctl reload apache2&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
     ServerName example.com&lt;br /&gt;
     ServerAlias *.example.com&lt;br /&gt;
     ServerAdmin example@csclub.uwaterloo.ca&lt;br /&gt;
 &lt;br /&gt;
     #DocumentRoot /users/example/www/&lt;br /&gt;
     Redirect permanent / https://example.com/&lt;br /&gt;
 &lt;br /&gt;
     ErrorLog /var/log/apache2/example-error.log&lt;br /&gt;
     CustomLog /var/log/apache2/example-access.log combined&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
 &amp;lt;VirtualHost csclub:443&amp;gt;&lt;br /&gt;
     SSLEngine on&lt;br /&gt;
     SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem&lt;br /&gt;
     SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem&lt;br /&gt;
     SSLStrictSNIVHostCheck on&lt;br /&gt;
 &lt;br /&gt;
     ServerName example.com&lt;br /&gt;
     ServerAlias *.example.com&lt;br /&gt;
     ServerAdmin example@csclub.uwaterloo.ca&lt;br /&gt;
 &lt;br /&gt;
     DocumentRoot /users/example/www&lt;br /&gt;
 &lt;br /&gt;
     ErrorLog /var/log/apache2/example-error.log&lt;br /&gt;
     CustomLog /var/log/apache2/example-access.log combined&lt;br /&gt;
 &amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== acme.sh ==&lt;br /&gt;
We are using [https://github.com/acmesh-official/acme.sh acme.sh] for provisioning SSL certificates for some of our *.csclub.cloud domains. It is currently set up under /root/.acme.sh on biloba.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;: acme.sh has a cron job which automatically renews certificates before they expire and reloads NGINX, so you do not have to do anything after issuing and installing a certificate (i.e. &amp;quot;set-and-forget&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== How to add a new SSL cert for a custom domain on CSC cloud ===&lt;br /&gt;
Note: you do not need to acquire a new cert if the requested domain is directly on csclub.cloud, e.g. app1.csclub.cloud. We can re-use our wildcard cert on csclub.cloud for that. However, if a user requests a multi-level domain on csclub.cloud, or a domain hosted on an external registrar, then you will need to create a new cert.&lt;br /&gt;
&lt;br /&gt;
Let&#039;s say user &amp;lt;code&amp;gt;ctdalek&amp;lt;/code&amp;gt; wants &amp;lt;code&amp;gt;mydomain.com&amp;lt;/code&amp;gt; to point to a VM on CSC cloud.&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
TLDR:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Obtain the cert.&lt;br /&gt;
# If a subdomain was also requested, pass the -d option multiple times, e.g.&lt;br /&gt;
# `-d mydomain.com -d sub.mydomain.com`. Make sure the &amp;quot;main&amp;quot; domain is specified first.&lt;br /&gt;
acme.sh --issue -d mydomain.com -w /var/www&lt;br /&gt;
&lt;br /&gt;
# Install the cert.&lt;br /&gt;
# If a subdomain was also requested, only specify the &amp;quot;main&amp;quot; domain.&lt;br /&gt;
acme.sh --install-cert -d mydomain.com \&lt;br /&gt;
    --key-file /etc/nginx/ceod/member-ssl/mydomain.com.key \&lt;br /&gt;
    --fullchain-file /etc/nginx/ceod/member-ssl/mydomain.com.chain \&lt;br /&gt;
    --reloadcmd &amp;quot;/root/bin/reload-nginx.sh&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# Create a vhost file.&lt;br /&gt;
# Look at the other files in the same directory for inspiration.&lt;br /&gt;
# Make sure the file starts with the username and an underscore, e.g. &amp;quot;ctdalek_&amp;quot;,&lt;br /&gt;
# because this is how ceod keeps track of the vhosts.&lt;br /&gt;
# Make sure to set the custom domain name(s) and paths to the SSL key/cert.&lt;br /&gt;
vim /etc/nginx/ceod/member-vhosts/ctdalek_mydomain.com&lt;br /&gt;
&lt;br /&gt;
# Finally, reload NGINX on both biloba and chamomile. The /etc/nginx/ceod directory&lt;br /&gt;
# is shared between them.&lt;br /&gt;
/root/bin/reload-nginx.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Installation ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /opt    &lt;br /&gt;
git clone --depth 1 https://github.com/acmesh-official/acme.sh    &lt;br /&gt;
cd acme.sh    &lt;br /&gt;
./acme.sh --install -m syscom@csclub.uwaterloo.ca    &lt;br /&gt;
. &amp;quot;/root/.acme.sh/acme.sh.env&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;Important&amp;lt;/b&amp;gt;: If invoking acme.sh from another program, it needs the environment variables set in acme.sh.env. Currently, that is just&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LE_WORKING_DIR=&amp;quot;/root/.acme.sh&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For testing purposes, make sure to use the Let&#039;s Encrypt test server:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --set-default-ca --server letsencrypt_test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== NGINX setup ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p /var/www/.well-known/acme-challenge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following snippet to your default NGINX file (e.g. /etc/nginx/sites-enabled/default):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  # For Let&#039;s Encrypt&lt;br /&gt;
  location /.well-known/acme-challenge/ {&lt;br /&gt;
    alias /var/www/.well-known/acme-challenge/;&lt;br /&gt;
  }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now assuming that biloba has the IP address for *.csclub.cloud, you can test that everything is working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --issue -d app.merenber.csclub.cloud -w /var/www&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To install a certificate after it&#039;s been issued:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --install-cert -d app.merenber.csclub.cloud \&lt;br /&gt;
    --key-file /etc/nginx/ceod/member-ssl/app.merenber.csclub.cloud.key \&lt;br /&gt;
    --fullchain-file /etc/nginx/ceod/member-ssl/app.merenber.csclub.cloud.chain \&lt;br /&gt;
    --reloadcmd &amp;quot;/root/bin/reload-nginx.sh&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At this point, you should add your NGINX vhost file which uses that SSL certificate.&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
To remove a certificate:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --remove -d app.merenber.csclub.cloud&lt;br /&gt;
rm -r /root/.acme.sh/app.merenber.csclub.cloud&lt;br /&gt;
rm /etc/nginx/ceod/member-ssl/app.merenber.csclub.cloud.chain&lt;br /&gt;
rm /etc/nginx/ceod/member-ssl/app.merenber.csclub.cloud.key&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Don&#039;t forget to remove the NGINX vhost file too.&lt;br /&gt;
&lt;br /&gt;
Once you think you&#039;re ready, use a real ACME provider, e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh --set-default-ca --server letsencrypt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since we have a [https://zerossl.com ZeroSSL] account, and ZeroSSL has no rate limit, we are going to use that instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
acme.sh  --register-account  --server zerossl \&lt;br /&gt;
        --eab-kid  xxxxxxxxxxxx  \&lt;br /&gt;
        --eab-hmac-key  xxxxxxxxx&lt;br /&gt;
acme.sh --set-default-ca  --server zerossl&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== DNS challenge ===&lt;br /&gt;
To obtain a wildcard certificate (e.g. *.k8s.csclub.cloud), you will need to perform the DNS-01 challenge. We are going to use nsupdate to interact with our BIND9 server on dns1.&lt;br /&gt;
&lt;br /&gt;
On dns1, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tsig-keygen csc-cloud&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Paste the output into the appropriate section in /etc/bind/named.conf.local. Also paste it into a file somewhere on biloba, e.g. /etc/csc/csc-cloud-tsig.key.&lt;br /&gt;
&lt;br /&gt;
Add the following to the csclub.cloud zone block:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  allow-update {&lt;br /&gt;
    !{&lt;br /&gt;
      !127.0.0.1;&lt;br /&gt;
      !::1;&lt;br /&gt;
      !129.97.134.0/24;&lt;br /&gt;
      !2620:101:f000:4901::/64;&lt;br /&gt;
      any;&lt;br /&gt;
    };&lt;br /&gt;
    key csc-cloud;&lt;br /&gt;
  };&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(We&#039;re basically trying to restrict updates to the given IP ranges. See https://serverfault.com/a/417229.)&lt;br /&gt;
&lt;br /&gt;
The &#039;bind&#039; user can&#039;t write to files under /etc/bind, so we&#039;re going to move our zone file to /var/lib/bind instead.&lt;br /&gt;
Comment out &#039;file &amp;quot;/etc/bind/db.csclub.cloud&amp;quot;;&#039; from named.conf.local and add this line below it:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  file &amp;quot;/var/lib/bind/db.csclub.cloud&amp;quot;;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  cp /etc/bind/db.csclub.cloud /var/lib/bind/db.csclub.cloud&lt;br /&gt;
  chown bind:bind /var/lib/bind/db.csclub.cloud&lt;br /&gt;
  rndc reload&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
On biloba, check that everything&#039;s working:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  nsupdate -k /etc/csc/csc-cloud-tsig.key -v &amp;lt;&amp;lt;EOF&lt;br /&gt;
  update add test.csclub.cloud 300 A 0.0.0.0&lt;br /&gt;
  send&lt;br /&gt;
  EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Use a tool such as &amp;lt;code&amp;gt;dig&amp;lt;/code&amp;gt; to make sure that the update was successful.&lt;br /&gt;
If it worked, you can delete the record:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  nsupdate -k /etc/csc/csc-cloud-tsig.key -v &amp;lt;&amp;lt;EOF&lt;br /&gt;
  delete test.csclub.cloud&lt;br /&gt;
  send&lt;br /&gt;
  EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now we are ready to actually perform the challenge with acme.sh:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  export NSUPDATE_SERVER=&amp;quot;dns1.csclub.uwaterloo.ca&amp;quot;&lt;br /&gt;
  export NSUPDATE_KEY=&amp;quot;/etc/csc/csc-cloud-tsig.key&amp;quot;&lt;br /&gt;
  acme.sh --issue --dns dns_nsupdate -d &#039;k8s.csclub.cloud&#039; -d &#039;*.k8s.csclub.cloud&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(If something goes wrong, use the &amp;lt;code&amp;gt;--debug&amp;lt;/code&amp;gt; flag.)&lt;br /&gt;
&lt;br /&gt;
If all went well, just install the certificate as usual:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  acme.sh --install-cert -d k8s.csclub.cloud \&lt;br /&gt;
    --key-file /etc/nginx/ceod/syscom-ssl/k8s.csclub.cloud.key \&lt;br /&gt;
    --fullchain-file /etc/nginx/ceod/syscom-ssl/k8s.csclub.cloud.chain \&lt;br /&gt;
    --reloadcmd &#039;systemctl reload nginx&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Immich&amp;diff=5477</id>
		<title>Immich</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Immich&amp;diff=5477"/>
		<updated>2025-11-16T07:29:46Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
Note: Immich has been turned off due to low usage. &lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
* Admin credentials are stored in [TODO].&lt;br /&gt;
* Take care not to touch the external libraries unless you know what you&#039;re doing; those are used to link users&#039; Nextcloud data to their Immich accounts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;container-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Container setup ==&lt;br /&gt;
Immich runs in &amp;lt;code&amp;gt;docker compose&amp;lt;/code&amp;gt;. All relevant files can be found in &amp;lt;code&amp;gt;/root/immich&amp;lt;/code&amp;gt; on guayusa.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;access&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Access ==&lt;br /&gt;
In &amp;lt;code&amp;gt;/root/immich&amp;lt;/code&amp;gt; on guayusa:&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose exec -it database psql -U postgres immich&amp;lt;/code&amp;gt; will get you a psql shell in the Immich Postgres database.&lt;br /&gt;
* &amp;lt;code&amp;gt;curl https://photos.csclub.uwaterloo.ca/api/*&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;curl https://localhost:2283/api/*&amp;lt;/code&amp;gt; lets you access the [https://api.immich.app/introduction Immich API]. You&#039;ll need to create an API key through the web UI -&amp;gt; Administration, then pass it in as the `x-api-key` header.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;updating-immich&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Updating Immich ==&lt;br /&gt;
&lt;br /&gt;
As root:&lt;br /&gt;
* &amp;lt;code&amp;gt;cd /root/immich&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose pull&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;docker compose up -d&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;nginx&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Nginx ==&lt;br /&gt;
&lt;br /&gt;
The Immich setup piggybacks off the nginx instance [https://wiki.csclub.uwaterloo.ca/Nextcloud#Setup_Nginx running in the Nextcloud container]. Once you&#039;ve gained access to the container via &amp;lt;code&amp;gt;sudo machinectl shell nextcloud&amp;lt;/code&amp;gt;, the nginx config can be found at &amp;lt;code&amp;gt;/etc/nginx/sites-available/immich&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;linking-nextcloud&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Linking Nextcloud ==&lt;br /&gt;
&lt;br /&gt;
Every user who has logged into both Immich and Nextcloud will have an external library created in Immich, following the naming convention &amp;lt;code&amp;gt;[watiam]&#039;s Library&amp;lt;/code&amp;gt;. This allows Immich to access the user&#039;s images stored in Nextcloud, located at &amp;lt;code&amp;gt;/var/lib/machines/nextcloud/data/nextcloud-data/[watiam]/files&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The libraries are created by the script &amp;lt;code&amp;gt;/root/immich/sync-libraries.sh&amp;lt;/code&amp;gt;. It&#039;s in the root user&#039;s crontab, set to run every hour.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;oidc-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== OIDC setup ==&lt;br /&gt;
&lt;br /&gt;
OAuth can be configured in the web UI -&amp;gt; Administration from the admin account. [https://immich.app/docs/administration/oauth Documentation].&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Decommissioned_Machines&amp;diff=5475</id>
		<title>Decommissioned Machines</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Decommissioned_Machines&amp;diff=5475"/>
		<updated>2025-11-13T23:11:17Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= 2025 =&lt;br /&gt;
==&#039;&#039;biloba&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dead, died after the poweroutage of May 9th, 2025, previously served as Cloudstack master node or wtv.&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by SLEF for CSC web hosting. Located in DC 3558. TODO: rack??&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon Gold 6140 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 384GB RAM&lt;br /&gt;
* 12 3.5&amp;quot; Hot Swap Drive Bays&lt;br /&gt;
** 2 x 480 GB SSD&lt;br /&gt;
* 10GbE onboard, 10GbE SFP+ card (on loan from CSCF)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* caffeine&lt;br /&gt;
* mail&lt;br /&gt;
* mattermost&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;suika&#039;&#039; ==&lt;br /&gt;
Suika is an office terminal built from various components donated by our members.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* AMD Ryzen 7 2700X&lt;br /&gt;
* 2x 8GB DDR4&lt;br /&gt;
* 1x Samsung 256GB SSD&lt;br /&gt;
* AMD Radeon RX 550 4GB&lt;br /&gt;
&lt;br /&gt;
= Pre-2021 =&lt;br /&gt;
==&#039;&#039;aspartame&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
aspartame was a taurine clone donated by CSCF. It was once our primary file server, serving as the gateway interface to space on phlogiston. It also used to host the [[#auth1|auth1]] container, which has been temporarily moved to [[#dextrose|dextrose]]. Decomissioned in March 2021 after refusing to boot following a power outage.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;psilodump&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
psilodump is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling phlogiston, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
psilodump was plugged into aspartame. It&#039;s still installed but inaccessible.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phlogiston&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phlogiston is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling psilodump, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
phlogiston is turned off and should remain that way. It is misconfigured to have its drives overlap with those owned by psilodump, and if it is turned on, it will likely cause irreparable data loss.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 10GB RAM&lt;br /&gt;
&lt;br /&gt;
==== Notes from before decommissioning ====&lt;br /&gt;
&lt;br /&gt;
* The lxc files are still present and should not be started up, or else the two copies of auth1 will collide.&lt;br /&gt;
* It currently cannot route the 10.0.0.0/8 block to a misconfiguration on the NetApp. This should be fixed at some point.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;glomag&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Glomag hosted [[#caffeine|caffeine]]. Decommissioned April 6, 2018.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon X3450 @ 2.67 GHz&lt;br /&gt;
* 6 GB RAM&lt;br /&gt;
* vg0: 465 GB software RAID1 (contains root partition):&lt;br /&gt;
** 750 GB Seagate Barracuda SATA hard drive&lt;br /&gt;
** 500 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
* vg1: 596 GB software RAID1 (contains caffeine):&lt;br /&gt;
** 2 &amp;amp;times; 640 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Before its decommissioning, glomag hosted [[#caffeine|caffeine]], [[#mail|mail]], and [[#munin|munin]] as [[Virtualization#Linux_Container|Linux containers]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;Lisp machine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Symbolics XL1200 Lisp machine. Donated to a new home when we couldn&#039;t get it working.&lt;br /&gt;
&lt;br /&gt;
http://www.globalnerdy.com/2008/12/03/symbolics-xl1200-lisp-machine-free-to-a-good-home/ for some history on this hardware.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
Currently inoperable due to (at least) a missing console cable.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginseng&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Ginseng used to be our fileserver, before aspartame and the netapp took over.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Pentium Dual Core E2180&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/s3000ah_tps_1_1.pdf Intel S3000AHV Motherboard]&lt;br /&gt;
* 4 &amp;amp;times; 640 GB Western-Digital Caviar Blue in [[wikipedia:Nested_RAID_levels#RAID_10_.28RAID_1.2B0.29|RAID 10]] behind a [http://www.3ware.com/products/serial_ata2-9650.asp 3ware 9650SE RAID card].&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;calum&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Calum used to be our main server and was named after Calum T Dalek.  Purchased new by the club in 1994. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* SPARCserver 10 (headless SPARCstation 10)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;paza&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An iMac G3 that was used as a dumb terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 233Mhz PowerPC 740/750&lt;br /&gt;
* 96 MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;romana&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Romana was a BeBox that has been in the CSC&#039;s possession since long before BeOS became defunct.&lt;br /&gt;
&lt;br /&gt;
Confirmed on March 19th, 2016 to be fully functional. An SSHv1 compatible client was installed from http://www.abstrakt.ch/be/ and a compatible firewalled daemon was started on Sucrose (living in /root, prefix is /root/ssh-romana). The insecure daemon is to be used a bastion host to jump to hosts only supporting &amp;gt;=SSHv2. The mail daemon on the BeBox has also been configured to send mail through mail.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 PowerPC based processors&lt;br /&gt;
* Stylish Blinken processor-load lights&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-citrate was an SGI O2 machine.&lt;br /&gt;
&lt;br /&gt;
In order to net boot you need to set /proc/sys/net/ipv4/ip_no_pmtu_disc to 1. When the O2 boots, hit F5 at the boot menu and type bootp():.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* SGI O2 MIPS processor&lt;br /&gt;
* 423 MB (?) RAM&lt;br /&gt;
* 2 &amp;amp;times; 2 GB hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;acesulfame-potassium&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An old office terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium 4 2.67GHz&lt;br /&gt;
* 1GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ABIT_VT7.pdf ABIT VT7] Motherboard&lt;br /&gt;
* ATI Radeon 7000&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;skynet&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
skynet was a Sun E6500 machine donated by Sanjay Singh. It was never fully set up.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 15 full CPU/memory boards&lt;br /&gt;
** 2x UltraSPARC II 464MHz / 8MB Cache Processors&lt;br /&gt;
** ??? RAM?&lt;br /&gt;
* 1 I/O board (type=???)&lt;br /&gt;
** ???x disks?&lt;br /&gt;
* 1 CD-ROM drive&lt;br /&gt;
&lt;br /&gt;
*[http://mirror.csclub.uwaterloo.ca/csclub/sun_e6500/ent6k.srvr/ e6500 documentation (hosted on mirror, currently dead link)]&lt;br /&gt;
*[http://docs.oracle.com/cd/E19095-01/ent6k.srvr/ e6500 documentation (backup link)]&lt;br /&gt;
*[http://www.e6500.com/ e6500]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;freebsd&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
FreeBSD was a virtual machine with FreeBSD installed.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Newer software&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;rainbowdragoneyes&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Rainbowdragoneyes was our Lemote Fuloong MIPS machine. This machine is aliased to rde.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 800MHz MIPS Loongson 2f CPU&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;denardo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Due to some instability, general uselessness, and the acquisition of a more powerful SPARC machine from MFCF, denardo was decommissioned in February 2015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Sun Fire V210&lt;br /&gt;
* TI UltraSparc IIIi (Jalapeño)&lt;br /&gt;
* 2 GB RAM&lt;br /&gt;
* 160 GB RAID array&lt;br /&gt;
* ALOM on denardo-alom.csclub can be used to power machine on/off&lt;br /&gt;
==&#039;&#039;artificial-flavours&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Artificial-flavours was our secondary (backup services) server. It used to be an office terminal. It was decommissioned in February 2015 and transferred to the ownership of Women in Computer Science (WiCS).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Celeron 3.2GHz&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/Biostar_P4M80-M4.pdf Biostar P4M80-M4] Motherboard&lt;br /&gt;
* Western-Digital 80 GB ATA hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Potassium-citrate is a dual-processor Alpha machine. It is on extended loan from pbarfuss.&lt;br /&gt;
&lt;br /&gt;
It is temporarily decommissioned pending the reinstallation of a supported operating system (such as OpenBSD).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Alphaserver CS20 (2 833MHz EV68al CPUs)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
* 36 GB Seagate SCSI hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-nitrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This was a Sun Fire E2900 from a decommissioned MFCF compute cluster. It had a SPARC architecture and ran OpenBSD, unlike many of our other systems which are x86/x86-64 and Linux/Debian. After multiple unsuccessful attempts to boot a modern Linux kernel and possible hardware instability, it was determined to be non-cost-effective and non-effort-effective to put more work into running this machine. The system was reclaimed by MFCF where someone from CS had better luck running a suitable operating system (probably Solaris).&lt;br /&gt;
&lt;br /&gt;
The name is from saltpetre, because sparks.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 24 CPUs&lt;br /&gt;
* 90GB main memory&lt;br /&gt;
* 400GB scratch disk local storage in /scratch-potassium-nitrate&lt;br /&gt;
&lt;br /&gt;
There is a [[Sun 2900 Strategy Guide|setup guide]] available for this machine.&lt;br /&gt;
&lt;br /&gt;
See also [[Sun 2900]].&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;taurine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: On August 21, 2019, just before 2:30PM EDT, we were informed that taurine caught fire&#039;&#039;&#039;. As a result, taurine has been decommissioned as of Fall 2019.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 136 GB LVM volume group&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Virtual machines&lt;br /&gt;
* BitlBee IRC instant messaging gateway (localhost only)&lt;br /&gt;
*[[ident]] server to maintain high connection cap to freenode&lt;br /&gt;
* Runs ssh on ports 21,22,53,80,81,443,8000,8080 for user&#039;s convenience.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;dextrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
dextrose was a [[#taurine|taurine]] clone donated by CSCF and was decommissioned in Fall 2019 after being replaced with a more powerful server.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sucrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
sucrose was a [[#taurine|taurine]] clone donated by CSCF. It was decommissioned in Fall 2019 following multiple hardware failures.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;goto80&#039;&#039;==&lt;br /&gt;
&#039;&#039;&#039;Note (2022-10-25): This seems to have gone missing or otherwise left our hands.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This was small ARM machine we picked up in order to have similar hardware to the Real Time Operating Systems (CS 452) course. It has a [[TS-7800_JTAG|JTAG]] interface. Located was the office on the top shelf above strombola.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 500 MHz Feroceon (ARM926ej-s compatible) processor&lt;br /&gt;
* ARMv5TEJ architecture&lt;br /&gt;
&lt;br /&gt;
Use -march=armv5te -mtune=arm926ej-s options to GCC.&lt;br /&gt;
&lt;br /&gt;
For information on the TS-7800&#039;s hardware see here:&lt;br /&gt;
http://www.embeddedarm.com/products/board-detail.php?product=ts-7800&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;nullsleep&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
nullsleep is an [http://csclub.uwaterloo.ca/misc/manuals/ASRock_ION_330.pdf ASRock ION 330] machine given to us by CSCF and funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It&#039;s decommissioned on 2023-03-20 due to repeated unexpected shutdown. Replaced by [[#powernap|powernap]]. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel® Dual Core Atom™ 330&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
* NVIDIA® ION™ graphics&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* DVD Burner&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Nullsleep has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
Nullsleep runs MPD for playing music. Control of MPD is available only to users in the &amp;quot;audio&amp;quot; group.&lt;br /&gt;
Music is located in /music on the office terminal&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;bit-shifter&#039;&#039; ==&lt;br /&gt;
bit-shifter was an office terminal, decommissioned April 2023 due to extended age. It was upgraded to the same specs as Strombola at an unknown point in time.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core 2 Quad CPU Q8300&lt;br /&gt;
* 4GB RAM&lt;br /&gt;
* Nvidia GeForce GT 440&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Jacob Parker&#039;s Firewire Card&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;strombola&#039;&#039;==&lt;br /&gt;
Strombola was an office terminal named after Gordon Strombola. It was retired in April 2023.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium G4600 2 cores @ 3.6Ghz&lt;br /&gt;
* 8 GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Strombola used to have integrated 5.1 channel sound before we got new speakers and moved audio stuff to nullsleep.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;gwem&#039;&#039; ==&lt;br /&gt;
gwem was an office terminal that was created because AMD donated a graphics card. It entered CSC service in February 2012.&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
&lt;br /&gt;
* AMD FX-8150 3.6GHz 8-Core CPU&lt;br /&gt;
* 16 GB RAM&lt;br /&gt;
* AMD Radeon 6870 HD 1GB GPU&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ga-990fxa-ud7_e.pdf Gigabyte GA-990FXA-UD7] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;maltodextrin&#039;&#039; ==&lt;br /&gt;
(*specs are outdated at least as of 2023-05-27*)&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
Maltodextrin was an office terminal. It was upgraded in Spring 2014 after an unidentified failure. Not operational (no video output) as of July 2022.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i3-4130 @ 3.40 GHz&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/E8425_H81I_PLUS.pdf ASUS H81-PLUS] Motherboard&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;natural-flavours&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Natural-flavours is an office terminal; it used to be our mirror.&lt;br /&gt;
&lt;br /&gt;
In Fall 2016, it received a major upgrade thanks the MathSoc&#039;s Capital Improvement Fund.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5474</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5474"/>
		<updated>2025-11-13T23:10:33Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of our machines are in the E7, F7, G7 and H7 racks (as of Jan. 2022) in the MC 3015 server room. There is an additional rack in the DC 3558 machine room on the third floor. Our office terminals are in the CSC office, in MC 3036/3037.&lt;br /&gt;
&lt;br /&gt;
= Web Server =&lt;br /&gt;
You are highly encouraged to avoid running anything that&#039;s not directly related to your CSC webspace on our web server. We have plenty of general-use machines; please use those instead. You can even edit web pages from any other machine--usually the only reason you&#039;d *need* to be on caffeine is for database access.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;caffeine&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Caffeine is the Computer Science Club&#039;s web server. It serves websites, databases for websites, and a large amount of other services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Redundant active backup coming soon...)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* LXC virtual machine hosted on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
** 12 vCPUs&lt;br /&gt;
** 32GB of RAM&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Club and member web sites with [https://www.apache.org/ Apache]&lt;br /&gt;
* [[MySQL]] databases&lt;br /&gt;
* [[PostgreSQL]] databases&lt;br /&gt;
* [[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
= General-Use Servers =&lt;br /&gt;
&lt;br /&gt;
These machines can be used for (nearly) anything you like (though be polite and remember that these are shared machines). Recall that when you signed the Machine Usage Agreement, you promised not to use these machines to generate profit (so no cryptocurrency mining).&lt;br /&gt;
&lt;br /&gt;
For computationally-intensive jobs (CPU/memory bound) we recommend running on high-fructose-corn-syrup, carbonated-water, sorbitol, mannitol, or corn-syrup, listed in roughly decreasing order of available resources. For low-intensity interactive jobs, such as IRC clients, we recommend running on neotame. &#039;&#039;&#039;&amp;lt;u&amp;gt;If you have a long-running computationally intensive job, it&#039;s good to nice[https://en.wikipedia.org/wiki/Nice_(Unix)] your process, and possibly let syscom know too.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 × Intel Xeon E5405 (2.00 GHz, 4 cores each)&lt;br /&gt;
* 32 GB RAM&lt;br /&gt;
* eth0 (&amp;quot;Gb0&amp;quot;) mac addr 00:24:e8:52:41:27&lt;br /&gt;
* eth1 (&amp;quot;Gb1&amp;quot;) mac addr 00:24:e8:52:41:29&lt;br /&gt;
* IPMI mac addr 00:24:e8:52:41:2b&lt;br /&gt;
* 3 &amp;amp;times; Western-Digital 160GB SATA hard drive (445 GB software RAID0 array)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* Use eth0/Gb0 for the mathstudentorgsnet connection&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Hosts 1 TB &amp;lt;tt&amp;gt;[[scratch|/scratch]]&amp;lt;/tt&amp;gt; and exports via NFS (sec=krb5)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;high-fructose-corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
High-fructose-corn-syrup (or hfcs) is a large SuperMicro server. It&#039;s been in CSC service since April 2012.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6272 (2.4 GHz, 16 cores each)&lt;br /&gt;
* 192 GB RAM&lt;br /&gt;
* Supermicro H8QGi+-F Motherboard Quad 1944-pin Socket [http://csclub.uwaterloo.ca/misc/manuals/motherboard-H8QGI+-F.pdf (Manual)]&lt;br /&gt;
* 500 GB Seagate Barracuda&lt;br /&gt;
* Supermicro Case Rackmount CSE-748TQ-R1400B 4U [http://csclub.uwaterloo.ca/misc/manuals/SC748.pdf (Manual)]&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Missing moba IO shield (as of January 2024)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;carbonated-water&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
carbonated-water is a Dell R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6176 processors (2.3 GHz, 12 cores each)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;neotame&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
neotame is a SuperMicro server funded by MEF. It is the successor to taurine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We strongly discourage running computationally-intensive jobs&#039;&#039;&#039; on neotame as many users run interactive applications such as IRC clients on it and any significant service degradation will be more likely to affect other users (who will probably notice right away).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* SSH server also listens on ports 21, 22, 53, 80, 81, 443, 8000, 8080 for your convenience.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;sorbitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
sorbitol is a SuperMicro server funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
== &#039;&#039;mannitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
mannitol is a SuperMicro server funded by MEF. CUDA is available on this node.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* NVIDIA GeForce RTX 3050 6G&lt;br /&gt;
&lt;br /&gt;
= Office Terminals =&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to SSH into these machines, but we discourage you from trying to use these machines when you&#039;re not sitting in front of them. They are bounced at least every time our login manager, lightdm, throws a tantrum (which is several times a day). These are for use inside our physical office.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;cyanide&#039;&#039; ==&lt;br /&gt;
cyanide is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)], identical in specification to powernap&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;powernap&#039;&#039;==&lt;br /&gt;
powernap is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)].&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
=== Speaker === &lt;br /&gt;
powernap has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
* MPD for playing music. Only office/termcom/syscom can log into powernap. Use `ncmpcpp` to control MPD.&lt;br /&gt;
** TODO: this is not the case anymore&lt;br /&gt;
* Bluetooth audio receiver. Only syscom can control bluetooth pairing. Use `bluetoothctl` to control bluetooth.&lt;br /&gt;
&lt;br /&gt;
Music is located in `/music` on the office terminals.&lt;br /&gt;
&lt;br /&gt;
= Progcom Only =&lt;br /&gt;
The Programme Committee has access to a VM on corn-syrup called &#039;progcom&#039;. They have sudo rights in this VM so they may install and run their own software inside it. This VM should only be accessible by members of progcom or syscom.&lt;br /&gt;
&lt;br /&gt;
The CI/CD stuff for the csclub.uwaterloo.ca runs on this vm (drone).&lt;br /&gt;
&lt;br /&gt;
= Codey Bot Only =&lt;br /&gt;
Ran on CSC Cloud in a separate Cloudstack project. codey-staging, codey-dev, codey-prod.&lt;br /&gt;
&lt;br /&gt;
TODO: migrating from cloudstack&lt;br /&gt;
&lt;br /&gt;
= Syscom Only =&lt;br /&gt;
&lt;br /&gt;
The following systems are only be accessible to members of the [[Systems Committee]] for a variety of reasons; the most common of which being that some of these machines host [[Kerberos]] authentication services for the CSC.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;xylitol&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
xylitol is a Dell PowerEdge R815 donated by CSCF. It is primarily a container host for services previously hosted on aspartame and dextrose, including munin, rt, mathnews, auth1, and dns1. It was provisioned with the intent to replace both of those hosts.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Dual AMD Opteron 6176 (2.3 GHz, 48 cores total)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 500GB volume group on RAID1 SSD (xylitol-mirrored)&lt;br /&gt;
* 500ish-GB volume group on RAID10 HDD (xylitol-raidten)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth1&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] primary&lt;br /&gt;
*[[Kerberos]] primary&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chat&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* The Lounge web IRC client (https://chat.csclub.uwaterloo.ca)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phosphoric-acid&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phosphoric-acid is a Dell PowerEdge R815 donated by CSCF and is a clone of xylitol. It may be used to provide redundant cloud services in the future.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
* 4x 2TB Kingston KC3000 (ZFS Z2 [Sustain 2-failures]) (KIN-SKC3000D2048G)&lt;br /&gt;
** Mounted on 2x Startech Dual M.2 PCIE SSD Adapter Cards (STA-PEX8M2E2)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&lt;br /&gt;
*prometheus&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;coffee&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Virtual machine running on phosphoric-acid.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Database#MySQL|MySQL]]&lt;br /&gt;
*[[Database#Postgres|Postgres]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;cobalamin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950 donated to us by FEDS. Located in the Science machine room on the first floor of Physics, on Science Computing Rack 2. NICs are plugged into A1 and A2 on the adjacent rack. Acts as a backup server for many things.&lt;br /&gt;
&lt;br /&gt;
TODO: should replace with another Syscom server when Science Computing clears out the rack (ETA before 09/2024)&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 1 × Intel Xeon E5420 (2.50 GHz, 4 cores)&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Broadcom NetworkXtreme II&lt;br /&gt;
* 2x73GB Hard Drives, hardware RAID1&lt;br /&gt;
** Soon to be 2x1TB in MegaRAID1&lt;br /&gt;
*http://www.dell.com/support/home/ca/en/cabsdt1/product-support/servicetag/51TYRG1/configuration&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Containers: [[#auth2|auth2]] (kerberos)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TODO: Mega unreliable.&#039;&#039;&#039; (Goes down once every few weeks... due to power outages in the PHYS server room)&lt;br /&gt;
** It is plugged into a UPS but the UPS has dead batteries.&lt;br /&gt;
* The network card requires non-free drivers. Be sure to use an installation disc with non-free.&lt;br /&gt;
&lt;br /&gt;
* We have separate IP ranges for cobalamin and its containers because the machine is located in a different building. They are:&lt;br /&gt;
** VLAN ID 506 (csc-data1): 129.97.18.16/29; gateway 129.97.18.17; mask 255.255.255.240&lt;br /&gt;
** VLAN ID 504 (csc-ipmi): 172.19.5.24/29; gateway 172.19.5.25; mask 255.255.255.248&lt;br /&gt;
* Physical access to the PHYS server rooms can be acquired by visiting Science Computing in PHYS 2006.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth2&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#cobalamin|cobalamin]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] secondary&lt;br /&gt;
*[[Kerberos]] secondary&lt;br /&gt;
&lt;br /&gt;
MAC Address: c2:c0:00:00:00:a2&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mail&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
mail is the CSC&#039;s mail server. It hosts mail delivery, imap(s), smtp(s), and mailman. It is also syscom-only. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
TODO: &amp;quot;HA&amp;quot;-ish configuration&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mail]] services&lt;br /&gt;
* mailman (web interface at [http://mailman.csclub.uwaterloo.ca/])&lt;br /&gt;
*[[Webmail]]&lt;br /&gt;
*[[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-benzoate is our previous mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It is currently sitting in the office pending repurposing. Will likely become a machine for backups in DC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon Quad Core E5405 @ 2.00 GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* vg0: 228 GB block device behind DELL PERC 6/i (contains root partition)&lt;br /&gt;
&lt;br /&gt;
Space disks are currently in the office underneath maltodextrin.&lt;br /&gt;
&lt;br /&gt;
TODO: gone??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate is our mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 36 drive Supermicro chassis (SSG-6048R-E1CR36L) &lt;br /&gt;
* 2 x Intel Xeon E5-2695 v4 (18 cores, 2.10GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC RDIMM RAM&lt;br /&gt;
* 2 x 1 TB Samsung Evo 850 SSD drives&lt;br /&gt;
* 17 x 4 TB Western Digital Gold drives (separate funding from MEF)&lt;br /&gt;
* 9 x 18TB Seagate Exos X18 (8 ZFS, Z2,1 hot-spare)&lt;br /&gt;
* 10 Gbps SFP+ card (loaned from CSCF)&lt;br /&gt;
* 50 Gbps Mellanox QSFP card (from ginkgo; currently unconnected)&lt;br /&gt;
&lt;br /&gt;
Spec before 2025-03-27:&lt;br /&gt;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
&lt;br /&gt;
==== Network Connections ====&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate has two connections to our network:&lt;br /&gt;
&lt;br /&gt;
* 1 Gbps to our switch (used for management)&lt;br /&gt;
* 2 x 10 Gbps (LACP bond) to mc-rt-3015-mso-a (for mirror)&lt;br /&gt;
&lt;br /&gt;
Mirror&#039;s bandwidth is limited to 1 Gbps on each of the 4 campus internet links. Mirror&#039;s bandwidth is not limited on campus.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mirror]]&lt;br /&gt;
*[[Talks]] mirror&lt;br /&gt;
*[[Debian_Repository|CSClub packages repository]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;munin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
munin is a syscom-only monitoring and accounting machine. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://munin.csclub.uwaterloo.ca munin] systems monitoring daemon&lt;br /&gt;
TODO: Debian 9?&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;yerba-mate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* test-ipv6 (test-ipv6.csclub.uwaterloo.ca; a test-ipv6.com mirror)&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Also used for experimenting new CSC services.&lt;br /&gt;
&lt;br /&gt;
* TODO: use as backup server&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;citric-acid&#039;&#039;==&lt;br /&gt;
A Dell PowerEdge R815 (TODO: check model) provided by CSCF to replace [[Machine List#aspartame|aspartame]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 2 x AMD Opteron 6174 (12 cores, 2.20 GHz)&lt;br /&gt;
* 128 GB RAM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Configured for [https://pass.uwaterloo.ca pass.uwaterloo.ca], a university-wide password manager hosted by CSC as a demo service for all Nexus (ADFS) user.&lt;br /&gt;
* [[Plane]], an internal (CSC) project management tool.&lt;br /&gt;
* Minio&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Being repurposed for Termcom training and development.&lt;br /&gt;
* Being used for Matrix &amp;amp; Proxmox Testing&lt;br /&gt;
* UFW opened-ports: SSH, HTTP/HTTPS&lt;br /&gt;
* Upgraded to Podman 4.x&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Tahini&#039;&#039; ==&lt;br /&gt;
Server was funded via SLEF, and MEF. More info coming soon. Part of Proxmox Project, and mass migration&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Teriyaki&#039;&#039; ==&lt;br /&gt;
Server was funded via SLEF, and MEF. More info coming soon. Part of Proxmox Project, and mass migration&lt;br /&gt;
&lt;br /&gt;
= Cloud =&lt;br /&gt;
&lt;br /&gt;
These machines are used by [https://cloud.csclub.uwaterloo.ca cloud.csclub.uwaterloo.ca]. The machines themselves are restricted to Syscom only access.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chamomile&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x 2.20GHz 12-core processors (AMD Opteron(tm) Processor 6174)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Cloudstack host&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;riboflavin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R515 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 2.6 GHz 8-core processors (AMD Opteron(tm) Processor 4376 HE)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
* 2x 500GB internal SSD&lt;br /&gt;
* 12x Seagate 4TB SSHD&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack block and object storage for csclub.cloud&lt;br /&gt;
* ????&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;guayusa&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2TB PCI-Express Flash SSD&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* load-balancer-01&lt;br /&gt;
&lt;br /&gt;
Was used to experiment the following then-new CSC services:&lt;br /&gt;
&lt;br /&gt;
* cifs (for booting ginkgo from CD)&lt;br /&gt;
* caffeine-01 (testing of multi-node caffeine)&lt;br /&gt;
* TODO: ???&lt;br /&gt;
** block1.cloud&lt;br /&gt;
** object1.cloud&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
* TODO: ditch... Currently being used to set up NextCloud.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginkgo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by MEF for CSC web hosting. Locate in MC 3015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2697 v4 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 256GB RAM&lt;br /&gt;
* 2 x 1.2 TB SSD (400GB of each for RAID 1)&lt;br /&gt;
* 10GbE onboard, 25GbE SFP+ card (also included 50GbE SFP+ card which will probably go in mirror)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* controller1.cloud&lt;br /&gt;
* db1.cloud&lt;br /&gt;
* router1.cloud (NAT for cloud tenant network)&lt;br /&gt;
* network1.cloud&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs00&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs00 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* dual SFP connection to core switch&lt;br /&gt;
&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs01&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs01 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
TODO: disconnected??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs10&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs10 is a &#039;&#039;&#039;NetApp FAS8040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* FAS8040 (dual heads)&lt;br /&gt;
** ... TODO&lt;br /&gt;
* 6 DS4324 HDD shelves (24-disks each)&lt;br /&gt;
** 24 x 2TB HDDs (assorted brands/models)&lt;br /&gt;
** Dual IOM3 controllers.&lt;br /&gt;
** Loop 1: bottom 4 shelves&lt;br /&gt;
** Loop 2: top 2 shelves + SSD shelf&lt;br /&gt;
* 1 DS2246 SSD shelf (TODO: right model?)&lt;br /&gt;
** 24 Samsung SM1625 SSDs (MZ-6ER2000/0G3), 200GB (SAS 2, 2.5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
== ps3 ==&lt;br /&gt;
This is just a very wide PS3, the model that supported running Linux natively before it was removed. Firmware was updated to remove this feature, however it can still be done via. homebrew. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* It&#039;s a PS3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-10-24&#039;&#039;&#039; - Thermal paste replaced + firmware updated to latest supported version, also modded.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;binaerpilot&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Tobi expansion board. It is currently attached to corn-syrup in the machine room and even more currently turned off until someone can figure out what is wrong with it.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;anamanaguchi&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Chestnut43 expansion board. It is currently in the hardware drawer in the CSC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: May have disappeared at some point&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;digital cutter&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
See [[Digital Cutter|here]].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i7-6700k&lt;br /&gt;
* 2x8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Cup Holder (DVD drive has power, but not connected to mother board)&lt;br /&gt;
= UPS =&lt;br /&gt;
&lt;br /&gt;
All of the machines in the MC 3015 machine room are connected to one of our UPSs.&lt;br /&gt;
&lt;br /&gt;
All of our UPSs can be monitored via CSCF:&lt;br /&gt;
&lt;br /&gt;
* MC3015-UPS-B2&lt;br /&gt;
* mc-3015-e7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced July 2014) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-e7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-f7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced Feb 2017) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-f7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2010) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2004) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
&lt;br /&gt;
We will receive email alerts for any issues with the UPS. Their status can be monitored via [[SNMP]].&lt;br /&gt;
&lt;br /&gt;
TODO: Fix labels &amp;amp; verify info is correct &amp;amp; figure out why we can&#039;t talk to cacti.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Infrastructure_Renewal_Plan&amp;diff=5463</id>
		<title>Infrastructure Renewal Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Infrastructure_Renewal_Plan&amp;diff=5463"/>
		<updated>2025-11-04T16:21:20Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;Will slowly update this page.  Plan is to move a lot of the less-essential services to Proxmox to allow us to make them a bit easier to backup, and manage. Also getting rid of old storage, and servers.  In addition we&amp;#039;re planning to go full-flash.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Will slowly update this page.&lt;br /&gt;
&lt;br /&gt;
Plan is to move a lot of the less-essential services to Proxmox to allow us to make them a bit easier to backup, and manage. Also getting rid of old storage, and servers.&lt;br /&gt;
&lt;br /&gt;
In addition we&#039;re planning to go full-flash.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5462</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5462"/>
		<updated>2025-11-04T05:21:14Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Tahini */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of our machines are in the E7, F7, G7 and H7 racks (as of Jan. 2022) in the MC 3015 server room. There is an additional rack in the DC 3558 machine room on the third floor. Our office terminals are in the CSC office, in MC 3036/3037.&lt;br /&gt;
&lt;br /&gt;
= Web Server =&lt;br /&gt;
You are highly encouraged to avoid running anything that&#039;s not directly related to your CSC webspace on our web server. We have plenty of general-use machines; please use those instead. You can even edit web pages from any other machine--usually the only reason you&#039;d *need* to be on caffeine is for database access.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;caffeine&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Caffeine is the Computer Science Club&#039;s web server. It serves websites, databases for websites, and a large amount of other services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Redundant active backup coming soon...)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* LXC virtual machine hosted on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
** 12 vCPUs&lt;br /&gt;
** 32GB of RAM&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Club and member web sites with [https://www.apache.org/ Apache]&lt;br /&gt;
* [[MySQL]] databases&lt;br /&gt;
* [[PostgreSQL]] databases&lt;br /&gt;
* [[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
= General-Use Servers =&lt;br /&gt;
&lt;br /&gt;
These machines can be used for (nearly) anything you like (though be polite and remember that these are shared machines). Recall that when you signed the Machine Usage Agreement, you promised not to use these machines to generate profit (so no cryptocurrency mining).&lt;br /&gt;
&lt;br /&gt;
For computationally-intensive jobs (CPU/memory bound) we recommend running on high-fructose-corn-syrup, carbonated-water, sorbitol, mannitol, or corn-syrup, listed in roughly decreasing order of available resources. For low-intensity interactive jobs, such as IRC clients, we recommend running on neotame. &#039;&#039;&#039;&amp;lt;u&amp;gt;If you have a long-running computationally intensive job, it&#039;s good to nice[https://en.wikipedia.org/wiki/Nice_(Unix)] your process, and possibly let syscom know too.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 × Intel Xeon E5405 (2.00 GHz, 4 cores each)&lt;br /&gt;
* 32 GB RAM&lt;br /&gt;
* eth0 (&amp;quot;Gb0&amp;quot;) mac addr 00:24:e8:52:41:27&lt;br /&gt;
* eth1 (&amp;quot;Gb1&amp;quot;) mac addr 00:24:e8:52:41:29&lt;br /&gt;
* IPMI mac addr 00:24:e8:52:41:2b&lt;br /&gt;
* 3 &amp;amp;times; Western-Digital 160GB SATA hard drive (445 GB software RAID0 array)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* Use eth0/Gb0 for the mathstudentorgsnet connection&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Hosts 1 TB &amp;lt;tt&amp;gt;[[scratch|/scratch]]&amp;lt;/tt&amp;gt; and exports via NFS (sec=krb5)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;high-fructose-corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
High-fructose-corn-syrup (or hfcs) is a large SuperMicro server. It&#039;s been in CSC service since April 2012.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6272 (2.4 GHz, 16 cores each)&lt;br /&gt;
* 192 GB RAM&lt;br /&gt;
* Supermicro H8QGi+-F Motherboard Quad 1944-pin Socket [http://csclub.uwaterloo.ca/misc/manuals/motherboard-H8QGI+-F.pdf (Manual)]&lt;br /&gt;
* 500 GB Seagate Barracuda&lt;br /&gt;
* Supermicro Case Rackmount CSE-748TQ-R1400B 4U [http://csclub.uwaterloo.ca/misc/manuals/SC748.pdf (Manual)]&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Missing moba IO shield (as of January 2024)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;carbonated-water&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
carbonated-water is a Dell R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6176 processors (2.3 GHz, 12 cores each)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;neotame&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
neotame is a SuperMicro server funded by MEF. It is the successor to taurine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We strongly discourage running computationally-intensive jobs&#039;&#039;&#039; on neotame as many users run interactive applications such as IRC clients on it and any significant service degradation will be more likely to affect other users (who will probably notice right away).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* SSH server also listens on ports 21, 22, 53, 80, 81, 443, 8000, 8080 for your convenience.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;sorbitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
sorbitol is a SuperMicro server funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
== &#039;&#039;mannitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
mannitol is a SuperMicro server funded by MEF. CUDA is available on this node.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* NVIDIA GeForce RTX 3050 6G&lt;br /&gt;
&lt;br /&gt;
= Office Terminals =&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to SSH into these machines, but we discourage you from trying to use these machines when you&#039;re not sitting in front of them. They are bounced at least every time our login manager, lightdm, throws a tantrum (which is several times a day). These are for use inside our physical office.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;cyanide&#039;&#039; ==&lt;br /&gt;
cyanide is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)], identical in specification to powernap&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;suika&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Suika is an office terminal built from various components donated by our members.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* AMD Ryzen 7 2700X&lt;br /&gt;
* 2x 8GB DDR4&lt;br /&gt;
* 1x Samsung 256GB SSD&lt;br /&gt;
* AMD Radeon RX 550 4GB&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;powernap&#039;&#039;==&lt;br /&gt;
powernap is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)].&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
=== Speaker === &lt;br /&gt;
powernap has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
* MPD for playing music. Only office/termcom/syscom can log into powernap. Use `ncmpcpp` to control MPD.&lt;br /&gt;
** TODO: this is not the case anymore&lt;br /&gt;
* Bluetooth audio receiver. Only syscom can control bluetooth pairing. Use `bluetoothctl` to control bluetooth.&lt;br /&gt;
&lt;br /&gt;
Music is located in `/music` on the office terminals.&lt;br /&gt;
&lt;br /&gt;
= Progcom Only =&lt;br /&gt;
The Programme Committee has access to a VM on corn-syrup called &#039;progcom&#039;. They have sudo rights in this VM so they may install and run their own software inside it. This VM should only be accessible by members of progcom or syscom.&lt;br /&gt;
&lt;br /&gt;
The CI/CD stuff for the csclub.uwaterloo.ca runs on this vm (drone).&lt;br /&gt;
&lt;br /&gt;
= Codey Bot Only =&lt;br /&gt;
Ran on CSC Cloud in a separate Cloudstack project. codey-staging, codey-dev, codey-prod.&lt;br /&gt;
&lt;br /&gt;
TODO: migrating from cloudstack&lt;br /&gt;
&lt;br /&gt;
= Syscom Only =&lt;br /&gt;
&lt;br /&gt;
The following systems are only be accessible to members of the [[Systems Committee]] for a variety of reasons; the most common of which being that some of these machines host [[Kerberos]] authentication services for the CSC.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;xylitol&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
xylitol is a Dell PowerEdge R815 donated by CSCF. It is primarily a container host for services previously hosted on aspartame and dextrose, including munin, rt, mathnews, auth1, and dns1. It was provisioned with the intent to replace both of those hosts.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Dual AMD Opteron 6176 (2.3 GHz, 48 cores total)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 500GB volume group on RAID1 SSD (xylitol-mirrored)&lt;br /&gt;
* 500ish-GB volume group on RAID10 HDD (xylitol-raidten)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth1&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] primary&lt;br /&gt;
*[[Kerberos]] primary&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chat&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* The Lounge web IRC client (https://chat.csclub.uwaterloo.ca)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phosphoric-acid&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phosphoric-acid is a Dell PowerEdge R815 donated by CSCF and is a clone of xylitol. It may be used to provide redundant cloud services in the future.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
* 4x 2TB Kingston KC3000 (ZFS Z2 [Sustain 2-failures]) (KIN-SKC3000D2048G)&lt;br /&gt;
** Mounted on 2x Startech Dual M.2 PCIE SSD Adapter Cards (STA-PEX8M2E2)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&lt;br /&gt;
*prometheus&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;coffee&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Virtual machine running on phosphoric-acid.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Database#MySQL|MySQL]]&lt;br /&gt;
*[[Database#Postgres|Postgres]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;cobalamin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950 donated to us by FEDS. Located in the Science machine room on the first floor of Physics, on Science Computing Rack 2. NICs are plugged into A1 and A2 on the adjacent rack. Acts as a backup server for many things.&lt;br /&gt;
&lt;br /&gt;
TODO: should replace with another Syscom server when Science Computing clears out the rack (ETA before 09/2024)&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 1 × Intel Xeon E5420 (2.50 GHz, 4 cores)&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Broadcom NetworkXtreme II&lt;br /&gt;
* 2x73GB Hard Drives, hardware RAID1&lt;br /&gt;
** Soon to be 2x1TB in MegaRAID1&lt;br /&gt;
*http://www.dell.com/support/home/ca/en/cabsdt1/product-support/servicetag/51TYRG1/configuration&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Containers: [[#auth2|auth2]] (kerberos)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TODO: Mega unreliable.&#039;&#039;&#039; (Goes down once every few weeks... due to power outages in the PHYS server room)&lt;br /&gt;
** It is plugged into a UPS but the UPS has dead batteries.&lt;br /&gt;
* The network card requires non-free drivers. Be sure to use an installation disc with non-free.&lt;br /&gt;
&lt;br /&gt;
* We have separate IP ranges for cobalamin and its containers because the machine is located in a different building. They are:&lt;br /&gt;
** VLAN ID 506 (csc-data1): 129.97.18.16/29; gateway 129.97.18.17; mask 255.255.255.240&lt;br /&gt;
** VLAN ID 504 (csc-ipmi): 172.19.5.24/29; gateway 172.19.5.25; mask 255.255.255.248&lt;br /&gt;
* Physical access to the PHYS server rooms can be acquired by visiting Science Computing in PHYS 2006.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth2&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#cobalamin|cobalamin]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] secondary&lt;br /&gt;
*[[Kerberos]] secondary&lt;br /&gt;
&lt;br /&gt;
MAC Address: c2:c0:00:00:00:a2&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mail&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
mail is the CSC&#039;s mail server. It hosts mail delivery, imap(s), smtp(s), and mailman. It is also syscom-only. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
TODO: &amp;quot;HA&amp;quot;-ish configuration&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mail]] services&lt;br /&gt;
* mailman (web interface at [http://mailman.csclub.uwaterloo.ca/])&lt;br /&gt;
*[[Webmail]]&lt;br /&gt;
*[[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-benzoate is our previous mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It is currently sitting in the office pending repurposing. Will likely become a machine for backups in DC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon Quad Core E5405 @ 2.00 GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* vg0: 228 GB block device behind DELL PERC 6/i (contains root partition)&lt;br /&gt;
&lt;br /&gt;
Space disks are currently in the office underneath maltodextrin.&lt;br /&gt;
&lt;br /&gt;
TODO: gone??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate is our mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 36 drive Supermicro chassis (SSG-6048R-E1CR36L) &lt;br /&gt;
* 2 x Intel Xeon E5-2695 v4 (18 cores, 2.10GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC RDIMM RAM&lt;br /&gt;
* 2 x 1 TB Samsung Evo 850 SSD drives&lt;br /&gt;
* 17 x 4 TB Western Digital Gold drives (separate funding from MEF)&lt;br /&gt;
* 9 x 18TB Seagate Exos X18 (8 ZFS, Z2,1 hot-spare)&lt;br /&gt;
* 10 Gbps SFP+ card (loaned from CSCF)&lt;br /&gt;
* 50 Gbps Mellanox QSFP card (from ginkgo; currently unconnected)&lt;br /&gt;
&lt;br /&gt;
Spec before 2025-03-27:&lt;br /&gt;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
&lt;br /&gt;
==== Network Connections ====&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate has two connections to our network:&lt;br /&gt;
&lt;br /&gt;
* 1 Gbps to our switch (used for management)&lt;br /&gt;
* 2 x 10 Gbps (LACP bond) to mc-rt-3015-mso-a (for mirror)&lt;br /&gt;
&lt;br /&gt;
Mirror&#039;s bandwidth is limited to 1 Gbps on each of the 4 campus internet links. Mirror&#039;s bandwidth is not limited on campus.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mirror]]&lt;br /&gt;
*[[Talks]] mirror&lt;br /&gt;
*[[Debian_Repository|CSClub packages repository]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;munin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
munin is a syscom-only monitoring and accounting machine. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://munin.csclub.uwaterloo.ca munin] systems monitoring daemon&lt;br /&gt;
TODO: Debian 9?&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;yerba-mate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* test-ipv6 (test-ipv6.csclub.uwaterloo.ca; a test-ipv6.com mirror)&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Also used for experimenting new CSC services.&lt;br /&gt;
&lt;br /&gt;
* TODO: use as backup server&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;citric-acid&#039;&#039;==&lt;br /&gt;
A Dell PowerEdge R815 (TODO: check model) provided by CSCF to replace [[Machine List#aspartame|aspartame]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 2 x AMD Opteron 6174 (12 cores, 2.20 GHz)&lt;br /&gt;
* 128 GB RAM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Configured for [https://pass.uwaterloo.ca pass.uwaterloo.ca], a university-wide password manager hosted by CSC as a demo service for all Nexus (ADFS) user.&lt;br /&gt;
* [[Plane]], an internal (CSC) project management tool.&lt;br /&gt;
* Minio&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Being repurposed for Termcom training and development.&lt;br /&gt;
* Being used for Matrix &amp;amp; Proxmox Testing&lt;br /&gt;
* UFW opened-ports: SSH, HTTP/HTTPS&lt;br /&gt;
* Upgraded to Podman 4.x&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Tahini&#039;&#039; ==&lt;br /&gt;
Server was funded via SLEF, and MEF. More info coming soon. Part of Proxmox Project, and mass migration&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Teriyaki&#039;&#039; ==&lt;br /&gt;
Server was funded via SLEF, and MEF. More info coming soon. Part of Proxmox Project, and mass migration&lt;br /&gt;
&lt;br /&gt;
= Cloud =&lt;br /&gt;
&lt;br /&gt;
These machines are used by [https://cloud.csclub.uwaterloo.ca cloud.csclub.uwaterloo.ca]. The machines themselves are restricted to Syscom only access.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chamomile&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x 2.20GHz 12-core processors (AMD Opteron(tm) Processor 6174)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Cloudstack host&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;riboflavin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R515 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 2.6 GHz 8-core processors (AMD Opteron(tm) Processor 4376 HE)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
* 2x 500GB internal SSD&lt;br /&gt;
* 12x Seagate 4TB SSHD&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack block and object storage for csclub.cloud&lt;br /&gt;
* ????&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;guayusa&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2TB PCI-Express Flash SSD&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* load-balancer-01&lt;br /&gt;
&lt;br /&gt;
Was used to experiment the following then-new CSC services:&lt;br /&gt;
&lt;br /&gt;
* cifs (for booting ginkgo from CD)&lt;br /&gt;
* caffeine-01 (testing of multi-node caffeine)&lt;br /&gt;
* TODO: ???&lt;br /&gt;
** block1.cloud&lt;br /&gt;
** object1.cloud&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
* TODO: ditch... Currently being used to set up NextCloud.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginkgo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by MEF for CSC web hosting. Locate in MC 3015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2697 v4 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 256GB RAM&lt;br /&gt;
* 2 x 1.2 TB SSD (400GB of each for RAID 1)&lt;br /&gt;
* 10GbE onboard, 25GbE SFP+ card (also included 50GbE SFP+ card which will probably go in mirror)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* controller1.cloud&lt;br /&gt;
* db1.cloud&lt;br /&gt;
* router1.cloud (NAT for cloud tenant network)&lt;br /&gt;
* network1.cloud&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs00&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs00 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* dual SFP connection to core switch&lt;br /&gt;
&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs01&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs01 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
TODO: disconnected??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs10&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs10 is a &#039;&#039;&#039;NetApp FAS8040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* FAS8040 (dual heads)&lt;br /&gt;
** ... TODO&lt;br /&gt;
* 6 DS4324 HDD shelves (24-disks each)&lt;br /&gt;
** 24 x 2TB HDDs (assorted brands/models)&lt;br /&gt;
** Dual IOM3 controllers.&lt;br /&gt;
** Loop 1: bottom 4 shelves&lt;br /&gt;
** Loop 2: top 2 shelves + SSD shelf&lt;br /&gt;
* 1 DS2246 SSD shelf (TODO: right model?)&lt;br /&gt;
** 24 Samsung SM1625 SSDs (MZ-6ER2000/0G3), 200GB (SAS 2, 2.5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
== ps3 ==&lt;br /&gt;
This is just a very wide PS3, the model that supported running Linux natively before it was removed. Firmware was updated to remove this feature, however it can still be done via. homebrew. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* It&#039;s a PS3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-10-24&#039;&#039;&#039; - Thermal paste replaced + firmware updated to latest supported version, also modded.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;binaerpilot&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Tobi expansion board. It is currently attached to corn-syrup in the machine room and even more currently turned off until someone can figure out what is wrong with it.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;anamanaguchi&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Chestnut43 expansion board. It is currently in the hardware drawer in the CSC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: May have disappeared at some point&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;digital cutter&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
See [[Digital Cutter|here]].&lt;br /&gt;
&lt;br /&gt;
= Decommissioned =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;biloba&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dead, died after the poweroutage of May 9th, 2025, previously served as Cloudstack master node or wtv.&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by SLEF for CSC web hosting. Located in DC 3558. TODO: rack??&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon Gold 6140 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 384GB RAM&lt;br /&gt;
* 12 3.5&amp;quot; Hot Swap Drive Bays&lt;br /&gt;
** 2 x 480 GB SSD&lt;br /&gt;
* 10GbE onboard, 10GbE SFP+ card (on loan from CSCF)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* caffeine&lt;br /&gt;
* mail&lt;br /&gt;
* mattermost&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;aspartame&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
aspartame was a taurine clone donated by CSCF. It was once our primary file server, serving as the gateway interface to space on phlogiston. It also used to host the [[#auth1|auth1]] container, which has been temporarily moved to [[#dextrose|dextrose]]. Decomissioned in March 2021 after refusing to boot following a power outage.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;psilodump&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
psilodump is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling phlogiston, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
psilodump was plugged into aspartame. It&#039;s still installed but inaccessible.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phlogiston&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phlogiston is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling psilodump, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
phlogiston is turned off and should remain that way. It is misconfigured to have its drives overlap with those owned by psilodump, and if it is turned on, it will likely cause irreparable data loss.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 10GB RAM&lt;br /&gt;
&lt;br /&gt;
==== Notes from before decommissioning ====&lt;br /&gt;
&lt;br /&gt;
* The lxc files are still present and should not be started up, or else the two copies of auth1 will collide.&lt;br /&gt;
* It currently cannot route the 10.0.0.0/8 block to a misconfiguration on the NetApp. This should be fixed at some point.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;glomag&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Glomag hosted [[#caffeine|caffeine]]. Decommissioned April 6, 2018.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon X3450 @ 2.67 GHz&lt;br /&gt;
* 6 GB RAM&lt;br /&gt;
* vg0: 465 GB software RAID1 (contains root partition):&lt;br /&gt;
** 750 GB Seagate Barracuda SATA hard drive&lt;br /&gt;
** 500 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
* vg1: 596 GB software RAID1 (contains caffeine):&lt;br /&gt;
** 2 &amp;amp;times; 640 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Before its decommissioning, glomag hosted [[#caffeine|caffeine]], [[#mail|mail]], and [[#munin|munin]] as [[Virtualization#Linux_Container|Linux containers]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;Lisp machine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Symbolics XL1200 Lisp machine. Donated to a new home when we couldn&#039;t get it working.&lt;br /&gt;
&lt;br /&gt;
http://www.globalnerdy.com/2008/12/03/symbolics-xl1200-lisp-machine-free-to-a-good-home/ for some history on this hardware.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
Currently inoperable due to (at least) a missing console cable.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginseng&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Ginseng used to be our fileserver, before aspartame and the netapp took over.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Pentium Dual Core E2180&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/s3000ah_tps_1_1.pdf Intel S3000AHV Motherboard]&lt;br /&gt;
* 4 &amp;amp;times; 640 GB Western-Digital Caviar Blue in [[wikipedia:Nested_RAID_levels#RAID_10_.28RAID_1.2B0.29|RAID 10]] behind a [http://www.3ware.com/products/serial_ata2-9650.asp 3ware 9650SE RAID card].&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;calum&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Calum used to be our main server and was named after Calum T Dalek.  Purchased new by the club in 1994. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* SPARCserver 10 (headless SPARCstation 10)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;paza&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An iMac G3 that was used as a dumb terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 233Mhz PowerPC 740/750&lt;br /&gt;
* 96 MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;romana&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Romana was a BeBox that has been in the CSC&#039;s possession since long before BeOS became defunct.&lt;br /&gt;
&lt;br /&gt;
Confirmed on March 19th, 2016 to be fully functional. An SSHv1 compatible client was installed from http://www.abstrakt.ch/be/ and a compatible firewalled daemon was started on Sucrose (living in /root, prefix is /root/ssh-romana). The insecure daemon is to be used a bastion host to jump to hosts only supporting &amp;gt;=SSHv2. The mail daemon on the BeBox has also been configured to send mail through mail.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 PowerPC based processors&lt;br /&gt;
* Stylish Blinken processor-load lights&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-citrate was an SGI O2 machine.&lt;br /&gt;
&lt;br /&gt;
In order to net boot you need to set /proc/sys/net/ipv4/ip_no_pmtu_disc to 1. When the O2 boots, hit F5 at the boot menu and type bootp():.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* SGI O2 MIPS processor&lt;br /&gt;
* 423 MB (?) RAM&lt;br /&gt;
* 2 &amp;amp;times; 2 GB hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;acesulfame-potassium&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An old office terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium 4 2.67GHz&lt;br /&gt;
* 1GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ABIT_VT7.pdf ABIT VT7] Motherboard&lt;br /&gt;
* ATI Radeon 7000&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;skynet&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
skynet was a Sun E6500 machine donated by Sanjay Singh. It was never fully set up.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 15 full CPU/memory boards&lt;br /&gt;
** 2x UltraSPARC II 464MHz / 8MB Cache Processors&lt;br /&gt;
** ??? RAM?&lt;br /&gt;
* 1 I/O board (type=???)&lt;br /&gt;
** ???x disks?&lt;br /&gt;
* 1 CD-ROM drive&lt;br /&gt;
&lt;br /&gt;
*[http://mirror.csclub.uwaterloo.ca/csclub/sun_e6500/ent6k.srvr/ e6500 documentation (hosted on mirror, currently dead link)]&lt;br /&gt;
*[http://docs.oracle.com/cd/E19095-01/ent6k.srvr/ e6500 documentation (backup link)]&lt;br /&gt;
*[http://www.e6500.com/ e6500]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;freebsd&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
FreeBSD was a virtual machine with FreeBSD installed.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Newer software&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;rainbowdragoneyes&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Rainbowdragoneyes was our Lemote Fuloong MIPS machine. This machine is aliased to rde.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 800MHz MIPS Loongson 2f CPU&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;denardo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Due to some instability, general uselessness, and the acquisition of a more powerful SPARC machine from MFCF, denardo was decommissioned in February 2015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Sun Fire V210&lt;br /&gt;
* TI UltraSparc IIIi (Jalapeño)&lt;br /&gt;
* 2 GB RAM&lt;br /&gt;
* 160 GB RAID array&lt;br /&gt;
* ALOM on denardo-alom.csclub can be used to power machine on/off&lt;br /&gt;
==&#039;&#039;artificial-flavours&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Artificial-flavours was our secondary (backup services) server. It used to be an office terminal. It was decommissioned in February 2015 and transferred to the ownership of Women in Computer Science (WiCS).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Celeron 3.2GHz&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/Biostar_P4M80-M4.pdf Biostar P4M80-M4] Motherboard&lt;br /&gt;
* Western-Digital 80 GB ATA hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Potassium-citrate is a dual-processor Alpha machine. It is on extended loan from pbarfuss.&lt;br /&gt;
&lt;br /&gt;
It is temporarily decommissioned pending the reinstallation of a supported operating system (such as OpenBSD).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Alphaserver CS20 (2 833MHz EV68al CPUs)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
* 36 GB Seagate SCSI hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-nitrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This was a Sun Fire E2900 from a decommissioned MFCF compute cluster. It had a SPARC architecture and ran OpenBSD, unlike many of our other systems which are x86/x86-64 and Linux/Debian. After multiple unsuccessful attempts to boot a modern Linux kernel and possible hardware instability, it was determined to be non-cost-effective and non-effort-effective to put more work into running this machine. The system was reclaimed by MFCF where someone from CS had better luck running a suitable operating system (probably Solaris).&lt;br /&gt;
&lt;br /&gt;
The name is from saltpetre, because sparks.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 24 CPUs&lt;br /&gt;
* 90GB main memory&lt;br /&gt;
* 400GB scratch disk local storage in /scratch-potassium-nitrate&lt;br /&gt;
&lt;br /&gt;
There is a [[Sun 2900 Strategy Guide|setup guide]] available for this machine.&lt;br /&gt;
&lt;br /&gt;
See also [[Sun 2900]].&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;taurine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: On August 21, 2019, just before 2:30PM EDT, we were informed that taurine caught fire&#039;&#039;&#039;. As a result, taurine has been decommissioned as of Fall 2019.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 136 GB LVM volume group&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Virtual machines&lt;br /&gt;
* BitlBee IRC instant messaging gateway (localhost only)&lt;br /&gt;
*[[ident]] server to maintain high connection cap to freenode&lt;br /&gt;
* Runs ssh on ports 21,22,53,80,81,443,8000,8080 for user&#039;s convenience.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;dextrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
dextrose was a [[#taurine|taurine]] clone donated by CSCF and was decommissioned in Fall 2019 after being replaced with a more powerful server.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sucrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
sucrose was a [[#taurine|taurine]] clone donated by CSCF. It was decommissioned in Fall 2019 following multiple hardware failures.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;goto80&#039;&#039;==&lt;br /&gt;
&#039;&#039;&#039;Note (2022-10-25): This seems to have gone missing or otherwise left our hands.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This was small ARM machine we picked up in order to have similar hardware to the Real Time Operating Systems (CS 452) course. It has a [[TS-7800_JTAG|JTAG]] interface. Located was the office on the top shelf above strombola.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 500 MHz Feroceon (ARM926ej-s compatible) processor&lt;br /&gt;
* ARMv5TEJ architecture&lt;br /&gt;
&lt;br /&gt;
Use -march=armv5te -mtune=arm926ej-s options to GCC.&lt;br /&gt;
&lt;br /&gt;
For information on the TS-7800&#039;s hardware see here:&lt;br /&gt;
http://www.embeddedarm.com/products/board-detail.php?product=ts-7800&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;nullsleep&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
nullsleep is an [http://csclub.uwaterloo.ca/misc/manuals/ASRock_ION_330.pdf ASRock ION 330] machine given to us by CSCF and funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It&#039;s decommissioned on 2023-03-20 due to repeated unexpected shutdown. Replaced by [[#powernap|powernap]]. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel® Dual Core Atom™ 330&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
* NVIDIA® ION™ graphics&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* DVD Burner&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Nullsleep has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
Nullsleep runs MPD for playing music. Control of MPD is available only to users in the &amp;quot;audio&amp;quot; group.&lt;br /&gt;
Music is located in /music on the office terminal&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;bit-shifter&#039;&#039; ==&lt;br /&gt;
bit-shifter was an office terminal, decommissioned April 2023 due to extended age. It was upgraded to the same specs as Strombola at an unknown point in time.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core 2 Quad CPU Q8300&lt;br /&gt;
* 4GB RAM&lt;br /&gt;
* Nvidia GeForce GT 440&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Jacob Parker&#039;s Firewire Card&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;strombola&#039;&#039;==&lt;br /&gt;
Strombola was an office terminal named after Gordon Strombola. It was retired in April 2023.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium G4600 2 cores @ 3.6Ghz&lt;br /&gt;
* 8 GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Strombola used to have integrated 5.1 channel sound before we got new speakers and moved audio stuff to nullsleep.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;gwem&#039;&#039; ==&lt;br /&gt;
gwem was an office terminal that was created because AMD donated a graphics card. It entered CSC service in February 2012.&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
&lt;br /&gt;
* AMD FX-8150 3.6GHz 8-Core CPU&lt;br /&gt;
* 16 GB RAM&lt;br /&gt;
* AMD Radeon 6870 HD 1GB GPU&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ga-990fxa-ud7_e.pdf Gigabyte GA-990FXA-UD7] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;maltodextrin&#039;&#039; ==&lt;br /&gt;
(*specs are outdated at least as of 2023-05-27*)&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
Maltodextrin was an office terminal. It was upgraded in Spring 2014 after an unidentified failure. Not operational (no video output) as of July 2022.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i3-4130 @ 3.40 GHz&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/E8425_H81I_PLUS.pdf ASUS H81-PLUS] Motherboard&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;natural-flavours&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Natural-flavours is an office terminal; it used to be our mirror.&lt;br /&gt;
&lt;br /&gt;
In Fall 2016, it received a major upgrade thanks the MathSoc&#039;s Capital Improvement Fund.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i7-6700k&lt;br /&gt;
* 2x8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Cup Holder (DVD drive has power, but not connected to mother board)&lt;br /&gt;
= UPS =&lt;br /&gt;
&lt;br /&gt;
All of the machines in the MC 3015 machine room are connected to one of our UPSs.&lt;br /&gt;
&lt;br /&gt;
All of our UPSs can be monitored via CSCF:&lt;br /&gt;
&lt;br /&gt;
* MC3015-UPS-B2&lt;br /&gt;
* mc-3015-e7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced July 2014) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-e7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-f7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced Feb 2017) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-f7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2010) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2004) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
&lt;br /&gt;
We will receive email alerts for any issues with the UPS. Their status can be monitored via [[SNMP]].&lt;br /&gt;
&lt;br /&gt;
TODO: Fix labels &amp;amp; verify info is correct &amp;amp; figure out why we can&#039;t talk to cacti.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5461</id>
		<title>Full Flash and Centralised Backup Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5461"/>
		<updated>2025-11-04T05:05:32Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;NOTE: SEE [[Infrastructure Renewal Plan]] for more up to date plan&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Otherwise called FFCBP. This is a plan written by Siracha (s23adhik) to transition all of csc&#039;s storage from New Netapp to a full flash array, with everything being centralized and backed up.&lt;br /&gt;
&lt;br /&gt;
== Phase 1: Migrating off of New Netapp (Complete) ==&lt;br /&gt;
Connect a donated server (Dell R730 from CSCF) to the disk shelves in E7, and get them all connected. Then setup a zfs array and move over the entire &amp;lt;code&amp;gt;/users&amp;lt;/code&amp;gt; directory to the server. &lt;br /&gt;
&lt;br /&gt;
This part has been completed, and the server was named Ranch.&lt;br /&gt;
&lt;br /&gt;
== Phase 2: UPS replacement &amp;amp; beginning flash storage acquisition ==&lt;br /&gt;
The UPS in rack E7, which powers the disk shelves is in a degraded state and will only last a few minutes in case of a power outage. Hence it needs to be replaced, will be getting a 4kw, or a 5kw UPS because we also want to put essential services onto this new UPS.&lt;br /&gt;
&lt;br /&gt;
On another note, when the M4 move occurs, we likely wont need to worry about UPS&#039;s anymore?&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5444</id>
		<title>Full Flash and Centralised Backup Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5444"/>
		<updated>2025-10-20T23:51:01Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Otherwise called FFCBP. This is a plan written by Siracha (s23adhik) to transition all of csc&#039;s storage from New Netapp to a full flash array, with everything being centralized and backed up.&lt;br /&gt;
&lt;br /&gt;
== Phase 1: Migrating off of New Netapp (Complete) ==&lt;br /&gt;
Connect a donated server (Dell R730 from CSCF) to the disk shelves in E7, and get them all connected. Then setup a zfs array and move over the entire &amp;lt;code&amp;gt;/users&amp;lt;/code&amp;gt; directory to the server. &lt;br /&gt;
&lt;br /&gt;
This part has been completed, and the server was named Ranch.&lt;br /&gt;
&lt;br /&gt;
== Phase 2: UPS replacement &amp;amp; beginning flash storage acquisition ==&lt;br /&gt;
The UPS in rack E7, which powers the disk shelves is in a degraded state and will only last a few minutes in case of a power outage. Hence it needs to be replaced, will be getting a 4kw, or a 5kw UPS because we also want to put essential services onto this new UPS.&lt;br /&gt;
&lt;br /&gt;
On another note, when the M4 move occurs, we likely wont need to worry about UPS&#039;s anymore?&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5443</id>
		<title>Full Flash and Centralised Backup Plan</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Full_Flash_and_Centralised_Backup_Plan&amp;diff=5443"/>
		<updated>2025-10-20T21:22:34Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;Otherwise called FFCBP. This is a plan written by Siracha (s23adhik) to transition all of csc&amp;#039;s storage from New Netapp to a full flash array, with everything being centralized and backed up.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Otherwise called FFCBP. This is a plan written by Siracha (s23adhik) to transition all of csc&#039;s storage from New Netapp to a full flash array, with everything being centralized and backed up.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Vaultwarden&amp;diff=5434</id>
		<title>Vaultwarden</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Vaultwarden&amp;diff=5434"/>
		<updated>2025-10-02T01:43:39Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Can be found at; https://pass.csclub.uwaterloo.ca/&lt;br /&gt;
&lt;br /&gt;
You have to manually make an account by pressing &#039;Create Account&#039;&lt;br /&gt;
&lt;br /&gt;
It&#039;s doesn&#039;t integrate with OAuth, or LDAP so we can&#039;t auto-create the accounts&lt;br /&gt;
&lt;br /&gt;
It runs on kubernetes&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Mail&amp;diff=5417</id>
		<title>Mail</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Mail&amp;diff=5417"/>
		<updated>2025-08-11T07:26:01Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Technical Details */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mail services are currently handled by [[Machine_List#mail|the mail container]] on [[Machine_List#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
== Reading your mail ==&lt;br /&gt;
&lt;br /&gt;
You can use any user agent that supports maildir locally (mutt, alpine, etc), and any client that supports IMAP either locally or remotely. We also have webmail.&lt;br /&gt;
&lt;br /&gt;
Here are the details:&lt;br /&gt;
&lt;br /&gt;
* maildir&lt;br /&gt;
** Location: $HOME/.maildir/&lt;br /&gt;
&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
** URL: https://mail.csclub.uwaterloo.ca/&lt;br /&gt;
&lt;br /&gt;
* POP3&lt;br /&gt;
** No longer supported.&lt;br /&gt;
&lt;br /&gt;
* IMAP&lt;br /&gt;
** Hostname: mail.csclub.uwaterloo.ca&lt;br /&gt;
** Port: 143 (IMAP), 993 (IMAPS)&lt;br /&gt;
&lt;br /&gt;
* SMTP&lt;br /&gt;
** Hostname: mail.csclub.uwaterloo.ca&lt;br /&gt;
** SSL encryption and authentication required&lt;br /&gt;
** Port: 25, 465, or 587&lt;br /&gt;
&lt;br /&gt;
== Mail Filtering ==&lt;br /&gt;
Mail filtering allows you to automatically organize mails into different places, like putting potential spam mail into Junk folder, or to put notifications into a separate folder to make your inbox clean.&lt;br /&gt;
&lt;br /&gt;
Mail filtering can be done by writing a sieve script. Traditionally mail filtering is done through procmail, but it&#039;s currently being phased out due to its complex syntax and unmaintained state.&lt;br /&gt;
&lt;br /&gt;
The easiest way to do it is to use the Filters setting on our [https://mail.csclub.uwaterloo.ca Webmail]. You can either edit with the GUI, or import a script. A simple script that puts suspected spam into &amp;quot;Junk&amp;quot; and puts syscom emails into &amp;quot;Mailing List&amp;quot; folder looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
require [&amp;quot;fileinto&amp;quot;];&lt;br /&gt;
# rule:[Spam]&lt;br /&gt;
if allof (header :contains &amp;quot;X-Spam-Level&amp;quot; &amp;quot;******&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
	fileinto &amp;quot;Junk&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
# rule:[Mailing List]&lt;br /&gt;
if anyof (header :contains &amp;quot;list-id&amp;quot; &amp;quot;syscom.csclub.uwaterloo.ca&amp;quot;, header :contains &amp;quot;list-id&amp;quot; &amp;quot;syscom-alerts.csclub.uwaterloo.ca&amp;quot;, header :contains &amp;quot;list-id&amp;quot; &amp;quot;ceo.csclub.uwaterloo.ca&amp;quot;)&lt;br /&gt;
{&lt;br /&gt;
	fileinto &amp;quot;Mailing List&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For more advanced use of sieve check out [https://doc.dovecot.org/2.3/configuration_manual/sieve/examples/ Pigeonhole Sieve examples - Dovecot].&lt;br /&gt;
&lt;br /&gt;
== Mail User Agents ==&lt;br /&gt;
Here are instructions on how to access your CSC email using some common Mail User Agents (a.k.a. &amp;quot;email clients&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
=== Apple Mail ===&lt;br /&gt;
Open the Mail app. On the Menu Bar, click on &#039;Mail&#039;, then &#039;Add account&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Apple_mail_select_account_provider.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Select &#039;Other mail account&#039;, then &#039;Continue&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Apple_mail_add_a_mail_account.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Fill in your real name, your CSC email address (should be watiam_id@csclub.uwaterloo.ca), and your CSC password. Click &#039;Sign in&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Apple_mail_imap_details.png|300px]]&lt;br /&gt;
&lt;br /&gt;
You will get an error saying &#039;Unable to verify account name or password&#039;. Fill in the details as shown above, then click &#039;Sign in&#039;.&lt;br /&gt;
Make sure to specify your WatIAM username as the username, and use &amp;lt;code&amp;gt;mail.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; for the incoming/outgoing&lt;br /&gt;
mail servers.&lt;br /&gt;
&lt;br /&gt;
[[File:Apple_mail_select_apps_to_use_with_account.png|300px]]&lt;br /&gt;
&lt;br /&gt;
Finally, check &#039;Mail&#039;, and click &#039;Done&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Apple_mail_mailboxes_button.png|200px]]&lt;br /&gt;
&lt;br /&gt;
If you had an existing Mail account, you will need to click on the &#039;Mailboxes&#039; button to see your CSC account. There will be a dropdown&lt;br /&gt;
button beside &#039;Inboxes&#039; on the left hand side where you can toggle between different inboxes.&lt;br /&gt;
&lt;br /&gt;
=== Windows Mail ===&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;: Windows Mail can be &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; slow some times. I have no idea why. If you&#039;re looking for a decent email client on Windows, I strongly suggest using Thunderbird or Evolution instead.&lt;br /&gt;
&lt;br /&gt;
Open the Mail app (as of this writing, 2021-04-23, its icon is a blue envelope). Click on &#039;Accounts&#039; on the left hand side, then click on the &#039;+ Add account&#039; button. Select &#039;Advanced setup&#039;:&lt;br /&gt;
&lt;br /&gt;
[[File:Windows_mail_choose_account_type.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Then choose &#039;Internet email&#039;:&lt;br /&gt;
&lt;br /&gt;
[[File:Windows_mail_advanced_setup_type.PNG|300px]]&lt;br /&gt;
&lt;br /&gt;
Here are some of the settings you&#039;ll need (replace your username, address, etc.):&lt;br /&gt;
&lt;br /&gt;
[[File:Windows_mail_internet_account_info_1.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Here are the rest:&lt;br /&gt;
&lt;br /&gt;
[[File:Windows_mail_internet_account_info_2.PNG|400px]]&lt;br /&gt;
&lt;br /&gt;
Then click &#039;Sign in&#039;. It may take you a &amp;lt;i&amp;gt;very&amp;lt;/i&amp;gt; long time to connect for the first time, especially if Windows is doing one if its dreaded updates in the background. If it&#039;s still hanging after a few hours, it might be a good idea to close the window and try again.&lt;br /&gt;
&lt;br /&gt;
Once you&#039;re signed in, you should be able to see your CSC account in the Mail app on the left hand side.&lt;br /&gt;
&lt;br /&gt;
=== Gmail (SMTP Relay) ===&lt;br /&gt;
It is possible to [https://support.google.com/mail/answer/6304825 link third-party email accounts to Gmail]. Here&#039;s one way to do it.&lt;br /&gt;
&lt;br /&gt;
Login to Gmail, go to Settings, and then under &#039;Accounts and Import&#039;, click &#039;Add another email address&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_settings_accounts_1.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Fill in your real name and CSC email address (should be watiam_id@csclub.uwaterloo.ca). I would suggest unchecking the &#039;Treat as an alias&#039;&lt;br /&gt;
box unless you want your CSC and Gmail addresses to be treated the same. See more info [https://support.google.com/a/answer/1710338 here].&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_add_another_email_address_you_own.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Fill in your CSC username and password:&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_add_account_credentials.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Google will send a confirmation email to your CSC address. Either click on the link in the email or enter the confirmation code.&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_add_address_confirmation.png|600px]]&lt;br /&gt;
&lt;br /&gt;
If you return to Gmail, you should now see your CSC account under your settings. I suggest selecting the &#039;Reply from the same address the message was sent to&#039;&lt;br /&gt;
option.&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_settings_accounts_2.png|800px]]&lt;br /&gt;
&lt;br /&gt;
Now, if you click on the &#039;Compose&#039; button on the left hand side, you should be able to select your CSC address as the sender.&lt;br /&gt;
&lt;br /&gt;
[[File:Gmail_choose_sender.png|600px]]&lt;br /&gt;
&lt;br /&gt;
If you want to receive your CSC messages via Gmail, just append your Gmail address to the end of the &amp;lt;code&amp;gt;.forward&amp;lt;/code&amp;gt; file in your home directory on the CSC servers (it needs to be on a new line).&lt;br /&gt;
&lt;br /&gt;
=== Outlook Desktop ===&lt;br /&gt;
&lt;br /&gt;
This is probably the world&#039;s most powerful email client, but you need to jump through a lot of hoops to setup your CSC email with it. Luckily I&#039;ve done those for you so just follow these steps:&lt;br /&gt;
&lt;br /&gt;
[[File:Ol1.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Open Outlook and click File at the top left.&lt;br /&gt;
&lt;br /&gt;
[[File:Ol2.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click Account Settings and then Manage Profiles.&lt;br /&gt;
&lt;br /&gt;
[[File:Ol3.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click Email accounts...&lt;br /&gt;
&lt;br /&gt;
[[File:Ol4.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Click New...&lt;br /&gt;
&lt;br /&gt;
[[File:Ol5.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Enter your name, CSC email and password. If you have an email alias, don&#039;t use your alias, use your QuestID@csclub.uwaterloo.ca email. Click Next &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ol6.png|600px]]&lt;br /&gt;
&lt;br /&gt;
It will start searching for your account, this can take a minute or two.&lt;br /&gt;
&lt;br /&gt;
[[File:Ol7.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Once it finishes configuring it you&#039;ll get a test email.&lt;br /&gt;
&lt;br /&gt;
[[File:Ol8.png|600px]]&lt;br /&gt;
&lt;br /&gt;
Uncheck Set up Outlook Mobile on my phone (unless you want to), and check Change account settings. Then click Next &amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:Ol9.png|600px]]&lt;br /&gt;
&lt;br /&gt;
If you have an email alias, you can now change your email to that in the Email Address field. Don&#039;t change your logon info. You can click More Settings to change your mailbox name, or click Finish (setup is complete).&lt;br /&gt;
&lt;br /&gt;
[[File:Ol10.png|600px]]&lt;br /&gt;
&lt;br /&gt;
You can change the name here. That&#039;s it. I&#039;ve provided the other two tabs&#039; configs below just in case anyone (including future me) needs it.&lt;br /&gt;
&lt;br /&gt;
[[File:Ol11.png|600px]]&lt;br /&gt;
[[File:Ol12.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Gnus ===&lt;br /&gt;
&lt;br /&gt;
Gnus is one of the MUAs built into GNU Emacs.  Gnus is very powerful and flexible, and comes with several &amp;quot;backend&amp;quot;s out of the box for reading newsgroups, email, RSS feeds, and more.  Over the years people have written many other backends for it as well.&lt;br /&gt;
&lt;br /&gt;
To get started using Gnus for reading your CSC mail over IMAPS, you can start with the following simple configuration based on Gnus&#039;s &amp;lt;code&amp;gt;nnimap&amp;lt;/code&amp;gt; backend:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
(setq mail-user-agent &#039;gnus-user-agent&lt;br /&gt;
      read-mail-command &#039;gnus&lt;br /&gt;
      gnus-select-method &#039;(nnnil &amp;quot;&amp;quot;)&lt;br /&gt;
      gnus-secondary-select-methods&lt;br /&gt;
      &#039;((nnimap &amp;quot;csc&amp;quot;&lt;br /&gt;
                (nnimap-stream tls)&lt;br /&gt;
                (nnimap-address &amp;quot;mail.csclub.uwaterloo.ca&amp;quot;)&lt;br /&gt;
                (nnimap-user &amp;quot;abandali&amp;quot;))))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;gnus-secondary-select-methods&amp;lt;/code&amp;gt; variable set above is the most important bit.&lt;br /&gt;
&lt;br /&gt;
For reference sake, here&#039;s how we can do client-side mail splitting in Gnus: say we want to move all messages with a &amp;lt;code&amp;gt;X-Spam-Flag&amp;lt;/code&amp;gt; header of &amp;lt;code&amp;gt;YES&amp;lt;/code&amp;gt; to the Junk folder; here&#039;s how we tell Gnus to do that:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
(setq gnus-secondary-select-methods&lt;br /&gt;
      &#039;((nnimap &amp;quot;csc&amp;quot;&lt;br /&gt;
                (nnimap-stream tls)&lt;br /&gt;
                (nnimap-address &amp;quot;mail.csclub.uwaterloo.ca&amp;quot;)&lt;br /&gt;
                (nnimap-user &amp;quot;abandali&amp;quot;)&lt;br /&gt;
                (nnimap-inbox &amp;quot;INBOX&amp;quot;)&lt;br /&gt;
                (nnimap-split-methods &#039;nnimap-split-fancy)&lt;br /&gt;
                (nnimap-split-fancy&lt;br /&gt;
                 (|&lt;br /&gt;
                  ;; move spam to Junk&lt;br /&gt;
                  (&amp;quot;X-Spam-Flag&amp;quot; &amp;quot;YES&amp;quot; &amp;quot;Junk&amp;quot;)&lt;br /&gt;
                  ;; catch-all; leave everything else in inbox&lt;br /&gt;
                  &amp;quot;INBOX&amp;quot;)))))&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gnus has a plethora of useful and complex features, and one cat get very fancy with it.  But that is left as an exercise for the [https://www.gnu.org/software/emacs/manual/gnus.html interested reader]. :-)&lt;br /&gt;
&lt;br /&gt;
== Technical Details ==&lt;br /&gt;
&lt;br /&gt;
=== Relay Server ===&lt;br /&gt;
At some point IST started enforcing that everyone use their Relay server so we did, info on how we configured it can be found here; [https://uwaterloo.atlassian.net/wiki/spaces/FAST/pages/5212014152/Bulk+Automatic+Email+Configuration]&lt;br /&gt;
&lt;br /&gt;
=== Mail Transfer (Incoming) ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[http://www.postfix.org/ Postfix] is our MTA and runs on mail. Incoming mail is received inbound on smtp/25 or ssmtp/465 and goes through a sequence of filters before being delivered to users.&lt;br /&gt;
&lt;br /&gt;
We are using the following filters for incoming mail, to combat spam and malware:&lt;br /&gt;
&lt;br /&gt;
* zen.spamhaus.org RBL&lt;br /&gt;
* Greylisting with rspamd (see below)&lt;br /&gt;
&lt;br /&gt;
These filters reject truckloads of spam, preventing them from reaching your inbox. Greylisting adds a delay to mail delivery from unknown servers, but after a small number of successes they will be auto-whitelisted. If that isn&#039;t good enough, ask systems-committee@csclub.uwaterloo.ca to whitelist all mail to your address.&lt;br /&gt;
&lt;br /&gt;
=== Spam filtering ===&lt;br /&gt;
Before mail is delivered, it is sent to rspamd for spam checking. rspamd might greylist and/or add headers to the mail. rspamd WON&#039;T reject the mail on its own. It is up to the user&#039;s filter to decide what to do based on the spam headers (usually put mails tagged as spam into a folder like Junk).&lt;br /&gt;
&lt;br /&gt;
=== Mail Delivery ===&lt;br /&gt;
&lt;br /&gt;
User mail is delivered by LMTP to dovecot. This is configurable by adding a comma-separated list of destinations in $HOME/.forward. See aliases(5) for more details.&lt;br /&gt;
&lt;br /&gt;
Dovecot, in turn, runs the mail through user&#039;s sieve filter script (in $HOME/.maildir/sieve/ with the active filer symlink-ed to $HOME/.maildir/.dovecot.sieve). If no sieve script is found, Dovecot defaults to an internal sieve script, which pipes the mail though procmail to maintain compatibility with existing $HOME/.procmailrc scripts. You can write sieve scripts by hand, or use the graphical editor provided by https://mail.csclub.uwaterloo.ca, under Settings/Filters.&lt;br /&gt;
&lt;br /&gt;
Note that procmail compatibility might be removed in the future.&lt;br /&gt;
&lt;br /&gt;
==== Failures ====&lt;br /&gt;
&lt;br /&gt;
If you are out of quota or another error occurs writing to your home directory, dovecot will deliver your message to /var/mail/$USER on the mail server. If that too fails, the server is probably on fire. The message will be returned to the queue where it will eventually bounce.&lt;br /&gt;
&lt;br /&gt;
==== Sieve/ManageSieve ====&lt;br /&gt;
Dovecot also allows editing sieve scripts via ManageSieve protocol on 4190.&lt;br /&gt;
&lt;br /&gt;
==== Forwarding ====&lt;br /&gt;
&lt;br /&gt;
Place the following in $HOME/.forward to keep a local copy of your mail as well as forward it to some other email account. Replace ctdalek with your CSC username, but make sure the backslash stays.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;&lt;br /&gt;
\ctdalek&lt;br /&gt;
calumt@dalek.com&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Mail Retrieval ===&lt;br /&gt;
&lt;br /&gt;
We run [http://www.dovecot.org Dovecot], an IMAP server. It reads messages from $HOME/.maildir, so if you have procmail deliver your mail elsewhere you will be unable to retrieve your mail using IMAP.&lt;br /&gt;
&lt;br /&gt;
=== Mail Submission (Outgoing) ===&lt;br /&gt;
&lt;br /&gt;
On the mail container, outgoing mail is submitted directly to Postfix via the sendmail(1) wrapper or on submission/587. Submitted mail is then queued for delivery to its destination. The other systems have no MTA and instead run sSMTP, which relays mail through the mail container immediately without any queue or daemon.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Nextcloud&amp;diff=5416</id>
		<title>Nextcloud</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Nextcloud&amp;diff=5416"/>
		<updated>2025-08-04T18:24:45Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;span id=&amp;quot;general-administration-notes&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= General Administration Notes =&lt;br /&gt;
&lt;br /&gt;
* To use the admin account, use https://files.csclub.uwaterloo.ca/login?direct=1&amp;amp;noredir=1 with the admin credentials found in syscom machine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;storage-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Storage setup =&lt;br /&gt;
&lt;br /&gt;
NFS mount. Add this to &amp;lt;code&amp;gt;/etc/fstab&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;fs00.csclub.uwaterloo.ca:/nextcloud /var/lib/machines/nextcloud/data nfs bg,vers=3,sec=sys,nosuid,nodev 0 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;container-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Container setup =&lt;br /&gt;
&lt;br /&gt;
See https://wiki.csclub.uwaterloo.ca/Systemd-nspawn .&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;inside-the-container&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Inside the container =&lt;br /&gt;
&lt;br /&gt;
Use &amp;lt;code&amp;gt;machinectl shell nextcloud&amp;lt;/code&amp;gt; to obtain a root shell inside the container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;network-configuration&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Network configuration ==&lt;br /&gt;
&lt;br /&gt;
Add IPv4 and IPv6 address to &amp;lt;code&amp;gt;/etc/network/interfaces&amp;lt;/code&amp;gt; as usual.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;install-server-software&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Install server software ==&lt;br /&gt;
&lt;br /&gt;
Grab the essentials first.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;apt install apt-transport-https curl unzip&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Nextcloud recommends PHP 8.0 (have JIT support, performance go brrr), but debian bullseye doesn&#039;t have it in official repository. So add a thrid-party repository.&lt;br /&gt;
&lt;br /&gt;
Create &amp;lt;code&amp;gt;/etc/apt/sources.list.d/sury-php.list&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;deb https://packages.sury.org/php/ bullseye main&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
And obtain the repository signing key.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;curl -O /etc/apt/trusted.gpg.d/sury-php.gpg https://packages.sury.org/php/apt.gpg&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Finally we can install server software packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;apt install nginx php8.0-fpm php8.0-curl php8.0-dom php8.0-gd php8.0-mbstring php8.0-zip php8.0-mysql php8.0-bz2 php8.0-intl php8.0-redis php8.0-imagick ffmpeg php8.0-bcmath php8.0-ldap php8.0-apcu libmagickcore-6.q16-6-extra/stable&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-nginx&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Setup Nginx ==&lt;br /&gt;
&lt;br /&gt;
See full configuration at https://docs.nextcloud.com/server/latest/admin_manual/installation/nginx.html. Change the PHP upstream to this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;nginx&amp;quot;&amp;gt;upstream php-handler {&lt;br /&gt;
    server unix:/var/run/php/php8.0-fpm.sock;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
Also change &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;/var/www/nextcloud&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
We will use the Mozilla intermediate SSL configuration. See https://ssl-config.mozilla.org/. As of SSL certificate, we will use our wildcard &amp;lt;code&amp;gt;csclub.uwaterloo.ca&amp;lt;/code&amp;gt; certificate. Copy them from xylitol.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;database-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Database setup ==&lt;br /&gt;
&lt;br /&gt;
We&#039;ll use the MariaDB instance at coffee. Create a db user and database for nextcloud there. Make sure it will allow connection from ip address of the nextcloud container.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;install-nextcloud&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Install Nextcloud ==&lt;br /&gt;
&lt;br /&gt;
Download zip from https://nextcloud.com/install/ (find the Archive version). Extract to &amp;lt;code&amp;gt;/var/www/nextcloud&amp;lt;/code&amp;gt;. Change owner of the folder to &amp;lt;code&amp;gt;www-data:www-data&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The DNS should be configured by now. Go to https://files.csclub.uwaterloo.ca. Installation page should be up. Fill in the details to finish the installation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;setup-cron-job&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Setup cron job ==&lt;br /&gt;
&lt;br /&gt;
We goes the &amp;lt;code&amp;gt;systemd&amp;lt;/code&amp;gt; approach. See https://docs.nextcloud.com/server/24/admin_manual/configuration_server/background_jobs_configuration.html#systemd.&lt;br /&gt;
&lt;br /&gt;
Basically, setup a service and a timer. Enable the timer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;ldap-and-oidc-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= LDAP and OIDC setup =&lt;br /&gt;
&lt;br /&gt;
In our setup, OIDC will be used for SSO (Single Sign On) only. User and group information will then be handled via the LDAP plugin. This ensures user can sign in with their WatIM credential (just like Quest and Learn), and their group information is correctly assigned in Nextcloud.&lt;br /&gt;
&lt;br /&gt;
First setup LDAP plugin. Enable &amp;lt;code&amp;gt;LDAP/AD integration&amp;lt;/code&amp;gt; in Apps, then navigate to Settings-Administration-LDAP/AD integration (must be admin). Fill in the information as follows:&lt;br /&gt;
&lt;br /&gt;
* Server&lt;br /&gt;
** ldaps://ldap1.csclub.uwaterloo.ca 636&lt;br /&gt;
** User DN &amp;amp;amp;&amp;amp;amp; Password: blank&lt;br /&gt;
** Base DN: dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
* User&lt;br /&gt;
** LDAP Query: (&amp;amp;amp;(objectClass=member)(!(shadowExpire=1)))&lt;br /&gt;
* Login attributes&lt;br /&gt;
** LDAP Query: (&amp;amp;amp;(|(objectclass=member))(uid=%uid))&lt;br /&gt;
* Group&lt;br /&gt;
** LDAP Query: (&amp;amp;amp;(objectClass=posixGroup)(uniqueMember=*))&lt;br /&gt;
* Advanced&lt;br /&gt;
** Backup (Replica) Host: ldaps://ldap2.csclub.uwaterloo.ca&lt;br /&gt;
** Base User Tree: ou=People,dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
** Base Group Tree: ou=Group,dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
** Group-Member association: uniqueMember&lt;br /&gt;
** Special Attributes: mailLocalAddress&lt;br /&gt;
** Internal Username: uid&lt;br /&gt;
&lt;br /&gt;
If things goes okay, csc users should appear in Nextcloud&#039;s user list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;oidc-setup&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== OIDC setup ==&lt;br /&gt;
&lt;br /&gt;
We use https://github.com/pulsejet/nextcloud-oidc-login for OIDC integration with KeyCloak.&lt;br /&gt;
&lt;br /&gt;
First setup Keycloak. See https://github.com/pulsejet/nextcloud-oidc-login#usage-with-keycloak.&lt;br /&gt;
&lt;br /&gt;
Then install this plugin in Nextcloud. Then, edit Nextcloud&#039;s config file at &amp;lt;code&amp;gt;/var/www/nextcloud/config/config.php&amp;lt;/code&amp;gt;. Here&#039;re some highlights.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&#039;oidc_login_client_id&#039; =&amp;gt; &#039;nextcloud&#039;,&lt;br /&gt;
&#039;oidc_login_client_secret&#039; =&amp;gt; &#039;REDACTED&#039;,&lt;br /&gt;
&#039;oidc_login_provider_url&#039; =&amp;gt; &#039;https://keycloak.csclub.uwaterloo.ca/auth/realms/csc&#039;,&lt;br /&gt;
&#039;oidc_login_end_session_redirect&#039; =&amp;gt; true,&lt;br /&gt;
&#039;oidc_login_logout_url&#039; =&amp;gt; &#039;https://files.csclub.uwaterloo.ca/apps/oidc_login/oidc&#039;,&lt;br /&gt;
&#039;oidc_login_auto_redirect&#039; =&amp;gt; true,&lt;br /&gt;
&#039;oidc_login_redir_fallback&#039; =&amp;gt; true,&lt;br /&gt;
&#039;oidc_login_attributes&#039; =&amp;gt;&lt;br /&gt;
array (&lt;br /&gt;
  &#039;id&#039; =&amp;gt; &#039;preferred_username&#039;,&lt;br /&gt;
  &#039;mail&#039; =&amp;gt; &#039;email&#039;,&lt;br /&gt;
  &#039;ldap_uid&#039; =&amp;gt; &#039;preferred_username&#039;,&lt;br /&gt;
),&lt;br /&gt;
&#039;oidc_login_webdav_enabled&#039; =&amp;gt; true,&lt;br /&gt;
&#039;oidc_login_disable_registration&#039; =&amp;gt; false,&lt;br /&gt;
&#039;oidc_login_proxy_ldap&#039; =&amp;gt; true,&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span id=&amp;quot;speed&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= &#039;&#039;Speed&#039;&#039; =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;memory-caching&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Memory caching ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;redis&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;APCu&amp;lt;/code&amp;gt; are used for caching. See https://docs.nextcloud.com/server/latest/admin_manual/configuration_server/caching_configuration.html. Note that since it&#039;s a local setup, we use a UNIX socket to connect to Redis.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;dedicated-push-notification-server&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
== Dedicated push notification server ==&lt;br /&gt;
&lt;br /&gt;
There&#039;s a dedicated nextcloud client push notification server available, which should drastically reduce server load if a lot of people are using the Nextcloud client.&lt;br /&gt;
&lt;br /&gt;
See https://github.com/nextcloud/notify_push. To set it up:&lt;br /&gt;
&lt;br /&gt;
# Install &amp;amp;quot;Client Push&amp;amp;quot; app from Nextcloud app store&lt;br /&gt;
# Create and enable a systemd service&lt;br /&gt;
# Add reverse proxy configuration to nextcloud&#039;s Nginx config file&lt;br /&gt;
&lt;br /&gt;
You should test the setup, use https://github.com/nextcloud/notify_push/tree/main/test_client. To those who are unfamiliar with Rust, just clone it and run &amp;lt;code&amp;gt;cargo build --release&amp;lt;/code&amp;gt;. You&#039;ll find the binary at &amp;lt;code&amp;gt;target/release&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span id=&amp;quot;miscellaneous&amp;quot;&amp;gt;&amp;lt;/span&amp;gt;&lt;br /&gt;
= Miscellaneous =&lt;br /&gt;
&lt;br /&gt;
* Email setup&lt;br /&gt;
** Just fill it in admin panel.&lt;br /&gt;
* Theme&lt;br /&gt;
** We use https://github.com/mwalbeck/nextcloud-breeze-dark for some KDE vibe. Oh, change the icon too.&lt;br /&gt;
&lt;br /&gt;
=== Common Issues ===&lt;br /&gt;
&lt;br /&gt;
==== 409: Resource in conflict, when auto-uploading ====&lt;br /&gt;
Normally caused by Nextcloud not being able to create a folder for whatever, you can just manually create the folder&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Past_Executive&amp;diff=5415</id>
		<title>Past Executive</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Past_Executive&amp;diff=5415"/>
		<updated>2025-07-28T00:53:10Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Summer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sources for this exec list have been: CSC records, MathNEWS.&lt;br /&gt;
According to the warrior wiki dudes, there was an article about the CSC being founded in the chevron: &#039;&#039;This week on campus&#039;&#039;. The Chevron. January 5 1968. Page 16. -- somebody should get a copy of that.&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
 #define PR President&lt;br /&gt;
 #define VP Vice-president&lt;br /&gt;
 #define TR Treasurer&lt;br /&gt;
 #define SE Secretary&lt;br /&gt;
 #define AV Assistant Vice-president&lt;br /&gt;
 #define SA Sysadmin&lt;br /&gt;
 #define OF Office Manager&lt;br /&gt;
 #define LI Librarian&lt;br /&gt;
 #define WW Webmaster&lt;br /&gt;
&lt;br /&gt;
 #ifdef __HISTORICAL__&lt;br /&gt;
 #define FL Flasher&lt;br /&gt;
 #define DE Deity&lt;br /&gt;
 #define SE-TR Secretary-Treasurer (Position was split)&lt;br /&gt;
 #define FR Fridge Regent (IMAPd)&lt;br /&gt;
 #endif /* __HISTORICAL__ */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;margin-left: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Founding 1967=&lt;br /&gt;
&lt;br /&gt;
 Sponsor - J. Peter Sprung&lt;br /&gt;
 PR: K. Rugger&lt;br /&gt;
 VP: R. Jaques&lt;br /&gt;
 SE-TR: G. Sutherland&lt;br /&gt;
&lt;br /&gt;
 Founding Members:&lt;br /&gt;
 B. Kindree&lt;br /&gt;
 R. Melen&lt;br /&gt;
 V. Neglia&lt;br /&gt;
 R. Charney&lt;br /&gt;
 R. Truman&lt;br /&gt;
 Glenn Berry&lt;br /&gt;
 D. Meek&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Bill Kindred&lt;br /&gt;
 VP: Rick Jacques&lt;br /&gt;
 SE-TR: Graham Sutherland&lt;br /&gt;
&lt;br /&gt;
Committee members: R. Stallwerthy, C. de Vries&lt;br /&gt;
&lt;br /&gt;
=1968=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Bill Kindred&lt;br /&gt;
 VP: Rick Jacques&lt;br /&gt;
 SE-TR: Graham Sutherland&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 SE-TR: Glenn Berry&lt;br /&gt;
&lt;br /&gt;
=1969=&lt;br /&gt;
&lt;br /&gt;
Unknown, only one letter found in the folder &#039;ACM History&#039; addressed to Glenn Berry, which makes it likely that he was SE-TR once again. May be indicated in membership lists. The club appears to have died this academic year.&lt;br /&gt;
&lt;br /&gt;
=1970=&lt;br /&gt;
&lt;br /&gt;
===A note on ACM affiliation===&lt;br /&gt;
&lt;br /&gt;
The first attempt at joining the ACM was started with an informal inquiry Dec 5, 1967. This lead to a series of constitution edits (working towards affiliation) in Winter 1968. There was a break for the spring (no correspondence found, I presume we were waiting on a reply). In the fall records indicate that our constitution and chartering was rejected, further correspondence was sent in Fall 1968 by Glenn Berry. A new inquiry, seemingly unaware of the first was sent Dec 7, 1970&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Rick Beach&lt;br /&gt;
 VP: Lee Santon&lt;br /&gt;
 TR: Randy Melen&lt;br /&gt;
 SE: Vic Neglia&lt;br /&gt;
&lt;br /&gt;
=1971=&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 VP: James H. &amp;quot;Jim&amp;quot; Finch and James W. Welch both signed letters as VP.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 VP: James W. Welch&lt;br /&gt;
&lt;br /&gt;
=1972=&lt;br /&gt;
&lt;br /&gt;
It appears we visited Western and Western visited us this year (there is some reference to a similar occurrence the year previous). Documents from 1973 indicate a termly exec structure, this probably goes back to 1972.&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Mike Campbell&lt;br /&gt;
 VP: Edgar Hew&lt;br /&gt;
 SE-TR: Doug Lacy&lt;br /&gt;
&lt;br /&gt;
There is also stuff from James W. Welch without a position.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Ian McIntosh&lt;br /&gt;
&lt;br /&gt;
=1973=&lt;br /&gt;
&lt;br /&gt;
 Faculty Sponsor: Morven Gentleman&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 SE: Douglas E. Lacy&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Parry&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Parry&lt;br /&gt;
 VP: Ray Walden&lt;br /&gt;
 TR: Slavko Stemberger&lt;br /&gt;
 SE: Mario Festival&lt;br /&gt;
&lt;br /&gt;
=1974=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Russell Crook&lt;br /&gt;
&lt;br /&gt;
=1975-1977=&lt;br /&gt;
&lt;br /&gt;
 Faculty Sponsor: Morven Gentleman??&lt;br /&gt;
&lt;br /&gt;
 Peter Raynham reports (first hand account): president for at least 2 or 3 terms in this period.&lt;br /&gt;
 Sylvia Eng: 1975/6 as some position.&lt;br /&gt;
 Dave Buckingham: a VP at some point&lt;br /&gt;
 Allison Nolan: 1977 time&lt;br /&gt;
 Peter Stevens: 1977&lt;br /&gt;
 Russel Crook???&lt;br /&gt;
&lt;br /&gt;
Dennis Ritchie came. So did Jeffrey D. Ullman.&lt;br /&gt;
&lt;br /&gt;
=1976=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 &amp;lt;code&amp;gt;Progcom: Peter Stevens&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=1977=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
===Spring=== &lt;br /&gt;
&lt;br /&gt;
 PR: Peter Stevens&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Andrzej Jan Taramina&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
=1978=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Peter Stevens&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 TR: K.G. Dykes&lt;br /&gt;
 SE: Kandry Mutheardy&lt;br /&gt;
&lt;br /&gt;
Brian Kernighan gave a talk this term. So did Ken Thompson.&lt;br /&gt;
&lt;br /&gt;
=1979=&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Robert Biddle&lt;br /&gt;
=1987=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Boritz&lt;br /&gt;
 VP: Ted Timar&lt;br /&gt;
 TR: Gayla Boritz&lt;br /&gt;
 SE: Edwin Hoogerbeets&lt;br /&gt;
&lt;br /&gt;
=1988=&lt;br /&gt;
&lt;br /&gt;
Tim Timar - cc&#039;d on memos/mentioned on mathsoc minutes in 1987/88.&lt;br /&gt;
The Sysadmin and Office Manager positions seem to have been created somewhere in here. The &#039;Record Management Profile&#039; that Rob*n Stewart did as an assignment in 1991-1992 for some class at UBC&lt;br /&gt;
indicates the existence of both positions. We acquired an HP-9000 in the summer of 1988 and as this was our first &amp;quot;real&amp;quot; computer (previously we had an IBM PC and terminal), the sysadmin position was created, starting with the Fall 1988 term.&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Jim Boritz&lt;br /&gt;
(Source: https://csclub.uwaterloo.ca/misc/procedure.pdf)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 SA: Wade Richards&lt;br /&gt;
&lt;br /&gt;
=1989=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
https://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989-big.jpg&lt;br /&gt;
&lt;br /&gt;
Left to right:  Jim Boritz (bottom), Wade Richards (top), Ted Timar, ???, Keven Smith, Bill Gates (not exec), Angela Chambers, Ross Ridge (top), Sean Goggin (bottom), ??? &lt;br /&gt;
&lt;br /&gt;
 PR: Barry W. Smith&lt;br /&gt;
 VP: Angela Chambers&lt;br /&gt;
 SE: Sean Goggin&lt;br /&gt;
 SA: Wade Richards / Ross Ridge&lt;br /&gt;
&lt;br /&gt;
(President Kevin Smith confirmed: https://csclub.uwaterloo.ca/misc/procedure.pdf)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Thornton&lt;br /&gt;
 VP: Gayla Boritz&lt;br /&gt;
 TR: David Fenger&lt;br /&gt;
 SE: Kivi Shapiro&lt;br /&gt;
 SA: Reid Pinchback&lt;br /&gt;
&lt;br /&gt;
Assistance to sysadmin: Jim Boritz.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: James Boritz&lt;br /&gt;
 VP: Edmond Bourne&lt;br /&gt;
 SA: Ross Ridge&lt;br /&gt;
&lt;br /&gt;
=1990=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 TR: Jim Thornton&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 TR: Karen Smith&lt;br /&gt;
 SE: Rob*n Stewart&lt;br /&gt;
Robyn/Robin signed her emails as Rob*n and requested to be listed as such on this page.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Wade Richards&lt;br /&gt;
 TR: Carolyn Duke&lt;br /&gt;
 SE: Rob*n Stewart - attended mathsoc meeting on our behalf.&lt;br /&gt;
 Kivi Shapiro - attended mathsoc meeting on our behalf.&lt;br /&gt;
              - Censured by mathsoc for his actions during the election.&lt;br /&gt;
 Shannon Mann - attended mathsoc meeting on our behalf.&lt;br /&gt;
&lt;br /&gt;
=1991=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 VP: Edmond Bourne&lt;br /&gt;
 TR: Carolyn Duke&lt;br /&gt;
 SE: Rob*n Stewart&lt;br /&gt;
 Shannon Mann - attended mathsoc meeting on our behalf.&lt;br /&gt;
&lt;br /&gt;
John McCarthy came this term.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 Jason Knell - attended mathsoc meeting on our and PMC&#039;s behalf.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 TR: Mike Van Lingen&lt;br /&gt;
 Wiktor Wiewiorowski - attended mathsoc meeting on our behalf this term.&lt;br /&gt;
=1992=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Norm Ross&lt;br /&gt;
 SE: Brent Williams&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Dale Wick&lt;br /&gt;
 TR: Stephen A. Mills&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 TR: Mark Plumb&lt;br /&gt;
=1993=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 VP: Tim Prime&lt;br /&gt;
 OF: Dave Ebbo&lt;br /&gt;
 LI: Norm Ross&lt;br /&gt;
&lt;br /&gt;
Other exec for this term: Ellen Hsiang, Sam Coulombe, Peter Gray&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Mark Tompsett &lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Ian Goldberg&lt;br /&gt;
&lt;br /&gt;
=1994=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Ian Goldberg&lt;br /&gt;
 TR: Mark Tompsett&lt;br /&gt;
 SE: Tom Rathbourne&lt;br /&gt;
 LI: Michael Van Biesbrouck&lt;br /&gt;
Norm Ross assisted with finances.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Dale Wick (?)&lt;br /&gt;
 TR: Steve Mills&lt;br /&gt;
 SA: Ian Goldberg (?)&lt;br /&gt;
Norm Ross assisted with finances.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Ross Ridge&lt;br /&gt;
 VP: Tom Rathbourne (?)&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 SA: Zygo Blaxell&lt;br /&gt;
 LI: Michael Van Biesbrouck&lt;br /&gt;
=1995=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Sharlene Schmeichel&lt;br /&gt;
 Amy Brown and Rob Ridge purchased books.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Steve Mills&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Amy Brown (arbrown) &lt;br /&gt;
 VP: Christina Norman (cbnorman)&lt;br /&gt;
 TR: Steven Mills (samills)&lt;br /&gt;
 SE: Allyson Graham (akgraham)&lt;br /&gt;
 SA: Gavin Peters&lt;br /&gt;
=1996=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Nikita Borisov (nborisov)&lt;br /&gt;
 VP: Joseph Deu Ngoc (dtdeungo) &lt;br /&gt;
 TR: Stephen Mills (samills)&lt;br /&gt;
 SE: Sharlene Schmeichel (saschmei)&lt;br /&gt;
 SA: Dave Brown (dagbrown)&lt;br /&gt;
 OF: Somsack Tsai (stsai)&lt;br /&gt;
 LI: Devin Carless (dccarles)&lt;br /&gt;
 FL: Allyson Graham (akgraham)&lt;br /&gt;
 DE: Ian Goldberg (iagoldbe)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Blake Winton (bwinton)&lt;br /&gt;
 VP: Nick Harvey (njaharve)&lt;br /&gt;
 TR: Nikita Borisov (nborisov)&lt;br /&gt;
 SE: Viet-Trung Luu (vluu)&lt;br /&gt;
 SA: Drew Hamilton (awhamilt)&lt;br /&gt;
 OF: Jillian Arnott (jarnott)&lt;br /&gt;
 LI: Ross Ridge (rridge)&lt;br /&gt;
 FL: Devin Carless (dccarles)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Shannon Mann (sjbmann) &lt;br /&gt;
 VP: Joe &amp;quot;Frosh&amp;quot; Deu Ngoc (jtdeungo)    resigned (heavy workload)&lt;br /&gt;
 TR: Michal Van Biesbrouck (mlvanbie) &lt;br /&gt;
 SE: Nikita Borisov (nborisov) &lt;br /&gt;
 SA: Chris Rovers &lt;br /&gt;
 OF: Dax Hutcheon (ddhutche)            became VP upon jtduengo&#039;s resignation&lt;br /&gt;
 LI: Aliz Csenki (acsenki) &lt;br /&gt;
 FL: Aaron Chmielowiec (archmiel) &lt;br /&gt;
 DE: Skuld (no uwuserid yet...)&lt;br /&gt;
=1997=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Dima Brodsky &lt;br /&gt;
 VP: Nikita Borisov (nborisov)&lt;br /&gt;
 TR: Stephen Mills (samills)&lt;br /&gt;
 SE: Evan Jones (ejones)&lt;br /&gt;
 SA: Alex Brodsky&lt;br /&gt;
 OF: Chris Doherty&lt;br /&gt;
 LI: Matt Corks &lt;br /&gt;
 FL: Paul Prescod&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Chris Rovers (cdrovers) &lt;br /&gt;
 VP: Michael van Biesbrouck (mlvanbie) &lt;br /&gt;
 TR: Somsack Tsai (stsai) &lt;br /&gt;
 SE: Matt Corks (mvcorks)&lt;br /&gt;
 SA: Lennart Sorensen (lsorense) &lt;br /&gt;
 LI: Chmielowiec (archmiel) &lt;br /&gt;
 OF: Devin Carless (dccarles) &lt;br /&gt;
 FL: Aaron Chmielowiec (archmiel)&lt;br /&gt;
= 1998 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Suresh Naidu  &lt;br /&gt;
 VP: Viet-Trung Luu &lt;br /&gt;
 TR: Tim Coleman &lt;br /&gt;
 SE: Dax Hutcheon &lt;br /&gt;
 LI: Dax Hutcheon &lt;br /&gt;
 Flasher: Dax Hutcheon &lt;br /&gt;
 WW: Dax Hutcheon &lt;br /&gt;
 SA: Robin Powell&lt;br /&gt;
 OF: Aaron Chmielowiec&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 Position	Name	You might call them...&lt;br /&gt;
 President	roconnor	Russell O&#039;Connor&lt;br /&gt;
 Vice-president	trwcolem	Tim Coleman&lt;br /&gt;
 Treasurer	knzarysk	Karl Zaryski&lt;br /&gt;
 Secretary	(bwinton)	(Blake Winton)&lt;br /&gt;
 Sysadmin	wbiggs	Billy Biggs&lt;br /&gt;
 Librarian	snaidu	Suresh Naidu&lt;br /&gt;
 Flasher	pechrysl	Paul Chrysler&lt;br /&gt;
 Office Manager	dccarles	Devin Carless&lt;br /&gt;
 WWWW	trwcolem	Tim Coleman&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 President	Joe Deu Ngoc	jtdeungo&lt;br /&gt;
 Vice-President	Wai Ling Yee	wlyee&lt;br /&gt;
 Treasurer	Fjord	j2lynn&lt;br /&gt;
 Secretary	Matt Corks	mvcorks&lt;br /&gt;
 Sysadmin	Andrew Hamilton	awhamilt&lt;br /&gt;
&lt;br /&gt;
 World Wide Web Wench	Dax Hutcheon	ddhutche&lt;br /&gt;
 Office Manager	Richard Bell	rlbell&lt;br /&gt;
 Librarian	Damian Gryski	dgryski&lt;br /&gt;
 Flasher	Paul Chrysler	pechrysl&lt;br /&gt;
 Official Deity	Ian Goldberg	iagoldbe&lt;br /&gt;
 Official Chairbeing	Calum T. Dalek	calum&lt;br /&gt;
=1999=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
=2000=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Will Chartrand (wgchartr)&lt;br /&gt;
 VP: Gavin Duggan (geduggan)&lt;br /&gt;
 SA: Lennart Sorensen (lsorense)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
 SA: bioster&lt;br /&gt;
=2001=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
&lt;br /&gt;
=2002=&lt;br /&gt;
&lt;br /&gt;
https://web.archive.org/web/20130715012002/http://www.mathnews.uwaterloo.ca/Issues/mn8902/cscflash.php&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Billy Biggs&lt;br /&gt;
 VP: Stefanus Du Toit&lt;br /&gt;
 TR: Melissa Basinger&lt;br /&gt;
 SE: James Perry&lt;br /&gt;
 SA: Barry Genova&lt;br /&gt;
 LI: Ryan Golbeck&lt;br /&gt;
 WW: Jonathan Beverley&lt;br /&gt;
 Office Manager: Sayan Li&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Alex Pop&lt;br /&gt;
 VP: Melissa Basinger&lt;br /&gt;
 TR: Siyan Li&lt;br /&gt;
 SE: James A Morrison&lt;br /&gt;
 SA: Jonathan Beverley&lt;br /&gt;
 WW: Stefanus Du Toit&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: James A. Morrison&lt;br /&gt;
 VP: Stefanus Du Toit&lt;br /&gt;
 TR: James Perry&lt;br /&gt;
 SE: Michael Biggs&lt;br /&gt;
 SA: Ryan Golbeck&lt;br /&gt;
 LI: Mark Sherry, Cassandra Schopf&lt;br /&gt;
 WW: Stefanus Du Toit&lt;br /&gt;
=2003=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Kannan Vijayan (kvijayan)&lt;br /&gt;
 VP: Meg Darragh (m2darrag)&lt;br /&gt;
 TR: James Perry (jeperry)&lt;br /&gt;
 SE: Wojciech Kosnik (wkosnik)&lt;br /&gt;
 SA: Stefanus Du Toit (sjdutoit)&lt;br /&gt;
 LI: Simon Law (sfllaw)&lt;br /&gt;
 WM: Julie Lavoie (jlavoie)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Stefanus Du Toit (sjdutoit)&lt;br /&gt;
 VP: Meg Darragh (m2darrag)&lt;br /&gt;
 TR: Tor Myklebust (tmyklebu)&lt;br /&gt;
 SE: James Perry (jeperry)&lt;br /&gt;
 SA: Simon Law (sfllaw)&lt;br /&gt;
=2004=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Simon Law (sfllaw)&lt;br /&gt;
 VP: fspacek&lt;br /&gt;
 TR: ljain&lt;br /&gt;
 SE: Julie Lavoie (jlavoie)&lt;br /&gt;
 SA: Tor Myklebust(tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: dnmorton ?&lt;br /&gt;
 VP: Tim Loach (tloach)&lt;br /&gt;
 TR: Michael Biggs (mbiggs)&lt;br /&gt;
 SE: Lesley Northam (lanortha)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: jeperry&lt;br /&gt;
 VP: mtsay&lt;br /&gt;
 TR: Mark Sherry (mdsherry)&lt;br /&gt;
 SE: Tor Myklebust (tmyklebu)&lt;br /&gt;
 SA: jlavoie&lt;br /&gt;
=2005=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: mtsay&lt;br /&gt;
 VP: Lesley Northam (lanortha)&lt;br /&gt;
 TR: Holden Karau (hkarau)&lt;br /&gt;
 SE: domorton&lt;br /&gt;
 SA: Tor Myklebust (tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Mark Sherry (mdsherry)&lt;br /&gt;
 VP: Martin Kess (mdkess)&lt;br /&gt;
 TR: Ali Piccioni (apiccion)&lt;br /&gt;
 SE: Michael Biggs (mbiggs)&lt;br /&gt;
 SA: Tor Myklebust (tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Tim Loach (tloach)&lt;br /&gt;
 VP: Lesley Northam (lanortha)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: The Professor&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
=2006=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Tor Myklebust (tmyklebu)&lt;br /&gt;
 VP: Michael Druker (mdruker)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: Mark Sherry (mdsherry)&lt;br /&gt;
 SA: William O&#039;Connor (woconnor)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: David Bartley (dtbartle)&lt;br /&gt;
 VP: David Belanger (dbelange)&lt;br /&gt;
 TR: David Tenty (daltenty)&lt;br /&gt;
 SE: Chris Evensen (cevensen)&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Martin Kess (mdkess)&lt;br /&gt;
 VP: Mark Sherry (mdsherry)&lt;br /&gt;
 TR: Sylvan L. Mably (slmably)&lt;br /&gt;
 SE: Caelyn McAulay (cmcaulay) &lt;br /&gt;
 SA: William O&#039;Connor (woconnor)&lt;br /&gt;
=2007=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: David Bartley (dtbartle)&lt;br /&gt;
 VP: David Belanger (dbelange)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: David Tenty (daltenty)&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
 WW: jnopporn&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Gaelan D&#039;costa (gdcosta)&lt;br /&gt;
 VP: Kyle Larose (kmlarose)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Erik Louie (elouie)&lt;br /&gt;
 SA: Michael Spang (mspang)&lt;br /&gt;
 LI: David Tenty (daltenty)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: Holden Karau (hkarau)&lt;br /&gt;
 VP: Alex McCausland (amccausl)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Sean Cumming (sgcummin)&lt;br /&gt;
 SA: David Tenty (daltenty)&lt;br /&gt;
 WW: dtbartle / jnopporn&lt;br /&gt;
=2008=&lt;br /&gt;
&lt;br /&gt;
===Winter ===&lt;br /&gt;
 PR: Sean Cumming (sgcummin)&lt;br /&gt;
 VP: Matt Lawrence (m3lawren)&lt;br /&gt;
 TR: Mateusz Tarkowski (mtarkows)&lt;br /&gt;
 SE: Edgar Bering (ebering)&lt;br /&gt;
 SA: Jordan Saunders (jmsaunde)&lt;br /&gt;
&lt;br /&gt;
===Summer ===&lt;br /&gt;
 PR: Brennan Taylor (b4taylor)&lt;br /&gt;
 VP: Qifan Xi (qxi)&lt;br /&gt;
 TR: Matt Lawrence (m3lawren)&lt;br /&gt;
 SE: Nick Guenther (nguenthe)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: Matthew Lawrence (m3lawren)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Michael Gregson (mgregson)&lt;br /&gt;
 SE: James Simpson (j2simpso) resigned for medical reasons, replaced by Dominik &#039;Domo&#039; Chłobowski&lt;br /&gt;
 SA: Kyle Spaans (kspaans)&lt;br /&gt;
=2009=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Michael Gregson (mgregson)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Brennan Taylor (b4taylor)&lt;br /&gt;
 SE: James Simpson (j2simpso)  resigned for business reasons, replaced by Rebecca Putinski (rjputins) &lt;br /&gt;
 SA: Jacob Parker (j3parker) &lt;br /&gt;
 OF: XinChi Yang / Sapphyre Gervais (x23yang / sagervai) (both)&lt;br /&gt;
&lt;br /&gt;
===Spring ===&lt;br /&gt;
 PR: Michael Spang (mspang)&lt;br /&gt;
 VP: Jacob Parker (j3parker)&lt;br /&gt;
 TR: Sapphyre Gervais (sagervai)&lt;br /&gt;
 SE: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SA: Anthony Brennan (a2brenna)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Jacob Parker (j3parker)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Michael Spang (mspang)&lt;br /&gt;
 SE: Brennan Taylor (b4taylor)&lt;br /&gt;
 SA: Michael Ellis (m2ellis)&lt;br /&gt;
 OF: Rebecca Putinski (rjputins)&lt;br /&gt;
=2010=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Kyle Spaans (kspaans)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Sapphyre Gervais (sagervai)&lt;br /&gt;
 SE: Ajnu Jacob (ajacob)&lt;br /&gt;
 SA: Matthew Thiffault (mthiffau)&lt;br /&gt;
 OF: Jacob Parker (j3parker)&lt;br /&gt;
Keyed office staffers: j3camero, jdonland, m2ellis, mimcpher, nsasherr&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Jeff Cameron (j3camero)&lt;br /&gt;
 VP: Brennan Taylor (b4taylor)&lt;br /&gt;
 TR: Vardhan Mudunuru (vmudunur)&lt;br /&gt;
 SE: Matthew Lawrence (m3lawren)&lt;br /&gt;
 SA: Michael Ellis (m2ellis)&lt;br /&gt;
 OF: Edgar Bering (ebering)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Jacob Parker (j3parker)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Rebecca Putinski (rjputins)&lt;br /&gt;
 SE: Kyle Spaans (kspaans)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Amir Sayed Khader (askhader)&lt;br /&gt;
=2011=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Edgar Bering (ebering)&lt;br /&gt;
 VP: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Elana &amp;quot;Alana&amp;quot; Hashman (ehashman)&lt;br /&gt;
 SA: Peter &amp;quot;Bofh&amp;quot; Barfuss (pbarfuss)&lt;br /&gt;
 OF: Marc Burns (Marc Burns)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Matthew Thiffault (mthiffau)&lt;br /&gt;
 VP: Matthew McPherrin (mimcpher)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Kwame Andrew Ansong (kansong)&lt;br /&gt;
 SA: Jeremy Brandon Roman (jbroman)&lt;br /&gt;
 OF: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Katharine Hyatt (kshyatt)&lt;br /&gt;
 TR: Jacob Parker (j3parker)&lt;br /&gt;
 SE: Elana Hashman (ehashman)&lt;br /&gt;
 SA: Anthony &amp;quot;hatguy/hotgay&amp;quot; Brennan (a2brenna)&lt;br /&gt;
 OF: Kyle Spaans (kspaans)&lt;br /&gt;
 LI: Edgar Bering (ebering)&lt;br /&gt;
=2012=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Elana Hashman (ehashman)&lt;br /&gt;
 TR: Jacob Parker (j3parker)&lt;br /&gt;
 SE: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Luqman Aden (laden)&lt;br /&gt;
 LI: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
&lt;br /&gt;
===Summer===&lt;br /&gt;
 PR: Anthony Brennan (a2brenna)&lt;br /&gt;
 VP: Luqman Aden (laden)&lt;br /&gt;
 TR: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SE: Elana Hashman (ehashman)&lt;br /&gt;
 SA: Sarah Harvey (sharvey)&lt;br /&gt;
 OF: Marc Burns (m4burns)&lt;br /&gt;
 LI: John Ladan (jladan)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Salem Talha (satalha)&lt;br /&gt;
 TR: Jennifer Wong (jy2wong)&lt;br /&gt;
 SE: Elana Hashman (ehashman), resigned&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Luqman Aden (laden)&lt;br /&gt;
 LI: John Ladan (jladan)&lt;br /&gt;
=2013=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Anthony Brennan (a2brenna)&lt;br /&gt;
 VP: Marc Burns (m4burns)&lt;br /&gt;
 TR: John Mumford (jsmumfor)&lt;br /&gt;
 SE: Matt Olechnowicz (mgolechn)&lt;br /&gt;
 SA: Sarah Harvey (sharvey)&lt;br /&gt;
 OF: Bryan Coutts (b2coutts)&lt;br /&gt;
 LI: Matthew McPherrin (mimcpher)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Shane Robert Creighton-Young (srcreigh)&lt;br /&gt;
 VP: Visishta Vijayanand (vvijayan)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Youn Jin Kim (yj7kim)&lt;br /&gt;
 SA: Anthony Brennan (a2brenna)&lt;br /&gt;
 OF: Marc Burns (m4burns)&lt;br /&gt;
 FR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Elana Hashman (ehashman)&lt;br /&gt;
 VP: Marc Burns (m4burns)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Edward Lee (e45lee)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Alexis Hunt (aechunt)&lt;br /&gt;
= 2014 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Bryan Coutts (b2coutts)&lt;br /&gt;
 VP: Visishta Vijayanand (vvijayan)&lt;br /&gt;
 TR: Marc Burns (m4burns)&lt;br /&gt;
 SE: Mark Farrell (m4farrel)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Nicholas Black (nablack)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Youn Jin Kim (yj7kim)&lt;br /&gt;
 VP: Luke Franceschini (l3france)&lt;br /&gt;
 TR: Joseph Chouinard (jchouina)&lt;br /&gt;
 SE: Ifaz Kabir (ikabir)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Matthew Thiffault (mthiffau)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Youn Jin Kim (yj7kim)&lt;br /&gt;
 VP: Theodor Belaire (tbelaire)&lt;br /&gt;
 TR: Jonathan Jerel Bailey (jj2baile)&lt;br /&gt;
 SE: Shane Robert Creighton-Young (srcreigh)&lt;br /&gt;
 SA: Alexis Hunt (aechunt)&lt;br /&gt;
 OF: Mark Farrell (m4farrel)&lt;br /&gt;
 LI: Gianni Leonardo Gambetti (glgambet)&lt;br /&gt;
&lt;br /&gt;
= 2015 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Gianni Leonardo Gambetti (glgambet)&lt;br /&gt;
 VP: Luke Franceschini (l3france)&lt;br /&gt;
 TR: Edward Lee (e45lee)&lt;br /&gt;
 SE: Patrick James Melanson (pj2melan)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Shikhar Singh (s285sing)&lt;br /&gt;
 LI: Aishwarya Gupta (a72gupta)&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Luqman Aden (laden)&lt;br /&gt;
 VP: Patrick Melanson (pj2melan)&lt;br /&gt;
 TR: Jonathan Bailey (jj2baile)&lt;br /&gt;
 SE: Keri Warr (kpwarr)&lt;br /&gt;
 SA: Nik Black (nablack)&lt;br /&gt;
 OF: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
 LI: Yomna Nasser (ynasser)&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Simone Hu (ss2hu)&lt;br /&gt;
 VP: Theo Belaire (tbelaire)&lt;br /&gt;
 TR: Jordan Taylore Upiter (jtupiter)&lt;br /&gt;
 SE: Daniel Marin (dmarin)&lt;br /&gt;
 SA: Jordan Xavier Pryde (jxpryde)&lt;br /&gt;
 OF: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
= 2016 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Patrick Melanson (pj2melan)&lt;br /&gt;
 VP: Patrick Melanson (pj2melan)&lt;br /&gt;
 Acting VP, progcom chair: Theo Belaire (tbelaire)&lt;br /&gt;
 TR: Luqman Aden (laden)&lt;br /&gt;
 SE: Naomi Koo (m3koo)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Reila Zheng (wy2zheng)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Luqman Aden (laden)&lt;br /&gt;
 VP: Melissa Angelica Mary Tedesco (matedesc)&lt;br /&gt;
 TR: Jonathan Jerel Bailey (jj2baile)&lt;br /&gt;
 SE: Aditya Shivam Kothari (askothar)&lt;br /&gt;
 SA: Jordan Xavier Pryde (jxpryde)&lt;br /&gt;
 OF: Zachary Seguin (ztseguin)&lt;br /&gt;
 LI: Charlie Wang (s455wang)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Charlie Wang (s455wang)&lt;br /&gt;
 VP: Bryan Coutts (b2coutts)&lt;br /&gt;
 TR: Laura Song (lhsong)&lt;br /&gt;
 SE: Uday Barar (ubarar)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Jamie Sinn (j2sinn)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
&lt;br /&gt;
= 2017 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Wilson Cheang (wyschean)&lt;br /&gt;
 VP: Tristan Hume (tghume)&lt;br /&gt;
 TR: Jordan Pryde (jxpryde)&lt;br /&gt;
 SE: Amir Fata (aafata)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Felix Bauckholt (fbaukcho)&lt;br /&gt;
 LI: Connor Murphy (cfmurph)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Felix Bauckholt (fbauckho)&lt;br /&gt;
 VP: Zichuan Wei (z34wei)&lt;br /&gt;
 TR: Laura Song (lhsong)&lt;br /&gt;
 SE: Bo Mo (bzmo)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Uday Barar (ubarar)&lt;br /&gt;
 LI: Patrick Melanson (pj2melan)&lt;br /&gt;
 FR: Uday Barar (ubarar)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Melissa Tedesco (matedesc)&lt;br /&gt;
 VP: Victor Brestoiu (vabresto)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 SE: Marc Mailhot (mnmailho)&lt;br /&gt;
 SA: Jordan Pryde (jxpryde)&lt;br /&gt;
 OF: Zoë Laing (zlaing)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
= 2018 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Patrick Melanson (pj2melan)&lt;br /&gt;
 VP: Charlie Wang (s455wang)&lt;br /&gt;
 TR: Ashley Dewiputri Pranajaya (adpranaj)&lt;br /&gt;
 SE: Arshia Mufti (a2mufti)&lt;br /&gt;
 SA: Jordan Pryde (jxpryde)&lt;br /&gt;
 OF: Zoë Laing (zlaing)&lt;br /&gt;
 LI: Zichuan Wei (z34wei)&lt;br /&gt;
 FR: Uday Barar (ubarar)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Melissa Tedesco (matedesc)&lt;br /&gt;
 VP: Dhruv Jauhar (djauhar)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 AV: Marc Mailhot (mnmailho)&lt;br /&gt;
 SA: Jennifer Zhou (c7zou)&lt;br /&gt;
 OF: Aditya Thakral (a3thakra)&lt;br /&gt;
 LI: Archer Zhang (z577zhan)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Zichuan Wei (z34wei)&lt;br /&gt;
 VP: Uday Barar (ubarar)&lt;br /&gt;
 TR: Alex Tomala (actomala)&lt;br /&gt;
 AV: Neil Parikh (n3parikh)&lt;br /&gt;
 SA: Jennifer Zhou (c7zou)&lt;br /&gt;
 OF: Alexander Zvorygin (azvorygi)&lt;br /&gt;
 LI: Neil Parikh (n3parikh)&lt;br /&gt;
 FR:&lt;br /&gt;
&lt;br /&gt;
= 2019 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Marc Mailhot (mnmailho)&lt;br /&gt;
 VP: Victor Brestoiu (vabresto)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 AV: Aditya Thakral (a3thakra)&lt;br /&gt;
 SA: Charlie Wang (s455wang)&lt;br /&gt;
 OF: Archer Zhang (z577zhan)&lt;br /&gt;
 LI: Rishabh Minocha (rkminoch)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Uday Barar (ubarar)&lt;br /&gt;
 VP: Rajat Malhotra (r24malho)&lt;br /&gt;
 TR: Raghav Sethi (r5sethi)&lt;br /&gt;
 AV: Bo Mo (bzmo)&lt;br /&gt;
 SA: Charlie Wang (s455wang)&lt;br /&gt;
 OF: Hannah Wong (sm7wong)&lt;br /&gt;
 LI: Nolan Munce (nmmunce)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Dhruv Jauhar (djauhar)&lt;br /&gt;
 VP: Aditya Thakral (a3thakra)&lt;br /&gt;
 TR: Rishabh Minocha (rkminoch)&lt;br /&gt;
 AV: Tammy Khalaf (tekhalaf)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Zihan Zhang (z577zhan)&lt;br /&gt;
 LI: Raghav Sethi (r5sethi)&lt;br /&gt;
&lt;br /&gt;
= 2020 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
The office was closed midway through this term due to the COVID-19 pandemic.&lt;br /&gt;
&lt;br /&gt;
The pandemic that threw the University and rest of the world into disarray drove all CSC activity virtual. Though everyone thought the pandemic would quickly be over, the Alpha, then Delta, then Omicron variants resulted in the majority of classes being held online until February 2022.&lt;br /&gt;
&lt;br /&gt;
As a result, the office would stay closed for a full 5 terms, and only reopen in W2022.&lt;br /&gt;
&lt;br /&gt;
 PR: Richard Shi (r27shi)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 TR: Alex Tomala (actomala)&lt;br /&gt;
 AV: Neil Parikh (n3parikh)&lt;br /&gt;
 SA: Amin Bandali (abandali)&lt;br /&gt;
 OF: Alexander Zvorygin (azvorygi)&lt;br /&gt;
 LI: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 FR: Richard Shi (r27shi)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Neil Parikh (n3parikh)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 SA: Amin Bandali (abandali)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Mokai Xu (m92xu)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova) (stepped down as of 2020-11-30)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Edwin Yang (e37yang)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
&lt;br /&gt;
= 2021 =&lt;br /&gt;
In 2021, CSC rapidly expanded the Program Committee, introducing subcommittees including Design, Events, Marketing, Photography, Reps, Discord mods, and Discord bot developers. The website committee also expanded, and the terminal committee was officially repurposed to serve a syscom-in-training role (since the office remained closed and the terminals powered off).&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Kallen Tu (k4tu)&lt;br /&gt;
 VP: Gordon Le (g2le)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Nakul Vijhani (nvijhani)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Kallen Tu (k4tu)&lt;br /&gt;
 VP: Gordon Le (g2le)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Ravindu Angammana (rbangamm)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Dora Su (d43su)&lt;br /&gt;
 VP: Jason Sang (jzsang)&lt;br /&gt;
 TR: Yanni Wang (y3859wan)&lt;br /&gt;
 AV: Anjing Li (a348li)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
 Advising: Neil Parikh (n3parikh)&lt;br /&gt;
&lt;br /&gt;
= 2022 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Juthika Hoque (j3hoque)&lt;br /&gt;
 VP: Eric Huang (e48huang)&lt;br /&gt;
 TR: Eden Chan (e223chan)&lt;br /&gt;
 AV: Dina Orucevic (dmorucev)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Amy Wang (a258wang)&lt;br /&gt;
 OF: Neil Parikh (n3parikh)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Eden Chan (e223chan)&lt;br /&gt;
 VP: Bonnie Peng (b38peng)&lt;br /&gt;
 TR: Sat Arora (s97arora)&lt;br /&gt;
 AV: Haley Song (h79song)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Amy Wang (a258wang)&lt;br /&gt;
 OF: Sat Arora (s97arora)&lt;br /&gt;
 LI: Santiago Montemayor (smontema) (appointed 2022-06-02)&lt;br /&gt;
 FR: Sat Arora (s97arora) (appointed 2022-06-23)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Amy Wang (a258wang)&lt;br /&gt;
 VP: Anna Wang (aj2wang)&lt;br /&gt;
 TR: Simon Zeng (s33zeng)&lt;br /&gt;
 AV: Mabel Kwok (m23kwok)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Mark Chen (m375chen) (appointed 2022-09-21)&lt;br /&gt;
 LI: John Oss (joss) (appointed 2022-10-06)&lt;br /&gt;
 FR: Mark Chen (m375chen) and Simon Zeng (s33zeng) (appointed 2022-09-21)&lt;br /&gt;
&lt;br /&gt;
= 2023 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Sat Arora (s97arora)&lt;br /&gt;
 VP: Ivy Lei (ihlei)&lt;br /&gt;
 TR: Laura Nguyen (l69nguye)&lt;br /&gt;
 AV: Adele Chen (a332chen)&lt;br /&gt;
 SA: Leo Shen (y266shen)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Young Wang (y3285wan)&lt;br /&gt;
 LI: John Oss (joss)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Sat Arora (s97arora)&lt;br /&gt;
 VP: Joshua Kim (j649kim)&lt;br /&gt;
 TR: Amy Wang (a258wang)&lt;br /&gt;
 AV: Andrea Ma (a49ma)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Sean Zhang (q434zhan)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Laura Nguyen (l69nguye)&lt;br /&gt;
 VP: Amol Venkataraman (avenkata)&lt;br /&gt;
 TR: Bryan Chen (b28chen)&lt;br /&gt;
 AV: Amy Wang (a258wang)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Darren Lo (dlslo), Richard Shuai (r2shuai)&lt;br /&gt;
 OF: Ivy Lei (ihlei), Kevin Cui (k8cui)&lt;br /&gt;
&lt;br /&gt;
= 2024 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Ivy Lei (ihlei)&lt;br /&gt;
 VP: Gordon Lin (g3lin)&lt;br /&gt;
 TR: Andrea Ma (a49ma)&lt;br /&gt;
 AV: Saurin Patel (sa23pate)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Darren Lo (dlslo), Richard Shuai (r2shuai)&lt;br /&gt;
 OF: Tiger Ding (t27ding)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Gordon Lin (g3lin)&lt;br /&gt;
 VP: Justin Wang (yw2wang)&lt;br /&gt;
 TR: Andrea Ma (a49ma)&lt;br /&gt;
 AV: Sean Zhang (q434zhan)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Tejas Srikanth (tcsrikan)&lt;br /&gt;
 OF: Bryan Wang (b397wang)&lt;br /&gt;
=== Fall ===&lt;br /&gt;
Nathan Chung resigned half way through the term, and an election was held to elect Ohm Patel as the new sysadmin.&lt;br /&gt;
&lt;br /&gt;
Ivy Fan-Chiang also resigned half way through the term, and Tiger Ding was appointed as the new Office Manager.&lt;br /&gt;
 PR: Iris Liao (a23liao)&lt;br /&gt;
 VP: Siimar Leen Kaur (s32kaur)&lt;br /&gt;
 TR: Grace Feng (g27feng)&lt;br /&gt;
 AV: Ray Cao (r44cao)&lt;br /&gt;
 SA: Nathan Chung (n4chung) resigned, replaced by Ohm Patel (o32patel)&lt;br /&gt;
 WW: Tejas Srikanth (tcsrikan)&lt;br /&gt;
 OF: Ivy Fan-Chiang (qkfanchi) resigned, replaced by Tiger Ding (t27ding)&lt;br /&gt;
&lt;br /&gt;
= 2025 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
Alexandru-Andrei Stan resigned early in the term as the Office Manager, and Dundee Zhang was appointed as the new Office Manager.&lt;br /&gt;
&lt;br /&gt;
Sourojeet Adhikari resigned late into the term as Club President. Enming Yang became Acting President. &lt;br /&gt;
 PR: Sourojeet Adhikari (s23adhik) resigned 2025-03-23, replaced by Enming Yang (emyang) (Acting as of 2025-03-24)&lt;br /&gt;
 VP: Enming Yang (emyang)&lt;br /&gt;
 TR: Samir Sharma (s576shar)&lt;br /&gt;
 AV: Alexandru-Andrei Stan (a2stan)&lt;br /&gt;
 SA: Ohm Patel (o32patel)&lt;br /&gt;
 WW: Ryan Zhu (ry3zhu)&lt;br /&gt;
 OF: Dundee Zhang (dh2zhang) (appointed 2025-01-30)&lt;br /&gt;
 FL: Dundee Zhang (dh2zhang)&lt;br /&gt;
 FR: Alexandru-Andrei Stan (a2stan) (appointed 2025-01-30)&lt;br /&gt;
=== Summer ===&lt;br /&gt;
Grace Feng resigned half way through the term, and Dundee Zhang and Sourojeet Adhikari were appointed as the new Office Managers.&lt;br /&gt;
&lt;br /&gt;
Dundee Zhang resigned from Flasher half way through the term.&lt;br /&gt;
&lt;br /&gt;
Dundee Zhang resigned from President, and Office Manager Thursday July 24th 2025 due to lack of time and personal life issues&lt;br /&gt;
&lt;br /&gt;
 PR: Dundee Zhang (dh2zhang) (resigned 2025-07-24, replaced by Sourojeet Adhikari)&lt;br /&gt;
 VP: Sourojeet Adhikari (s23adhik) &lt;br /&gt;
 TR: Mincy Yang (m299yang)&lt;br /&gt;
 AV: Shaurya Suri (s4suri)&lt;br /&gt;
 SA: Ohm Patel (o32patel)&lt;br /&gt;
 WW: Ryan Zhu (ry3zhu)&lt;br /&gt;
 OF: Grace Feng (g27feng) resigned, replaced by Dundee Zhang (dh2zhang) and Sourojeet Adhikari (s23adhik)&lt;br /&gt;
 FL: Dundee Zhang (dh2zhang) resigned, not replaced&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=New_CSC_Machine&amp;diff=5414</id>
		<title>New CSC Machine</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=New_CSC_Machine&amp;diff=5414"/>
		<updated>2025-07-27T21:22:59Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* After Installing */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Firmware Updates =&lt;br /&gt;
&lt;br /&gt;
Vendors such as Dell provide firmware updates that should be applied before putting new machines into service. Even if the machine&#039;s warranty has expired, security updates are still made available.&lt;br /&gt;
&lt;br /&gt;
It is recommended to use the following sequence when updating firmware on the Dell PowerEdge servers ([https://downloads.dell.com/solutions/general-solution-resources/White%20Papers/Recommended%20Workflow%20for%20Performing%20Firmware%20Updates%20on%20PowerEdge%20Servers.pdf]):&lt;br /&gt;
&lt;br /&gt;
# iDRAC&lt;br /&gt;
# Lifecycle Controller&lt;br /&gt;
# BIOS&lt;br /&gt;
# Diagnostics&lt;br /&gt;
# OS Driver Pack&lt;br /&gt;
# RAID&lt;br /&gt;
# NIC&lt;br /&gt;
# PSU&lt;br /&gt;
# CPLD&lt;br /&gt;
# Other update&lt;br /&gt;
For consumer grade hardware, go to the motherboard vendor&#039;s website and find the way to upgrade the firmware.&lt;br /&gt;
&lt;br /&gt;
= Booting =&lt;br /&gt;
&lt;br /&gt;
* Put the TFTP image in place (if dist-arch pair installed before, you may skip this).&lt;br /&gt;
e.g. extract http://mirror.csclub.uwaterloo.ca/ubuntu/dists/oneiric/main/installer-amd64/current/images/netboot/netboot.tar.gz to caffeine:/srv/tftp/oneiric-amd64&lt;br /&gt;
&lt;br /&gt;
* Force network boot in the BIOS. This may be called &amp;quot;Legacy LAN&amp;quot; or other such cryptic things. If this doesn&#039;t work, boot from CD or USB instead.&lt;br /&gt;
&lt;br /&gt;
It is preferred to use the &amp;quot;alternate&amp;quot; Ubuntu installer image, based on debian-installer, instead of the Ubiquity installer. This installer supports software RAID and LVM out of the box, and will generally make your life easier. If installing Debian, this is the usual installer, so don&#039;t sweat it.&lt;br /&gt;
&lt;br /&gt;
* Most of our newer servers (e.g. PowerEdge R815) need non-free firmware in order to boot. This means that if you are using a new netboot image, it is highly recommended to include the entire non-free firmware bundle in the boot image. See [https://wiki.debian.org/DebianInstaller/NetbootFirmware] for more information.&lt;br /&gt;
* For office terminals, create a boot USB (via dd, for example) and boot from USB.&lt;br /&gt;
&lt;br /&gt;
= Installing =&lt;br /&gt;
&lt;br /&gt;
== debian-installer ==&lt;br /&gt;
&lt;br /&gt;
At least in expert mode, you can choose a custom mirror (top of the countries list) and give the path for mirror directly. This will make installation super-fast compared to installing from anywhere else.&lt;br /&gt;
&lt;br /&gt;
Please install to LVM volumes, as this is our standard configuration on all machines where possible. It allows more flexible partitioning across available volumes. Since GRUB 2, even /boot may be on LVM; this is the preferred configuration for simplicity, except when legacy partitioning setups make this inconvenient.&lt;br /&gt;
&lt;br /&gt;
You may enable unattended upgrades, but do not enable Canonical&#039;s remote management service or any such nonsense. This is mostly a straightforward Debian/Ubuntu install.&lt;br /&gt;
&lt;br /&gt;
= After Installing =&lt;br /&gt;
&lt;br /&gt;
Add the machine&#039;s name to ~git/public/hosts.git, and run the ansible playbook (https://git.uwaterloo.ca/csc/playbooks/blob/master/update-hosts.yml) to distribute the updated hosts file to all machines.&lt;br /&gt;
&lt;br /&gt;
== Networking ==&lt;br /&gt;
Make sure to setup the IPMI on the mso-private VLAN (I think VLAN 520, check under networking page), and pleaseee set it up as a static IP.&lt;br /&gt;
&lt;br /&gt;
Then fetch the MAC address from the normal network interface, then on Caffine there&#039;s a dhcp server running. You&#039;ll need to add it there, just look for where all the servers are, and add it there. Make sure to assign it an IP there, otherwise it &#039;&#039;won&#039;t&#039;&#039; be assigned one. &lt;br /&gt;
&lt;br /&gt;
Then using IPAM give it a name and stuff, and a domain name. &lt;br /&gt;
&lt;br /&gt;
== apt ==&lt;br /&gt;
&lt;br /&gt;
Delete/clear the file &amp;lt;tt&amp;gt;/etc/apt/sources.list&amp;lt;/tt&amp;gt; and paste something like the following into &amp;lt;tt&amp;gt;/etc/apt/sources.list.d/debian.sources&amp;lt;/tt&amp;gt; (replace &amp;quot;bookworm&amp;quot; by the the current Debian stable codename):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: http://mirror.csclub.uwaterloo.ca/debian&lt;br /&gt;
Suites: bookworm bookworm-updates bookworm-backports&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: http://mirror.csclub.uwaterloo.ca/debian-security&lt;br /&gt;
Suites: bookworm-security&lt;br /&gt;
Components: main contrib non-free non-free-firmware&lt;br /&gt;
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the CSC archive signing key:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -O /etc/apt/keyrings/csclub.gpg http://debian.csclub.uwaterloo.ca/csclub.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Paste the following into &amp;lt;tt&amp;gt;/etc/apt/sources.list.d/csclub.sources&amp;lt;/tt&amp;gt; (or copy from another host):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Types: deb&lt;br /&gt;
URIs: http://debian.csclub.uwaterloo.ca&lt;br /&gt;
Suites: bookworm&lt;br /&gt;
Components: main&lt;br /&gt;
Signed-By: /etc/apt/keyrings/csclub.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In order to make Debian use packages in our repository by default, set our repository to the highest priority. Create &amp;lt;code&amp;gt;/etc/apt/preferences.d/99-csclub&amp;lt;/code&amp;gt;: &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
Package: *&lt;br /&gt;
Pin: origin debian.csclub.uwaterloo.ca&lt;br /&gt;
Pin-Priority: 1001&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;You should now run &amp;lt;tt&amp;gt;apt-get update&amp;lt;/tt&amp;gt; to reflect these changes.&lt;br /&gt;
&lt;br /&gt;
For unattended upgrades in the future, install the &amp;lt;tt&amp;gt;unattended-upgrades&amp;lt;/tt&amp;gt; package and copy &amp;lt;tt&amp;gt;/etc/apt/apt.conf&amp;lt;/tt&amp;gt; from another host.&lt;br /&gt;
&lt;br /&gt;
== Network ==&lt;br /&gt;
&lt;br /&gt;
Note that debian 11 will use NetworkManager or &amp;lt;code&amp;gt;/etc/interfaces&amp;lt;/code&amp;gt; by default if you install a desktop environment, which doesn&#039;t seem to do DHCPv6 nicely. For simplicity and consistency across machines, we will use &amp;lt;code&amp;gt;systemd-networkd&amp;lt;/code&amp;gt;. First stop and disable NetworkManager:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl disable --now NetworkManager.service networking.service&lt;br /&gt;
apt autoremove NetworkManager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then, create a network configuration file at &amp;lt;code&amp;gt;/etc/systemd/network/10-wired.network&amp;lt;/code&amp;gt;:&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[Match]&lt;br /&gt;
# Check the interface name using `ip a`&lt;br /&gt;
Name=enp3s0&lt;br /&gt;
&lt;br /&gt;
[Network]&lt;br /&gt;
# DHCP for IPv4 should work just fine&lt;br /&gt;
DHCP=ipv4&lt;br /&gt;
# IPv6 doesn&#039;t seem to work properly. Manually set them here&lt;br /&gt;
Address=ALLOCATED_IPv6_ADDRESS&lt;br /&gt;
Gateway=IPv6_GATEWAY&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then start and enable &amp;lt;code&amp;gt;systemd-networkd.service&amp;lt;/code&amp;gt;. Also remember to specify the campus DNS at &amp;lt;code&amp;gt;/etc/resolve.conf&amp;lt;/code&amp;gt;. You can copy it from another CSC machine.&lt;br /&gt;
&lt;br /&gt;
== Kerberos keys ==&lt;br /&gt;
&lt;br /&gt;
If this is a reinstall of an existing host, copy back the SSH host keys and &amp;lt;tt&amp;gt;/etc/krb5.keytab&amp;lt;/tt&amp;gt; from its former incarnation. Otherwise, create a new Kerberos principal and copy the keytab over, as follows (run from the host in question):&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
kadmin -p sysadmin/admin   # or any other admin principal; the password for this one is the usual root password&lt;br /&gt;
addprinc -randkey host/[hostname].csclub.uwaterloo.ca&lt;br /&gt;
ktadd host/[hostname].csclub.uwaterloo.ca&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;This will generate a new principal (you can skip this step if one already exists) and add it to the local Kerberos keytab.&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
=== General ===&lt;br /&gt;
Install packages that we will need:&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
apt install krb5-user nfs-common nslcd sudo-ldap&lt;br /&gt;
# This package are automatically installed already, but we need to install our version so that NFS can connect to our crappy NetApp server&lt;br /&gt;
apt install --reinstall libk5crypto3&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;The following config files are needed to work in the CSC environment (examples given below for an office terminal; perhaps refer to another host if preferred).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/nsswitch.conf&amp;lt;/tt&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# /etc/nsswitch.conf&lt;br /&gt;
#&lt;br /&gt;
# Example configuration of GNU Name Service Switch functionality.&lt;br /&gt;
# If you have the `glibc-doc-reference&#039; and `info&#039; packages installed, try:&lt;br /&gt;
# `info libc &amp;quot;Name Service Switch&amp;quot;&#039; for information about this file.&lt;br /&gt;
&lt;br /&gt;
passwd:         files systemd ldap&lt;br /&gt;
group:          files systemd ldap&lt;br /&gt;
shadow:         files ldap&lt;br /&gt;
gshadow:        files ldap&lt;br /&gt;
sudoers:        files ldap&lt;br /&gt;
&lt;br /&gt;
hosts:          files dns&lt;br /&gt;
networks:       files&lt;br /&gt;
&lt;br /&gt;
protocols:      db files&lt;br /&gt;
services:       db files&lt;br /&gt;
ethers:         db files&lt;br /&gt;
rpc:            db files&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;tt&amp;gt;/etc/ldap/ldap.conf&amp;lt;/tt&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# LDAP Defaults&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# See ldap.conf(5) for details&lt;br /&gt;
# This file should be world readable but not world writable.&lt;br /&gt;
&lt;br /&gt;
BASE    dc=csclub, dc=uwaterloo, dc=ca&lt;br /&gt;
URI     ldaps://ldap1.csclub.uwaterloo.ca ldaps://ldap2.csclub.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
SIZELIMIT       0&lt;br /&gt;
&lt;br /&gt;
TLS_CACERT      /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
TLS_CACERTFILE  /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
&lt;br /&gt;
SUDOERS_BASE ou=SUDOers,dc=csclub,dc=uwaterloo,dc=ca&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Also make &amp;lt;tt&amp;gt;/etc/sudo-ldap.conf&amp;lt;/tt&amp;gt; a symlink to the above. On debian, install &amp;lt;tt&amp;gt;sudo-ldap&amp;lt;/tt&amp;gt; package too.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;/etc/nslcd.conf&amp;lt;/tt&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# /etc/nslcd.conf&lt;br /&gt;
# nslcd configuration file. See nslcd.conf(5)&lt;br /&gt;
# for details.&lt;br /&gt;
&lt;br /&gt;
# The user and group nslcd should run as.&lt;br /&gt;
uid nslcd&lt;br /&gt;
gid nslcd&lt;br /&gt;
&lt;br /&gt;
# The location at which the LDAP server(s) should be reachable.&lt;br /&gt;
uri ldaps://ldap1.csclub.uwaterloo.ca&lt;br /&gt;
uri ldaps://ldap2.csclub.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
# The search base that will be used for all queries.&lt;br /&gt;
base dc=csclub, dc=uwaterloo, dc=ca&lt;br /&gt;
&lt;br /&gt;
# The LDAP protocol version to use.&lt;br /&gt;
#ldap_version 3&lt;br /&gt;
&lt;br /&gt;
# The DN to bind with for normal lookups.&lt;br /&gt;
#binddn cn=annonymous,dc=example,dc=net&lt;br /&gt;
#bindpw secret&lt;br /&gt;
&lt;br /&gt;
# The DN used for password modifications by root.&lt;br /&gt;
#rootpwmoddn cn=admin,dc=example,dc=com&lt;br /&gt;
&lt;br /&gt;
# SSL options&lt;br /&gt;
#ssl off&lt;br /&gt;
tls_reqcert demand&lt;br /&gt;
tls_cacertfile /etc/ssl/certs/ca-certificates.crt&lt;br /&gt;
&lt;br /&gt;
# The search scope.&lt;br /&gt;
#scope sub&lt;br /&gt;
&lt;br /&gt;
map group member uniqueMember&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&amp;lt;tt&amp;gt;/etc/krb5.conf&amp;lt;/tt&amp;gt;&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[libdefaults]&lt;br /&gt;
  default_realm = CSCLUB.UWATERLOO.CA&lt;br /&gt;
  forwardable = true&lt;br /&gt;
  proxiable = true&lt;br /&gt;
  dns_lookup_kdc = false&lt;br /&gt;
  dns_lookup_realm = false&lt;br /&gt;
  allow_weak_crypto = true&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
  CSCLUB.UWATERLOO.CA = {&lt;br /&gt;
    kdc = kdc1.csclub.uwaterloo.ca&lt;br /&gt;
    kdc = kdc2.csclub.uwaterloo.ca&lt;br /&gt;
    admin_server = kadmin.csclub.uwaterloo.ca&lt;br /&gt;
  }&lt;br /&gt;
(rest omitted for brevity, see any CSC machine)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Notably, &amp;lt;tt&amp;gt;allow_weak_crypto&amp;lt;/tt&amp;gt; is currently needed to mount &amp;lt;tt&amp;gt;/users&amp;lt;/tt&amp;gt; (/music and &amp;lt;tt&amp;gt;/scratch&amp;lt;/tt&amp;gt; is sec=sys and thus will always mount, even when krb5 is down and/or broken). Otherwise, you will get a mysterious &amp;quot;permission denied&amp;quot; error (even though the server claims to have authenticated the mount successfully).&lt;br /&gt;
&lt;br /&gt;
Furthermore, the lines &amp;lt;tt&amp;gt;dns_lookup_kdc&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;dns_lookup_realm&amp;lt;/tt&amp;gt; have been added - they are needed to stop the KDC from throwing its arms in the air and giving up if IST&#039;s DNS servers ever explode - an event that has happened in the recent past far more often than I&#039;d like it to.&lt;br /&gt;
&lt;br /&gt;
Change all lines in &amp;lt;tt&amp;gt;/etc/pam.d/common-*&amp;lt;/tt&amp;gt; to have &amp;lt;tt&amp;gt;minimum_uid=10000&amp;lt;/tt&amp;gt; so that Kerberos won&#039;t interfere with local users. Note that pam configs are notably different on syscom-only hosts. Look at an existing syscom-only host to see the difference.&lt;br /&gt;
&lt;br /&gt;
Alter &amp;lt;tt&amp;gt;/etc/default/nfs-common&amp;lt;/tt&amp;gt; &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# Alter these lines:&lt;br /&gt;
NEED_STATD=1&lt;br /&gt;
NEED_GSSD=1&lt;br /&gt;
# -l for gssd is to allow legacy crypto suites&lt;br /&gt;
RPCGSSDOPTS=&amp;quot;-v -l&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;to enable &amp;lt;tt&amp;gt;statd&amp;lt;/tt&amp;gt;, and more importantly &amp;lt;tt&amp;gt;gssd&amp;lt;/tt&amp;gt; (needed for Kerberos NFS mounts). Start &amp;lt;code&amp;gt;rpc-statd.service&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;rpc-gssd.service&amp;lt;/code&amp;gt; manually for now.&lt;br /&gt;
&lt;br /&gt;
Add &amp;lt;tt&amp;gt;/users&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;/music&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/scratch&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;/etc/fstab&amp;lt;/tt&amp;gt; (as appropriate for the machine&#039;s role), make their mount points and mount them. Note that &amp;lt;tt&amp;gt;/scratch&amp;lt;/tt&amp;gt; are sec=sys whereas &amp;lt;tt&amp;gt;/music&amp;lt;/tt&amp;gt; and /users is sec=krb5p (with exceptions granted on a case-by-case basis for servers only, office terminals are always sec=krb5p for security reasons).&lt;br /&gt;
&lt;br /&gt;
To allow single sign-on as &amp;lt;tt&amp;gt;root&amp;lt;/tt&amp;gt; (primarily useful for pushing files to all machines simultaneously), put the following in &amp;lt;tt&amp;gt;/root/.k5login&amp;lt;/tt&amp;gt;:&lt;br /&gt;
 sysadmin/admin@CSCLUB.UWATERLOO.CA&lt;br /&gt;
&lt;br /&gt;
Also copy the following files from another CSC host:&lt;br /&gt;
* &amp;lt;tt&amp;gt;/etc/ssh/ssh_config&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;/etc/ssh/sshd_config&amp;lt;/tt&amp;gt; (for single sign-on)&lt;br /&gt;
* &amp;lt;tt&amp;gt;/etc/ssh/ssh_known_hosts&amp;lt;/tt&amp;gt; (to remove hostkey warnings within our network)&lt;br /&gt;
* &amp;lt;tt&amp;gt;/etc/hosts&amp;lt;/tt&amp;gt; (for host tab completion and emergency name resolution)&lt;br /&gt;
* &amp;lt;tt&amp;gt;/etc/resolv.conf&amp;lt;/tt&amp;gt; (to use IST&#039;s nameservers and search csclub/uwaterloo domains. Only required if you are not using &amp;lt;tt&amp;gt;/etc/network/interfaces&amp;lt;/tt&amp;gt; to configure DNS)&lt;br /&gt;
&lt;br /&gt;
=== Audio ===&lt;br /&gt;
&lt;br /&gt;
On an office terminal, copy &amp;lt;tt&amp;gt;/etc/pulse/default.pa&amp;lt;/tt&amp;gt; from another office terminal.&lt;br /&gt;
&lt;br /&gt;
If this is to be the machine that actually plays audio (currently &amp;lt;tt&amp;gt;nullsleep&amp;lt;/tt&amp;gt;), the setup is slightly more complicated. You&#039;ll need to set up MPD and PipeWire to receive connections, and store the PulseAudio cookie in &amp;lt;tt&amp;gt;~audio&amp;lt;/tt&amp;gt;, with appropriate permissions so that only the &amp;lt;tt&amp;gt;audio&amp;lt;/tt&amp;gt; group can access it. If this is a new audio machine, you&#039;ll also need to change &amp;lt;tt&amp;gt;default.pa&amp;lt;/tt&amp;gt; on all office terminals to point to it.&lt;br /&gt;
&lt;br /&gt;
=== Password ===&lt;br /&gt;
Change the root password to the specified password in the usual place under the termcom user. If it&#039;s an office terminal, change the local user&#039;s password to the one specified in the usual place.&lt;br /&gt;
&lt;br /&gt;
=== Prevent suspend and hibernation (Office Terminal) ===&lt;br /&gt;
Set &amp;lt;code&amp;gt;AllowSuspend&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AllowHibernation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;AllowSuspendThenHibernate&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;AllowHybridSleep&amp;lt;/code&amp;gt; all to &amp;lt;code&amp;gt;no&amp;lt;/code&amp;gt; in &amp;lt;code&amp;gt;/etc/systemd/sleep.conf&amp;lt;/code&amp;gt;, and reboot.&lt;br /&gt;
&lt;br /&gt;
== Records ==&lt;br /&gt;
&lt;br /&gt;
You probably already created the host in the University IPAM system beforehand. If not, please do so.&lt;br /&gt;
&lt;br /&gt;
Please also add the host to the [[Machine List]] here on the Wiki.&lt;br /&gt;
&lt;br /&gt;
== Munin (System Monitoring) ==&lt;br /&gt;
&lt;br /&gt;
If the new machine is not a container, you probably want to have it participate in the Munin cluster. Run &amp;lt;tt&amp;gt;apt-get install munin-node&amp;lt;/tt&amp;gt; to install the monitoring client, then&lt;br /&gt;
edit the file /etc/munin/munin-node.conf. Look for a line that says &amp;lt;tt&amp;gt;allow ^127\.0\.0\.1$&amp;lt;/tt&amp;gt; and add the following on a new line immediately below it:&lt;br /&gt;
&amp;lt;tt&amp;gt;allow ^129\.97\.134\.51$&amp;lt;/tt&amp;gt; (this is the IP address for munin.csclub). Save the file, then &amp;lt;tt&amp;gt;/etc/init.d/munin-node restart&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;update-rc.d munin-node defaults&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then, ssh into munin.csclub and edit the file /etc/munin/munin.conf and add the following lines to the end:&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[NEW-MACHINE-NAME.csclub] &amp;lt;br/&amp;gt;&lt;br /&gt;
addr 129.97.134.### &amp;lt;br /&amp;gt;&lt;br /&gt;
use_node_name yes&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Prometheus (System Monitoring) ==&lt;br /&gt;
&lt;br /&gt;
We are currently using Prometheus to monitor our systems. On the new machine, install &amp;lt;tt&amp;gt;prometheus-node-exporter&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;stunnel&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Change &amp;lt;tt&amp;gt;/etc/default/prometheus-node-exporter&amp;lt;/tt&amp;gt; to this: &lt;br /&gt;
&lt;br /&gt;
 ARGS=&amp;quot;--web.listen-address=localhost:9101&amp;quot;&lt;br /&gt;
&lt;br /&gt;
and start &amp;lt;tt&amp;gt;prometheus-node-exporter.service&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Then set up stunnel. Create &amp;lt;tt&amp;gt;/etc/stunnel/prometheus-node-exporter.conf&amp;lt;/tt&amp;gt; with this content:&lt;br /&gt;
&lt;br /&gt;
 setuid = stunnel4&lt;br /&gt;
 setgid = stunnel4&lt;br /&gt;
 pid = /var/run/stunnel4/exporter.pid&lt;br /&gt;
 &lt;br /&gt;
 debug = 7&lt;br /&gt;
 &lt;br /&gt;
 [prometheus-node-exporter]&lt;br /&gt;
 accept = 0.0.0.0:9100&lt;br /&gt;
 connect = 127.0.0.1:9101&lt;br /&gt;
 CAfile = /etc/stunnel/tls/server.crt&lt;br /&gt;
 cert = /etc/stunnel/tls/node.crt&lt;br /&gt;
 key = /etc/stunnel/tls/node.key&lt;br /&gt;
 verifyPeer = yes&lt;br /&gt;
&lt;br /&gt;
Copy &amp;lt;tt&amp;gt;/etc/stunnel/{node.crt, node.key, server.crt}&amp;lt;/tt&amp;gt; from &amp;lt;tt&amp;gt;prometheus:/opt/prometheus/tls&amp;lt;/tt&amp;gt; or the same location on other machines.&lt;br /&gt;
&lt;br /&gt;
Finally, start &amp;lt;tt&amp;gt;stunnel4.service&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
If it&#039;s a new machine, you&#039;ll also need to add it to the list of monitoring at &amp;lt;tt&amp;gt;prometheus:/opt/prometheus/prometheus.yml&amp;lt;/tt&amp;gt;. Add it under a suitable label (or create a new label) in &#039;node_exporter&#039; job.&lt;br /&gt;
&lt;br /&gt;
= New Distribution =&lt;br /&gt;
&lt;br /&gt;
If you&#039;re adding a new distribution, there a couple of steps you&#039;ll need to take in updating the CSClub Debian repository on [[Machine_List#sodium_benzoate|sodium-benzoate/mirror]]. &lt;br /&gt;
&lt;br /&gt;
The steps to add a new Debian release (in the examples, jessie) is as follows, modify as necessary:&lt;br /&gt;
&lt;br /&gt;
=== Step 0: Create a GPG key ===&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;gpg --gen-key&amp;quot; or something like that. Skip this if you already have one.&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Add to Uploaders ===&lt;br /&gt;
&lt;br /&gt;
The /srv/debian/conf/uploaders file on mirror contains the list of people who can upload. Add your GPG key id to this file.  Use &amp;quot;gpg --list-secret-keys&amp;quot; to find out the key ID. You also need to import your key into the mirror&#039;s gpg homedir as follows:&lt;br /&gt;
&lt;br /&gt;
 gpg --export $KEYID | sudo env GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
You only need to do this step once.&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Add Distro ===&lt;br /&gt;
&lt;br /&gt;
Add a new section to /srv/debian/conf/distributions:&lt;br /&gt;
&lt;br /&gt;
 Origin: CSC&lt;br /&gt;
 Label: Debian&lt;br /&gt;
 Codename: &#039;&#039;&#039;jessie&#039;&#039;&#039;&lt;br /&gt;
 Architectures: alpha amd64 i386 mips mipsel sparc powerpc armel source&lt;br /&gt;
 Components: main contrib non-free&lt;br /&gt;
 Uploaders: uploaders&lt;br /&gt;
 Update: dell chrome&lt;br /&gt;
 SignWith: yes&lt;br /&gt;
 Log: &#039;&#039;&#039;jessie&#039;&#039;&#039;.log&lt;br /&gt;
  --changes notifier&lt;br /&gt;
&lt;br /&gt;
And update the &#039;&#039;&#039;Allow&#039;&#039;&#039; line in /srv/debian/conf/incoming:&lt;br /&gt;
&lt;br /&gt;
 Allow: &#039;&#039;&#039;jessie&amp;gt;jessie&#039;&#039;&#039; oldstable&amp;gt;squeeze stable&amp;gt;wheezy lucid&amp;gt;lucid maverick&amp;gt;maverick oneiric&amp;gt;oneiric precise&amp;gt;precise quantal&amp;gt;quantal&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Update from Sources ===&lt;br /&gt;
&lt;br /&gt;
Run:&lt;br /&gt;
&lt;br /&gt;
 sudo env GNUPGHOME=/srv/debian/gpg /srv/debian/bin/rrr-update&lt;br /&gt;
&lt;br /&gt;
If all went well you should see the new distribution listed at http://debian.csclub.uwaterloo.ca/dists/&lt;br /&gt;
&lt;br /&gt;
=== Step 4: CSC Packages ===&lt;br /&gt;
&lt;br /&gt;
Now that we&#039;ve got our new distribution set up we need to generate our packages and have them uploaded. Namely, ceo and libpam-csc. For libpam-csc:&lt;br /&gt;
&lt;br /&gt;
Get the package:&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.csclub.uwaterloo.ca/public/libpam-csc.git&lt;br /&gt;
 cd libpam-csc&lt;br /&gt;
&lt;br /&gt;
Update change log:&lt;br /&gt;
&lt;br /&gt;
 EMAIL=[you]@csclub.uwaterloo.ca NAME=&amp;quot;Your Name&amp;quot; dch -i&lt;br /&gt;
&lt;br /&gt;
Update as necessary, i.e:&lt;br /&gt;
&lt;br /&gt;
 libpam-csc (1.10&#039;&#039;&#039;jessie0&#039;&#039;&#039;) &#039;&#039;&#039;jessie&#039;&#039;&#039;; urgency=low&lt;br /&gt;
 &lt;br /&gt;
   * Packaging for jessie.&lt;br /&gt;
 &lt;br /&gt;
  -- Your Name &amp;lt;[you]@csclub.uwaterloo.ca&amp;gt;  Thu, 10 Oct 2013 22:08:48 -0400&lt;br /&gt;
&lt;br /&gt;
Build! (You may need to install various dependencies, which it will yell at you if you don&#039;t have.)&lt;br /&gt;
&lt;br /&gt;
 debuild -k&#039;&#039;&#039;YOURKEYID&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Yay, it built now let&#039;s upload it to the repo. The build process which create a PACKAGE.changes file in the parent directory (replace PACKAGE with the actual package name).&lt;br /&gt;
&lt;br /&gt;
Copy the dupload file from corn-syrup and dupload:&lt;br /&gt;
&lt;br /&gt;
 mv /etc/dupload /etc/dupload.bak&lt;br /&gt;
 scp corn-syrup:/etc/dupload /etc/dupload&lt;br /&gt;
 dupload libpam-csc_1.10jessie0_amd64.changes&lt;br /&gt;
&lt;br /&gt;
Finally, log into mirror and type &amp;quot;sudo /srv/debian/bin/rrr-incoming&amp;quot;. This is supposed to happen once every few minutes however it is always faster to run it manually.&lt;br /&gt;
&lt;br /&gt;
And you&#039;re done. For CEO, see https://git.csclub.uwaterloo.ca/public/pyceo/src/branch/master/PACKAGING.md&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5413</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5413"/>
		<updated>2025-07-23T04:10:10Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Syscom Only */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of our machines are in the E7, F7, G7 and H7 racks (as of Jan. 2022) in the MC 3015 server room. There is an additional rack in the DC 3558 machine room on the third floor. Our office terminals are in the CSC office, in MC 3036/3037.&lt;br /&gt;
&lt;br /&gt;
= Web Server =&lt;br /&gt;
You are highly encouraged to avoid running anything that&#039;s not directly related to your CSC webspace on our web server. We have plenty of general-use machines; please use those instead. You can even edit web pages from any other machine--usually the only reason you&#039;d *need* to be on caffeine is for database access.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;caffeine&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Caffeine is the Computer Science Club&#039;s web server. It serves websites, databases for websites, and a large amount of other services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Redundant active backup coming soon...)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* LXC virtual machine hosted on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
** 12 vCPUs&lt;br /&gt;
** 32GB of RAM&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Club and member web sites with [https://www.apache.org/ Apache]&lt;br /&gt;
* [[MySQL]] databases&lt;br /&gt;
* [[PostgreSQL]] databases&lt;br /&gt;
* [[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
= General-Use Servers =&lt;br /&gt;
&lt;br /&gt;
These machines can be used for (nearly) anything you like (though be polite and remember that these are shared machines). Recall that when you signed the Machine Usage Agreement, you promised not to use these machines to generate profit (so no cryptocurrency mining).&lt;br /&gt;
&lt;br /&gt;
For computationally-intensive jobs (CPU/memory bound) we recommend running on high-fructose-corn-syrup, carbonated-water, sorbitol, mannitol, or corn-syrup, listed in roughly decreasing order of available resources. For low-intensity interactive jobs, such as IRC clients, we recommend running on neotame. &#039;&#039;&#039;&amp;lt;u&amp;gt;If you have a long-running computationally intensive job, it&#039;s good to nice[https://en.wikipedia.org/wiki/Nice_(Unix)] your process, and possibly let syscom know too.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 × Intel Xeon E5405 (2.00 GHz, 4 cores each)&lt;br /&gt;
* 32 GB RAM&lt;br /&gt;
* eth0 (&amp;quot;Gb0&amp;quot;) mac addr 00:24:e8:52:41:27&lt;br /&gt;
* eth1 (&amp;quot;Gb1&amp;quot;) mac addr 00:24:e8:52:41:29&lt;br /&gt;
* IPMI mac addr 00:24:e8:52:41:2b&lt;br /&gt;
* 3 &amp;amp;times; Western-Digital 160GB SATA hard drive (445 GB software RAID0 array)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* Use eth0/Gb0 for the mathstudentorgsnet connection&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Hosts 1 TB &amp;lt;tt&amp;gt;[[scratch|/scratch]]&amp;lt;/tt&amp;gt; and exports via NFS (sec=krb5)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;high-fructose-corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
High-fructose-corn-syrup (or hfcs) is a large SuperMicro server. It&#039;s been in CSC service since April 2012.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6272 (2.4 GHz, 16 cores each)&lt;br /&gt;
* 192 GB RAM&lt;br /&gt;
* Supermicro H8QGi+-F Motherboard Quad 1944-pin Socket [http://csclub.uwaterloo.ca/misc/manuals/motherboard-H8QGI+-F.pdf (Manual)]&lt;br /&gt;
* 500 GB Seagate Barracuda&lt;br /&gt;
* Supermicro Case Rackmount CSE-748TQ-R1400B 4U [http://csclub.uwaterloo.ca/misc/manuals/SC748.pdf (Manual)]&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Missing moba IO shield (as of January 2024)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;carbonated-water&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
carbonated-water is a Dell R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6176 processors (2.3 GHz, 12 cores each)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;neotame&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
neotame is a SuperMicro server funded by MEF. It is the successor to taurine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We strongly discourage running computationally-intensive jobs&#039;&#039;&#039; on neotame as many users run interactive applications such as IRC clients on it and any significant service degradation will be more likely to affect other users (who will probably notice right away).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* SSH server also listens on ports 21, 22, 53, 80, 81, 443, 8000, 8080 for your convenience.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;sorbitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
sorbitol is a SuperMicro server funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
== &#039;&#039;mannitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
mannitol is a SuperMicro server funded by MEF. CUDA is available on this node.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* NVIDIA GeForce RTX 3050 6G&lt;br /&gt;
&lt;br /&gt;
= Office Terminals =&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to SSH into these machines, but we discourage you from trying to use these machines when you&#039;re not sitting in front of them. They are bounced at least every time our login manager, lightdm, throws a tantrum (which is several times a day). These are for use inside our physical office.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;cyanide&#039;&#039; ==&lt;br /&gt;
cyanide is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)], identical in specification to powernap&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;suika&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Suika is an office terminal built from various components donated by our members.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* AMD Ryzen 7 2700X&lt;br /&gt;
* 2x 8GB DDR4&lt;br /&gt;
* 1x Samsung 256GB SSD&lt;br /&gt;
* AMD Radeon RX 550 4GB&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;powernap&#039;&#039;==&lt;br /&gt;
powernap is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)].&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
=== Speaker === &lt;br /&gt;
powernap has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
* MPD for playing music. Only office/termcom/syscom can log into powernap. Use `ncmpcpp` to control MPD.&lt;br /&gt;
** TODO: this is not the case anymore&lt;br /&gt;
* Bluetooth audio receiver. Only syscom can control bluetooth pairing. Use `bluetoothctl` to control bluetooth.&lt;br /&gt;
&lt;br /&gt;
Music is located in `/music` on the office terminals.&lt;br /&gt;
&lt;br /&gt;
= Progcom Only =&lt;br /&gt;
The Programme Committee has access to a VM on corn-syrup called &#039;progcom&#039;. They have sudo rights in this VM so they may install and run their own software inside it. This VM should only be accessible by members of progcom or syscom.&lt;br /&gt;
&lt;br /&gt;
The CI/CD stuff for the csclub.uwaterloo.ca runs on this vm (drone).&lt;br /&gt;
&lt;br /&gt;
= Codey Bot Only =&lt;br /&gt;
Ran on CSC Cloud in a separate Cloudstack project. codey-staging, codey-dev, codey-prod.&lt;br /&gt;
&lt;br /&gt;
TODO: migrating from cloudstack&lt;br /&gt;
&lt;br /&gt;
= Syscom Only =&lt;br /&gt;
&lt;br /&gt;
The following systems are only be accessible to members of the [[Systems Committee]] for a variety of reasons; the most common of which being that some of these machines host [[Kerberos]] authentication services for the CSC.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;xylitol&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
xylitol is a Dell PowerEdge R815 donated by CSCF. It is primarily a container host for services previously hosted on aspartame and dextrose, including munin, rt, mathnews, auth1, and dns1. It was provisioned with the intent to replace both of those hosts.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Dual AMD Opteron 6176 (2.3 GHz, 48 cores total)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 500GB volume group on RAID1 SSD (xylitol-mirrored)&lt;br /&gt;
* 500ish-GB volume group on RAID10 HDD (xylitol-raidten)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth1&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] primary&lt;br /&gt;
*[[Kerberos]] primary&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chat&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* The Lounge web IRC client (https://chat.csclub.uwaterloo.ca)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phosphoric-acid&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phosphoric-acid is a Dell PowerEdge R815 donated by CSCF and is a clone of xylitol. It may be used to provide redundant cloud services in the future.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
* 4x 2TB Kingston KC3000 (ZFS Z2 [Sustain 2-failures]) (KIN-SKC3000D2048G)&lt;br /&gt;
** Mounted on 2x Startech Dual M.2 PCIE SSD Adapter Cards (STA-PEX8M2E2)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&lt;br /&gt;
*prometheus&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;coffee&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Virtual machine running on phosphoric-acid.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Database#MySQL|MySQL]]&lt;br /&gt;
*[[Database#Postgres|Postgres]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;cobalamin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950 donated to us by FEDS. Located in the Science machine room on the first floor of Physics, on Science Computing Rack 2. NICs are plugged into A1 and A2 on the adjacent rack. Acts as a backup server for many things.&lt;br /&gt;
&lt;br /&gt;
TODO: should replace with another Syscom server when Science Computing clears out the rack (ETA before 09/2024)&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 1 × Intel Xeon E5420 (2.50 GHz, 4 cores)&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Broadcom NetworkXtreme II&lt;br /&gt;
* 2x73GB Hard Drives, hardware RAID1&lt;br /&gt;
** Soon to be 2x1TB in MegaRAID1&lt;br /&gt;
*http://www.dell.com/support/home/ca/en/cabsdt1/product-support/servicetag/51TYRG1/configuration&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Containers: [[#auth2|auth2]] (kerberos)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TODO: Mega unreliable.&#039;&#039;&#039; (Goes down once every few weeks... due to power outages in the PHYS server room)&lt;br /&gt;
** It is plugged into a UPS but the UPS has dead batteries.&lt;br /&gt;
* The network card requires non-free drivers. Be sure to use an installation disc with non-free.&lt;br /&gt;
&lt;br /&gt;
* We have separate IP ranges for cobalamin and its containers because the machine is located in a different building. They are:&lt;br /&gt;
** VLAN ID 506 (csc-data1): 129.97.18.16/29; gateway 129.97.18.17; mask 255.255.255.240&lt;br /&gt;
** VLAN ID 504 (csc-ipmi): 172.19.5.24/29; gateway 172.19.5.25; mask 255.255.255.248&lt;br /&gt;
* Physical access to the PHYS server rooms can be acquired by visiting Science Computing in PHYS 2006.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth2&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#cobalamin|cobalamin]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] secondary&lt;br /&gt;
*[[Kerberos]] secondary&lt;br /&gt;
&lt;br /&gt;
MAC Address: c2:c0:00:00:00:a2&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mail&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
mail is the CSC&#039;s mail server. It hosts mail delivery, imap(s), smtp(s), and mailman. It is also syscom-only. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
TODO: &amp;quot;HA&amp;quot;-ish configuration&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mail]] services&lt;br /&gt;
* mailman (web interface at [http://mailman.csclub.uwaterloo.ca/])&lt;br /&gt;
*[[Webmail]]&lt;br /&gt;
*[[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-benzoate is our previous mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It is currently sitting in the office pending repurposing. Will likely become a machine for backups in DC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon Quad Core E5405 @ 2.00 GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* vg0: 228 GB block device behind DELL PERC 6/i (contains root partition)&lt;br /&gt;
&lt;br /&gt;
Space disks are currently in the office underneath maltodextrin.&lt;br /&gt;
&lt;br /&gt;
TODO: gone??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate is our mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 36 drive Supermicro chassis (SSG-6048R-E1CR36L) &lt;br /&gt;
* 2 x Intel Xeon E5-2695 v4 (18 cores, 2.10GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC RDIMM RAM&lt;br /&gt;
* 2 x 1 TB Samsung Evo 850 SSD drives&lt;br /&gt;
* 17 x 4 TB Western Digital Gold drives (separate funding from MEF)&lt;br /&gt;
* 9 x 18TB Seagate Exos X18 (8 ZFS, Z2,1 hot-spare)&lt;br /&gt;
* 10 Gbps SFP+ card (loaned from CSCF)&lt;br /&gt;
* 50 Gbps Mellanox QSFP card (from ginkgo; currently unconnected)&lt;br /&gt;
&lt;br /&gt;
Spec before 2025-03-27:&lt;br /&gt;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
&lt;br /&gt;
==== Network Connections ====&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate has two connections to our network:&lt;br /&gt;
&lt;br /&gt;
* 1 Gbps to our switch (used for management)&lt;br /&gt;
* 2 x 10 Gbps (LACP bond) to mc-rt-3015-mso-a (for mirror)&lt;br /&gt;
&lt;br /&gt;
Mirror&#039;s bandwidth is limited to 1 Gbps on each of the 4 campus internet links. Mirror&#039;s bandwidth is not limited on campus.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mirror]]&lt;br /&gt;
*[[Talks]] mirror&lt;br /&gt;
*[[Debian_Repository|CSClub packages repository]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;munin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
munin is a syscom-only monitoring and accounting machine. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://munin.csclub.uwaterloo.ca munin] systems monitoring daemon&lt;br /&gt;
TODO: Debian 9?&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;yerba-mate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* test-ipv6 (test-ipv6.csclub.uwaterloo.ca; a test-ipv6.com mirror)&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Also used for experimenting new CSC services.&lt;br /&gt;
&lt;br /&gt;
* TODO: use as backup server&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;citric-acid&#039;&#039;==&lt;br /&gt;
A Dell PowerEdge R815 (TODO: check model) provided by CSCF to replace [[Machine List#aspartame|aspartame]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 2 x AMD Opteron 6174 (12 cores, 2.20 GHz)&lt;br /&gt;
* 128 GB RAM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Configured for [https://pass.uwaterloo.ca pass.uwaterloo.ca], a university-wide password manager hosted by CSC as a demo service for all Nexus (ADFS) user.&lt;br /&gt;
* [[Plane]], an internal (CSC) project management tool.&lt;br /&gt;
* Minio&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Being repurposed for Termcom training and development.&lt;br /&gt;
* Being used for Matrix &amp;amp; Proxmox Testing&lt;br /&gt;
* UFW opened-ports: SSH, HTTP/HTTPS&lt;br /&gt;
* Upgraded to Podman 4.x&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;Tahini&#039;&#039; ==&lt;br /&gt;
Server was funded via SLEF, and MEF. More info coming soon. Part of Proxmox Project, and mass migration&lt;br /&gt;
&lt;br /&gt;
= Cloud =&lt;br /&gt;
&lt;br /&gt;
These machines are used by [https://cloud.csclub.uwaterloo.ca cloud.csclub.uwaterloo.ca]. The machines themselves are restricted to Syscom only access.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chamomile&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x 2.20GHz 12-core processors (AMD Opteron(tm) Processor 6174)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Cloudstack host&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;riboflavin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R515 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 2.6 GHz 8-core processors (AMD Opteron(tm) Processor 4376 HE)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
* 2x 500GB internal SSD&lt;br /&gt;
* 12x Seagate 4TB SSHD&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack block and object storage for csclub.cloud&lt;br /&gt;
* ????&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;guayusa&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2TB PCI-Express Flash SSD&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* load-balancer-01&lt;br /&gt;
&lt;br /&gt;
Was used to experiment the following then-new CSC services:&lt;br /&gt;
&lt;br /&gt;
* cifs (for booting ginkgo from CD)&lt;br /&gt;
* caffeine-01 (testing of multi-node caffeine)&lt;br /&gt;
* TODO: ???&lt;br /&gt;
** block1.cloud&lt;br /&gt;
** object1.cloud&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
* TODO: ditch... Currently being used to set up NextCloud.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginkgo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by MEF for CSC web hosting. Locate in MC 3015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2697 v4 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 256GB RAM&lt;br /&gt;
* 2 x 1.2 TB SSD (400GB of each for RAID 1)&lt;br /&gt;
* 10GbE onboard, 25GbE SFP+ card (also included 50GbE SFP+ card which will probably go in mirror)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* controller1.cloud&lt;br /&gt;
* db1.cloud&lt;br /&gt;
* router1.cloud (NAT for cloud tenant network)&lt;br /&gt;
* network1.cloud&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs00&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs00 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* dual SFP connection to core switch&lt;br /&gt;
&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs01&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs01 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
TODO: disconnected??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs10&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs10 is a &#039;&#039;&#039;NetApp FAS8040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* FAS8040 (dual heads)&lt;br /&gt;
** ... TODO&lt;br /&gt;
* 6 DS4324 HDD shelves (24-disks each)&lt;br /&gt;
** 24 x 2TB HDDs (assorted brands/models)&lt;br /&gt;
** Dual IOM3 controllers.&lt;br /&gt;
** Loop 1: bottom 4 shelves&lt;br /&gt;
** Loop 2: top 2 shelves + SSD shelf&lt;br /&gt;
* 1 DS2246 SSD shelf (TODO: right model?)&lt;br /&gt;
** 24 Samsung SM1625 SSDs (MZ-6ER2000/0G3), 200GB (SAS 2, 2.5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
== ps3 ==&lt;br /&gt;
This is just a very wide PS3, the model that supported running Linux natively before it was removed. Firmware was updated to remove this feature, however it can still be done via. homebrew. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* It&#039;s a PS3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-10-24&#039;&#039;&#039; - Thermal paste replaced + firmware updated to latest supported version, also modded.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;binaerpilot&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Tobi expansion board. It is currently attached to corn-syrup in the machine room and even more currently turned off until someone can figure out what is wrong with it.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;anamanaguchi&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Chestnut43 expansion board. It is currently in the hardware drawer in the CSC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: May have disappeared at some point&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;digital cutter&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
See [[Digital Cutter|here]].&lt;br /&gt;
&lt;br /&gt;
= Decommissioned =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;biloba&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dead, died after the poweroutage of May 9th, 2025, previously served as Cloudstack master node or wtv.&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by SLEF for CSC web hosting. Located in DC 3558. TODO: rack??&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon Gold 6140 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 384GB RAM&lt;br /&gt;
* 12 3.5&amp;quot; Hot Swap Drive Bays&lt;br /&gt;
** 2 x 480 GB SSD&lt;br /&gt;
* 10GbE onboard, 10GbE SFP+ card (on loan from CSCF)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* caffeine&lt;br /&gt;
* mail&lt;br /&gt;
* mattermost&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;aspartame&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
aspartame was a taurine clone donated by CSCF. It was once our primary file server, serving as the gateway interface to space on phlogiston. It also used to host the [[#auth1|auth1]] container, which has been temporarily moved to [[#dextrose|dextrose]]. Decomissioned in March 2021 after refusing to boot following a power outage.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;psilodump&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
psilodump is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling phlogiston, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
psilodump was plugged into aspartame. It&#039;s still installed but inaccessible.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phlogiston&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phlogiston is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling psilodump, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
phlogiston is turned off and should remain that way. It is misconfigured to have its drives overlap with those owned by psilodump, and if it is turned on, it will likely cause irreparable data loss.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 10GB RAM&lt;br /&gt;
&lt;br /&gt;
==== Notes from before decommissioning ====&lt;br /&gt;
&lt;br /&gt;
* The lxc files are still present and should not be started up, or else the two copies of auth1 will collide.&lt;br /&gt;
* It currently cannot route the 10.0.0.0/8 block to a misconfiguration on the NetApp. This should be fixed at some point.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;glomag&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Glomag hosted [[#caffeine|caffeine]]. Decommissioned April 6, 2018.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon X3450 @ 2.67 GHz&lt;br /&gt;
* 6 GB RAM&lt;br /&gt;
* vg0: 465 GB software RAID1 (contains root partition):&lt;br /&gt;
** 750 GB Seagate Barracuda SATA hard drive&lt;br /&gt;
** 500 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
* vg1: 596 GB software RAID1 (contains caffeine):&lt;br /&gt;
** 2 &amp;amp;times; 640 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Before its decommissioning, glomag hosted [[#caffeine|caffeine]], [[#mail|mail]], and [[#munin|munin]] as [[Virtualization#Linux_Container|Linux containers]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;Lisp machine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Symbolics XL1200 Lisp machine. Donated to a new home when we couldn&#039;t get it working.&lt;br /&gt;
&lt;br /&gt;
http://www.globalnerdy.com/2008/12/03/symbolics-xl1200-lisp-machine-free-to-a-good-home/ for some history on this hardware.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
Currently inoperable due to (at least) a missing console cable.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginseng&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Ginseng used to be our fileserver, before aspartame and the netapp took over.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Pentium Dual Core E2180&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/s3000ah_tps_1_1.pdf Intel S3000AHV Motherboard]&lt;br /&gt;
* 4 &amp;amp;times; 640 GB Western-Digital Caviar Blue in [[wikipedia:Nested_RAID_levels#RAID_10_.28RAID_1.2B0.29|RAID 10]] behind a [http://www.3ware.com/products/serial_ata2-9650.asp 3ware 9650SE RAID card].&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;calum&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Calum used to be our main server and was named after Calum T Dalek.  Purchased new by the club in 1994. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* SPARCserver 10 (headless SPARCstation 10)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;paza&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An iMac G3 that was used as a dumb terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 233Mhz PowerPC 740/750&lt;br /&gt;
* 96 MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;romana&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Romana was a BeBox that has been in the CSC&#039;s possession since long before BeOS became defunct.&lt;br /&gt;
&lt;br /&gt;
Confirmed on March 19th, 2016 to be fully functional. An SSHv1 compatible client was installed from http://www.abstrakt.ch/be/ and a compatible firewalled daemon was started on Sucrose (living in /root, prefix is /root/ssh-romana). The insecure daemon is to be used a bastion host to jump to hosts only supporting &amp;gt;=SSHv2. The mail daemon on the BeBox has also been configured to send mail through mail.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 PowerPC based processors&lt;br /&gt;
* Stylish Blinken processor-load lights&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-citrate was an SGI O2 machine.&lt;br /&gt;
&lt;br /&gt;
In order to net boot you need to set /proc/sys/net/ipv4/ip_no_pmtu_disc to 1. When the O2 boots, hit F5 at the boot menu and type bootp():.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* SGI O2 MIPS processor&lt;br /&gt;
* 423 MB (?) RAM&lt;br /&gt;
* 2 &amp;amp;times; 2 GB hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;acesulfame-potassium&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An old office terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium 4 2.67GHz&lt;br /&gt;
* 1GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ABIT_VT7.pdf ABIT VT7] Motherboard&lt;br /&gt;
* ATI Radeon 7000&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;skynet&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
skynet was a Sun E6500 machine donated by Sanjay Singh. It was never fully set up.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 15 full CPU/memory boards&lt;br /&gt;
** 2x UltraSPARC II 464MHz / 8MB Cache Processors&lt;br /&gt;
** ??? RAM?&lt;br /&gt;
* 1 I/O board (type=???)&lt;br /&gt;
** ???x disks?&lt;br /&gt;
* 1 CD-ROM drive&lt;br /&gt;
&lt;br /&gt;
*[http://mirror.csclub.uwaterloo.ca/csclub/sun_e6500/ent6k.srvr/ e6500 documentation (hosted on mirror, currently dead link)]&lt;br /&gt;
*[http://docs.oracle.com/cd/E19095-01/ent6k.srvr/ e6500 documentation (backup link)]&lt;br /&gt;
*[http://www.e6500.com/ e6500]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;freebsd&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
FreeBSD was a virtual machine with FreeBSD installed.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Newer software&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;rainbowdragoneyes&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Rainbowdragoneyes was our Lemote Fuloong MIPS machine. This machine is aliased to rde.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 800MHz MIPS Loongson 2f CPU&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;denardo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Due to some instability, general uselessness, and the acquisition of a more powerful SPARC machine from MFCF, denardo was decommissioned in February 2015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Sun Fire V210&lt;br /&gt;
* TI UltraSparc IIIi (Jalapeño)&lt;br /&gt;
* 2 GB RAM&lt;br /&gt;
* 160 GB RAID array&lt;br /&gt;
* ALOM on denardo-alom.csclub can be used to power machine on/off&lt;br /&gt;
==&#039;&#039;artificial-flavours&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Artificial-flavours was our secondary (backup services) server. It used to be an office terminal. It was decommissioned in February 2015 and transferred to the ownership of Women in Computer Science (WiCS).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Celeron 3.2GHz&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/Biostar_P4M80-M4.pdf Biostar P4M80-M4] Motherboard&lt;br /&gt;
* Western-Digital 80 GB ATA hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Potassium-citrate is a dual-processor Alpha machine. It is on extended loan from pbarfuss.&lt;br /&gt;
&lt;br /&gt;
It is temporarily decommissioned pending the reinstallation of a supported operating system (such as OpenBSD).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Alphaserver CS20 (2 833MHz EV68al CPUs)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
* 36 GB Seagate SCSI hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-nitrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This was a Sun Fire E2900 from a decommissioned MFCF compute cluster. It had a SPARC architecture and ran OpenBSD, unlike many of our other systems which are x86/x86-64 and Linux/Debian. After multiple unsuccessful attempts to boot a modern Linux kernel and possible hardware instability, it was determined to be non-cost-effective and non-effort-effective to put more work into running this machine. The system was reclaimed by MFCF where someone from CS had better luck running a suitable operating system (probably Solaris).&lt;br /&gt;
&lt;br /&gt;
The name is from saltpetre, because sparks.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 24 CPUs&lt;br /&gt;
* 90GB main memory&lt;br /&gt;
* 400GB scratch disk local storage in /scratch-potassium-nitrate&lt;br /&gt;
&lt;br /&gt;
There is a [[Sun 2900 Strategy Guide|setup guide]] available for this machine.&lt;br /&gt;
&lt;br /&gt;
See also [[Sun 2900]].&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;taurine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: On August 21, 2019, just before 2:30PM EDT, we were informed that taurine caught fire&#039;&#039;&#039;. As a result, taurine has been decommissioned as of Fall 2019.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 136 GB LVM volume group&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Virtual machines&lt;br /&gt;
* BitlBee IRC instant messaging gateway (localhost only)&lt;br /&gt;
*[[ident]] server to maintain high connection cap to freenode&lt;br /&gt;
* Runs ssh on ports 21,22,53,80,81,443,8000,8080 for user&#039;s convenience.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;dextrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
dextrose was a [[#taurine|taurine]] clone donated by CSCF and was decommissioned in Fall 2019 after being replaced with a more powerful server.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sucrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
sucrose was a [[#taurine|taurine]] clone donated by CSCF. It was decommissioned in Fall 2019 following multiple hardware failures.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;goto80&#039;&#039;==&lt;br /&gt;
&#039;&#039;&#039;Note (2022-10-25): This seems to have gone missing or otherwise left our hands.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This was small ARM machine we picked up in order to have similar hardware to the Real Time Operating Systems (CS 452) course. It has a [[TS-7800_JTAG|JTAG]] interface. Located was the office on the top shelf above strombola.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 500 MHz Feroceon (ARM926ej-s compatible) processor&lt;br /&gt;
* ARMv5TEJ architecture&lt;br /&gt;
&lt;br /&gt;
Use -march=armv5te -mtune=arm926ej-s options to GCC.&lt;br /&gt;
&lt;br /&gt;
For information on the TS-7800&#039;s hardware see here:&lt;br /&gt;
http://www.embeddedarm.com/products/board-detail.php?product=ts-7800&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;nullsleep&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
nullsleep is an [http://csclub.uwaterloo.ca/misc/manuals/ASRock_ION_330.pdf ASRock ION 330] machine given to us by CSCF and funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It&#039;s decommissioned on 2023-03-20 due to repeated unexpected shutdown. Replaced by [[#powernap|powernap]]. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel® Dual Core Atom™ 330&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
* NVIDIA® ION™ graphics&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* DVD Burner&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Nullsleep has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
Nullsleep runs MPD for playing music. Control of MPD is available only to users in the &amp;quot;audio&amp;quot; group.&lt;br /&gt;
Music is located in /music on the office terminal&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;bit-shifter&#039;&#039; ==&lt;br /&gt;
bit-shifter was an office terminal, decommissioned April 2023 due to extended age. It was upgraded to the same specs as Strombola at an unknown point in time.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core 2 Quad CPU Q8300&lt;br /&gt;
* 4GB RAM&lt;br /&gt;
* Nvidia GeForce GT 440&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Jacob Parker&#039;s Firewire Card&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;strombola&#039;&#039;==&lt;br /&gt;
Strombola was an office terminal named after Gordon Strombola. It was retired in April 2023.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium G4600 2 cores @ 3.6Ghz&lt;br /&gt;
* 8 GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Strombola used to have integrated 5.1 channel sound before we got new speakers and moved audio stuff to nullsleep.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;gwem&#039;&#039; ==&lt;br /&gt;
gwem was an office terminal that was created because AMD donated a graphics card. It entered CSC service in February 2012.&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
&lt;br /&gt;
* AMD FX-8150 3.6GHz 8-Core CPU&lt;br /&gt;
* 16 GB RAM&lt;br /&gt;
* AMD Radeon 6870 HD 1GB GPU&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ga-990fxa-ud7_e.pdf Gigabyte GA-990FXA-UD7] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;maltodextrin&#039;&#039; ==&lt;br /&gt;
(*specs are outdated at least as of 2023-05-27*)&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
Maltodextrin was an office terminal. It was upgraded in Spring 2014 after an unidentified failure. Not operational (no video output) as of July 2022.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i3-4130 @ 3.40 GHz&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/E8425_H81I_PLUS.pdf ASUS H81-PLUS] Motherboard&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;natural-flavours&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Natural-flavours is an office terminal; it used to be our mirror.&lt;br /&gt;
&lt;br /&gt;
In Fall 2016, it received a major upgrade thanks the MathSoc&#039;s Capital Improvement Fund.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i7-6700k&lt;br /&gt;
* 2x8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Cup Holder (DVD drive has power, but not connected to mother board)&lt;br /&gt;
= UPS =&lt;br /&gt;
&lt;br /&gt;
All of the machines in the MC 3015 machine room are connected to one of our UPSs.&lt;br /&gt;
&lt;br /&gt;
All of our UPSs can be monitored via CSCF:&lt;br /&gt;
&lt;br /&gt;
* MC3015-UPS-B2&lt;br /&gt;
* mc-3015-e7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced July 2014) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-e7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-f7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced Feb 2017) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-f7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2010) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2004) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
&lt;br /&gt;
We will receive email alerts for any issues with the UPS. Their status can be monitored via [[SNMP]].&lt;br /&gt;
&lt;br /&gt;
TODO: Fix labels &amp;amp; verify info is correct &amp;amp; figure out why we can&#039;t talk to cacti.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_05_July_2025&amp;diff=5386</id>
		<title>Meeting:Termcom/Saturday 05 July 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_05_July_2025&amp;diff=5386"/>
		<updated>2025-07-05T19:07:52Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;* Nettapp talking, will get HBA card * Get NVME ssds for sorbitol to use as cache drives * Citric-Acid HBA might be dying? It kinda slow, and weird * Use citric-acid only for proxmox testing then throw out * Citric-acid gets no kerberos, and nfs for now * 100 new nettapp drives are installed, about 2tb * Get the cards from Nathan! * Kimie, Samuel help setup the new server in DC * Samuel help setup Matrix server * Add passkey via keycloak system * Signing ssh keys * Fixin...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* Nettapp talking, will get HBA card&lt;br /&gt;
* Get NVME ssds for sorbitol to use as cache drives&lt;br /&gt;
* Citric-Acid HBA might be dying? It kinda slow, and weird&lt;br /&gt;
* Use citric-acid only for proxmox testing then throw out&lt;br /&gt;
* Citric-acid gets no kerberos, and nfs for now&lt;br /&gt;
* 100 new nettapp drives are installed, about 2tb&lt;br /&gt;
* Get the cards from Nathan!&lt;br /&gt;
* Kimie, Samuel help setup the new server in DC&lt;br /&gt;
* Samuel help setup Matrix server&lt;br /&gt;
* Add passkey via keycloak system&lt;br /&gt;
* Signing ssh keys&lt;br /&gt;
* Fixing office bluetooth!????&lt;br /&gt;
* NTP server?&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Proxmox&amp;diff=5385</id>
		<title>Proxmox</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Proxmox&amp;diff=5385"/>
		<updated>2025-07-04T21:40:29Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;== Setting up Proxmox == To setup proxmox, from `Server View`, open the `Datacenter` page. Then go to `Permissions -&amp;gt; Realms`.  Then just make sure pam is setup lol&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setting up Proxmox ==&lt;br /&gt;
To setup proxmox, from `Server View`, open the `Datacenter` page. Then go to `Permissions -&amp;gt; Realms`.&lt;br /&gt;
&lt;br /&gt;
Then just make sure pam is setup lol&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Main_Page&amp;diff=5384</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Main_Page&amp;diff=5384"/>
		<updated>2025-07-04T21:15:11Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Software Infrastructure */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This is the Wiki of the [[Computer Science Club]]. Feel free to start adding pages and information.&lt;br /&gt;
&lt;br /&gt;
[[Special:AllPages]]&lt;br /&gt;
&lt;br /&gt;
== Member/Club Rep Documentation ==&lt;br /&gt;
To access our Linux machines, see [[How to SSH]] and select one of the general-use machines from [[Machine List#General-Use Servers]].&lt;br /&gt;
&lt;br /&gt;
To host a website, see [[Web Hosting]]. If you are trying to host websites for clubs, see [[Club Hosting]].&lt;br /&gt;
&lt;br /&gt;
To use our VPS services (similar to Linode and Amazon EC2), see [https://docs.cloud.csclub.uwaterloo.ca/ CSC Cloud Documentation]. Note that you&#039;ll need to activate your account on one of CSC&#039;s machines before using the management panel.&lt;br /&gt;
&lt;br /&gt;
To view instruction on playing music at the office, see [[Music]].&lt;br /&gt;
&lt;br /&gt;
To use our Nextcloud instance (similar to Google Drive and Dropbox), go to [https://files.csclub.uwaterloo.ca CSC Files].&lt;br /&gt;
&lt;br /&gt;
=== Guides ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[New Member Guide]]&lt;br /&gt;
* [[Club Hosting]]&lt;br /&gt;
* [[Web Hosting]]&lt;br /&gt;
* [[Git Hosting]]&lt;br /&gt;
* [[How to IRC]]&lt;br /&gt;
* [[How to SSH]]&lt;br /&gt;
* [[MySQL]]&lt;br /&gt;
* [[PostgreSQL]]&lt;br /&gt;
* [https://docs.cloud.csclub.uwaterloo.ca/ CSC Cloud Documentation]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== News and Events ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Meetings]]&lt;br /&gt;
* [[Talks]]&lt;br /&gt;
* [[Projects]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Committees Documentation ==&lt;br /&gt;
=== Club Operation ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Budget Guide]]&lt;br /&gt;
* [[ceo]]&lt;br /&gt;
* [[Exec Manual]]&lt;br /&gt;
* [[MEF Guide]]&lt;br /&gt;
* [[Office Policies]]&lt;br /&gt;
* [[Office Staff]]&lt;br /&gt;
* [[Sysadmin Guide]]&lt;br /&gt;
* [[How to (Extra) Ban Someone]]&lt;br /&gt;
* [[SCS Guide]]&lt;br /&gt;
* [[Kerberos |Password Reset]]&lt;br /&gt;
* [[Keys and Fobs]]&lt;br /&gt;
&lt;br /&gt;
* [[Talks Guide]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hardware Infrastructure (the bare metals) ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Disk Drive RMA Process]]&lt;br /&gt;
* [[Machine List]]&lt;br /&gt;
* [[IPMI101]]&lt;br /&gt;
* [[New NetApp]]&lt;br /&gt;
* [[Switches]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Software Infrastructure ===&lt;br /&gt;
To see a complete list of services, where to find them and when they are updated, see [[Service List]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[ADFS]]&lt;br /&gt;
* [[Backups]]&lt;br /&gt;
* [[DNS]]&lt;br /&gt;
* [[Debian Repository]]&lt;br /&gt;
* [[Firewall]]&lt;br /&gt;
* [[Kerberos]]&lt;br /&gt;
* [[MatterMost]]&lt;br /&gt;
* [[Load-balancer]]&lt;br /&gt;
* [[Proxmox]]&lt;br /&gt;
* [[Plane]]&lt;br /&gt;
* [[RT]]&lt;br /&gt;
* [[Keycloak]]&lt;br /&gt;
* [[KVM]]&lt;br /&gt;
* [[LDAP]]&lt;br /&gt;
* [[Network]]&lt;br /&gt;
* [[New CSC Machine]]&lt;br /&gt;
* [[Observability]]&lt;br /&gt;
* [[OID Assignment]]&lt;br /&gt;
* [[Podman]]&lt;br /&gt;
* [[Scratch]]&lt;br /&gt;
* [[SNMP]]&lt;br /&gt;
* [[SSL]]&lt;br /&gt;
* [[Syscom Todo]]&lt;br /&gt;
* [[Systemd]]&lt;br /&gt;
* [[Systemd-nspawn]]&lt;br /&gt;
* [[Two-Factor Authentication]]&lt;br /&gt;
* [[UID/GID Assignment]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Application List]]&lt;br /&gt;
* [[BigBlueButton]]&lt;br /&gt;
* [[Mail]]&lt;br /&gt;
* [[Mailing Lists]]&lt;br /&gt;
* [[Mirror]]&lt;br /&gt;
* [[Music]]&lt;br /&gt;
* [[Nextcloud]]&lt;br /&gt;
* [[Printing]]&lt;br /&gt;
* [[Pulseaudio]]&lt;br /&gt;
* [[Webmail]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== CSC Cloud ===&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Ceph]]&lt;br /&gt;
* [[Cloud Networking]]&lt;br /&gt;
* [[CloudStack]]&lt;br /&gt;
* [[CloudStack Templates]]&lt;br /&gt;
* [[Kubernetes]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Miscellaneous ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Acronyms]]&lt;br /&gt;
* [[Budget]]&lt;br /&gt;
* [[Executive]]&lt;br /&gt;
* [[Past Executive]]&lt;br /&gt;
* [[History]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Historical ==&lt;br /&gt;
&amp;lt;div style=&amp;quot;-webkit-column-count:3; -moz-column-count:3; column-count:3;&amp;quot;&amp;gt;&lt;br /&gt;
* [[Robot Arm]]&lt;br /&gt;
* [[Webcams]]&lt;br /&gt;
* [[Website]]&lt;br /&gt;
* [[Digital Cutter]]&lt;br /&gt;
* [[Electronics]]&lt;br /&gt;
* [[NetApp]]&lt;br /&gt;
* [[Frosh]]&lt;br /&gt;
* [[Virtualization (LXC Containers)]]&lt;br /&gt;
* [[Serial Connections]]&lt;br /&gt;
* [[Library]]&lt;br /&gt;
* [[MEF Proposals]]&lt;br /&gt;
* [[Proposed Constitution Changes]]&lt;br /&gt;
* [[NFS/Kerberos]]&lt;br /&gt;
* [[Hardware]]&lt;br /&gt;
* [[Imapd Guide]]&lt;br /&gt;
__NOTOC__&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5382</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5382"/>
		<updated>2025-06-30T18:58:32Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pyceo.png|thumb|300px|right|&amp;lt;tt&amp;gt;pyceo&amp;lt;/tt&amp;gt;&#039;s main menu screen]]&lt;br /&gt;
&lt;br /&gt;
ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, was re-written in python by Michael Spang in early 2007, and re-written again (in Python) by Syscom in 2020-2021. The source-code for ceo can be found in git: [https://git.csclub.uwaterloo.ca/public/pyceo https://git.csclub.uwaterloo.ca/public/pyceo].&lt;br /&gt;
&lt;br /&gt;
= Instructions/Usage =&lt;br /&gt;
ceo can be accessed by running the &amp;quot;ceo&amp;quot; command from a terminal, or terminal emulator.&lt;br /&gt;
By default, a curses-based menu interface is presented. Use the arrow keys to navigate;&lt;br /&gt;
on many screens, pressing a letter will select the next menu item beginning with that letter.&lt;br /&gt;
&lt;br /&gt;
=== Command-line Mode ===&lt;br /&gt;
Run &amp;lt;tt&amp;gt;ceo --help&amp;lt;/tt&amp;gt; to see a list of command-line utilities.&lt;br /&gt;
&lt;br /&gt;
== Adding a New Member ==&lt;br /&gt;
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecting &amp;quot;New Member&amp;quot; in ceo and following the on-screen instructions.  The new member&#039;s username is to be identical to their WatIAM username, if applicable.  For WatIAM users, the name and program fields will automatically be filled after a username is provided.&lt;br /&gt;
&lt;br /&gt;
== Renewing/Extending a Membership ==&lt;br /&gt;
A membership can be renewed or extended by selecting &amp;quot;Renew Membership&amp;quot; in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
== Hosted Clubs ==&lt;br /&gt;
Clubs are hosted free of charge.  To create a new club account use the &amp;quot;New Club&amp;quot; option in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
=== Club Representatives ===&lt;br /&gt;
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the &amp;quot;New Club Rep&amp;quot; option, and renewed with the &amp;quot;Renew Club Rep&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
=== Other Club Features ===&lt;br /&gt;
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide on how to fix things after screwing up =&lt;br /&gt;
&lt;br /&gt;
== Changing a member to a nonmember (club rep) and vice-versa ==&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs&lt;br /&gt;
 kinit # if you don&#039;t already have &amp;lt;u&amp;gt;[[Kerberos#raymo&#039;s guide to keytabs|keytabs]]&amp;lt;/u&amp;gt; set up&lt;br /&gt;
 ldapvi -Y GSSAPI&lt;br /&gt;
Use &amp;lt;code&amp;gt;/&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; to search for the user in vi and change &amp;lt;code&amp;gt;term&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; (or vice-versa) for the relevant terms. When you&#039;re done deleting the file should no longer contain the username. Save and quit (&amp;lt;code&amp;gt;:wq&amp;lt;/code&amp;gt;) and press &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; when prompted.&lt;br /&gt;
&lt;br /&gt;
== Deleting a member ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RULE: Never do this without good reason. We should NEVER delete accounts or groups that have been used before.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you accidentally created a club rep as a regular member instead, see the [previous section|Ceo#Changing a member to a nonmember (club rep) and vice-versa]. For another reason that doesn&#039;t break the &#039;&#039;&#039;RULE&#039;&#039;&#039; above, first follow the steps in the change membership section above, up to and including &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;, then delete both the user and group LDAP records. These are separated by blank lines. When you&#039;re done deleting the file should no longer contain the username. Save and quit as if changing membership. Then:&lt;br /&gt;
 ssh auth1&lt;br /&gt;
 sudo kadmin.local&lt;br /&gt;
 delprinc &amp;lt;username&amp;gt;&lt;br /&gt;
 ssh phosphoric acid&lt;br /&gt;
 sudo rm -rfI /users/&amp;lt;username&amp;gt;&lt;br /&gt;
Unsubscribe the user from [https://mailman.csclub.uwaterloo.ca/postorius/lists/syscom.csclub.uwaterloo.ca/members/member/ csc-general on mailman]&lt;br /&gt;
&lt;br /&gt;
= Feature Requests and Ideas =&lt;br /&gt;
&lt;br /&gt;
* Create a graphical and/or online version of ceo&lt;br /&gt;
* Add new members to fuse and plugdev groups&lt;br /&gt;
&lt;br /&gt;
= Contributing to CEO =&lt;br /&gt;
&lt;br /&gt;
== Preliminary Steps ==&lt;br /&gt;
=== Generate a GPG Key ===&lt;br /&gt;
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run&lt;br /&gt;
&lt;br /&gt;
 gpg --gen-key&lt;br /&gt;
&lt;br /&gt;
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.&lt;br /&gt;
&lt;br /&gt;
=== Add Your Key To Mirror ===&lt;br /&gt;
 ssh mirror.csclub.uwaterloo.ca&lt;br /&gt;
 gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
Locate the 8-character id string. For example &amp;quot;16E37635&amp;quot; in&lt;br /&gt;
 /users/m2ellis/.gnupg/pubring.gpg&lt;br /&gt;
 ---------------------------------&lt;br /&gt;
 pub   1024D/&#039;&#039;&#039;16E37635&#039;&#039;&#039; 2010-08-19&lt;br /&gt;
 uid                  Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you must add this id into the file /srv/debian/conf/uploaders on mirror&lt;br /&gt;
 sudo vim /srv/debian/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
Now in another terminal run&lt;br /&gt;
 gpg --export --armor $KEYID&lt;br /&gt;
&lt;br /&gt;
Now on mirror run&lt;br /&gt;
 sudo -s&lt;br /&gt;
 GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example&lt;br /&gt;
 gpg: key 16E37635: public key &amp;quot;Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&amp;quot; imported&lt;br /&gt;
 gpg: Total number processed: 1&lt;br /&gt;
 gpg:               imported: 1&lt;br /&gt;
&lt;br /&gt;
== Making Changes ==&lt;br /&gt;
The source-code for ceo can be found in git: [http://git.csclub.uwaterloo.ca/?p=public/pyceo.git;a=summary csclub:/users/git/public/pyceo.git]. To checkout the code run&lt;br /&gt;
&lt;br /&gt;
 git clone ~git/public/pyceo.git&lt;br /&gt;
&lt;br /&gt;
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run&lt;br /&gt;
&lt;br /&gt;
 dch -i&lt;br /&gt;
&lt;br /&gt;
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!).&lt;br /&gt;
&lt;br /&gt;
Make sure to set a distribution, like distribution UNRELEASED is NOT allowed. So change it to whatever distribution you&#039;re deploying to in the &amp;lt;code&amp;gt;debian/changelog&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
Then you&#039;ll need to make a tar.gz file&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar czf ceo_1.0.31.orig.tar.gz pyceo/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;To build the package run debuild&lt;br /&gt;
&lt;br /&gt;
 debuild&lt;br /&gt;
&lt;br /&gt;
This will generate the *.deb files in the parent directory.&lt;br /&gt;
&lt;br /&gt;
=== Uploading Changes to Mirror ===&lt;br /&gt;
After you make the package, you&#039;ll need to sign it, this can be via debsign. (You can find the .changes file in the parent directory)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
debsign -k[GPG Key ID] [package].changes &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the directory containing the *.deb and *.changes files run&lt;br /&gt;
&lt;br /&gt;
=== DO NOT USE DUPLOAD, THIS IS LEGACY DOCUMENTATION, USE `dput` INSTEAD. ASK SIRACHA FOR CONFIGS ===&lt;br /&gt;
&#039;&#039;&#039;This needs to be done on high-fructose-corn-syrup because of the dupload configs&#039;&#039;&#039;&lt;br /&gt;
 dupload&lt;br /&gt;
&lt;br /&gt;
Then ssh to mirror and run&lt;br /&gt;
 sudo rrr-incoming&lt;br /&gt;
&lt;br /&gt;
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.&lt;br /&gt;
&lt;br /&gt;
== How to deploy CEO ==&lt;br /&gt;
Firstly, cry&lt;br /&gt;
&lt;br /&gt;
Secondly, check the usual place for all the passwords, install ceo. Install ceod if needed, and edit the configs to make sure the correct servers are contacted for the relevant services. Like install ceod on the management node of cloudstack.&lt;br /&gt;
&lt;br /&gt;
Then setup the kerberos tickets&lt;br /&gt;
&lt;br /&gt;
Then go to `/etc/csc`, and fill in all the ceo.ini, and ceod.ini configs&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_29_June_2025&amp;diff=5378</id>
		<title>Meeting:Termcom/Saturday 29 June 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_29_June_2025&amp;diff=5378"/>
		<updated>2025-06-29T18:58:05Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Will setup Proxmox on Citric-acid &lt;br /&gt;
&lt;br /&gt;
- Will setup a different method of VHosts:&lt;br /&gt;
&lt;br /&gt;
Kubernetes-backed ingress:&lt;br /&gt;
&lt;br /&gt;
1. Create a self-managed k8s cluster in the virtualized environment (eg. rke2)&lt;br /&gt;
&lt;br /&gt;
2. Configure ingress (eg. Istio)&lt;br /&gt;
&lt;br /&gt;
3. Configure a software-based load balancer (eg. kube-vip, metallb) or an external load balancer (eg. from CSCF/IST)&lt;br /&gt;
&lt;br /&gt;
4. Configure https://gateway-api.sigs.k8s.io/&lt;br /&gt;
&lt;br /&gt;
CEO Integration: Write a custom kubernetes operator, or use a dynamic client for modifying vhost/stream configs.&lt;br /&gt;
&lt;br /&gt;
vhost -&amp;gt; HTTPRoute, GRPCRoute&lt;br /&gt;
stream -&amp;gt; TLSRoute&lt;br /&gt;
&lt;br /&gt;
- Taking out yerba-mate, and corn-syrup&lt;br /&gt;
- Centralising all our scripts&lt;br /&gt;
- Updating ansible scripts&lt;br /&gt;
- Standardising our configs&lt;br /&gt;
&lt;br /&gt;
- Rewrite pyceo as Go - Ohm, Nathan, Jenny&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_29_June_2025&amp;diff=5377</id>
		<title>Meeting:Termcom/Saturday 29 June 2025</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_29_June_2025&amp;diff=5377"/>
		<updated>2025-06-29T18:30:40Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;- Will setup Proxmox on Citric-acid  - Will setup a different method of VHosts: Kubernetes-backed ingress: 1. Create a self-managed k8s cluster in the virtualized environment (eg. rke2) 2. Configure ingress (eg. Istio) 3. Configure a software-based load balancer (eg. kube-vip, metallb) or an external load balancer (eg. from CSCF/IST) 4. Configure https://gateway-api.sigs.k8s.io/ CEO Integration: Write a custom kubernetes operator, or use a dynamic client for modifying vh...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;- Will setup Proxmox on Citric-acid &lt;br /&gt;
- Will setup a different method of VHosts:&lt;br /&gt;
Kubernetes-backed ingress:&lt;br /&gt;
1. Create a self-managed k8s cluster in the virtualized environment (eg. rke2)&lt;br /&gt;
2. Configure ingress (eg. Istio)&lt;br /&gt;
3. Configure a software-based load balancer (eg. kube-vip, metallb) or an external load balancer (eg. from CSCF/IST)&lt;br /&gt;
4. Configure https://gateway-api.sigs.k8s.io/&lt;br /&gt;
CEO Integration: Write a custom kubernetes operator, or use a dynamic client for modifying vhost/stream configs.&lt;br /&gt;
&lt;br /&gt;
vhost -&amp;gt; HTTPRoute, GRPCRoute&lt;br /&gt;
stream -&amp;gt; TLSRoute&lt;br /&gt;
&lt;br /&gt;
- Taking out yerba-mate, and corn-syrup&lt;br /&gt;
- Centralising all our scripts&lt;br /&gt;
- Updating ansible scripts&lt;br /&gt;
- Standardising our configs&lt;br /&gt;
&lt;br /&gt;
- Rewrite pyceo as Go&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5374</id>
		<title>IPMI101</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5374"/>
		<updated>2025-06-24T03:11:29Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Citric-acid/Sorbitol */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guide to IPMI (IPMI 101) =&lt;br /&gt;
&lt;br /&gt;
IPMI is a necessary evil. Let’s learn to make the best of it.&lt;br /&gt;
&lt;br /&gt;
== Setting up IPMI ==&lt;br /&gt;
&lt;br /&gt;
# Install ipmitool&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install ipmitool&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load IPMI modules (they are included in most upstream kernels)&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need a kernel module specific to your motherboard’s manufacture as some BMC/LOMs do not conform to IPMI spec and thus need a translation layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# modprobe ipmi_*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locally connect to the &amp;lt;code&amp;gt;/dev/ipmi&amp;lt;/code&amp;gt; interface&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; help&lt;br /&gt;
&amp;amp;gt; mc info&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Securing IPMI ==&lt;br /&gt;
&lt;br /&gt;
Note that root on the machine is root on the BMC and vice versa.&lt;br /&gt;
&lt;br /&gt;
# User administration&lt;br /&gt;
&lt;br /&gt;
(re)set the password, rename the admin account to root and delete any extra users as they can have surprising privilege. You may have to use the BMC’s web interface delete accounts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; user list 1&lt;br /&gt;
ID Name ...&lt;br /&gt;
2  ADMIN ...&lt;br /&gt;
&amp;amp;gt; user set password 2&lt;br /&gt;
User id 2: *******&lt;br /&gt;
User id 2: *******&lt;br /&gt;
&amp;amp;gt; user set username 2 root&lt;br /&gt;
&amp;amp;gt; user disable $other_user_ids&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Disable NULL password and cipher suite 0&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the $channel is usually 0 but can range from 0-10 and there can be multiple NICs and so multiple channels to fix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; lan print $channel&lt;br /&gt;
&amp;amp;gt; lan set $channel auth ADMIN MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth CALLBACK MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth USER MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth OPERATOR MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel cipher_privs XXXaXXXXXXXXXXX&lt;br /&gt;
&amp;amp;gt; lan print $channel&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Configuring networking ==&lt;br /&gt;
&lt;br /&gt;
Note once again that there are sometimes multiple channels, to find the correct channel it is helpful to use either trial and error and/or an ARP scanner to find the correct MAC address. Usually the channel is 0 but I have seen 1, 8 and 17. Especially when there are multiple NICs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; lan print $channel&lt;br /&gt;
&amp;amp;gt; lan set $channel ipsrc static&lt;br /&gt;
&amp;amp;gt; lan set $channel ipaddr 10.15.134.?&lt;br /&gt;
&amp;amp;gt; lan set $channel defgw ipaddr 10.15.134.1&lt;br /&gt;
&amp;amp;gt; lan set $channel netmask 255.255.255.0&lt;br /&gt;
// if you have vlan tagging enabled on the switch port, useful for a shared NIC&lt;br /&gt;
&amp;amp;gt; lan set $channel vlan id 520&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Configuring Serial over LAN ==&lt;br /&gt;
&lt;br /&gt;
To enable serial over LAN you need to ensure that it is enabled in your BIOS or EFI setup utility and further note the baud rate. 115200 is used as an example below. Note that GRUB is the only boot loader that takes input via serial properly, in my experience. Syslinux failed horribly on corn-syrup.&lt;br /&gt;
&lt;br /&gt;
Paste the following into /etc/default/grub.d/99-csclub.cfg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;amp;quot;console=tty1 console=ttyS1,115200n8&amp;amp;quot;&lt;br /&gt;
GRUB_TERMINAL_INPUT=&amp;amp;quot;console serial&amp;amp;quot;&lt;br /&gt;
GRUB_TERMINAL_OUTPUT=&amp;amp;quot;console serial&amp;amp;quot;&lt;br /&gt;
GRUB_SERIAL_COMMAND=&amp;amp;quot;serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1&amp;amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;// on debian based distros&lt;br /&gt;
// Yay, Debian magic :\&lt;br /&gt;
# update-grub&lt;br /&gt;
// on upstream packages (Arch, Fedora, etc.)&lt;br /&gt;
# grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
# reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= iDRAC =&lt;br /&gt;
== riboflavin ==&lt;br /&gt;
riboflavin is using iDRAC 6. The web console can be viewed from https://riboflavin-ipmi.csclub.uwaterloo.ca; if you are not on campus, you can use a [[How_to_SSH#SOCKS_proxy|SOCKS proxy]]. Unfortunately, the virtual console uses Java Web Start, which is now deprecated. Here&#039;s a workaround which you can use instead.&lt;br /&gt;
&lt;br /&gt;
From the web UI, go to the &amp;quot;Console/Media&amp;quot; tab and click the &amp;quot;Launch virtual console&amp;quot; button. This will download a file whose name starts with &amp;quot;viewer.jnlp&amp;quot;. Now go to https://www.java.com and download JRE 8; any later version will not have support for JWS (note that OpenJDK will not work; JWS was a proprietary framework from Sun/Oracle). Unpack the tarball, open jre1.8.0_391/lib/security/java.security in a text editor, and comment out the following properties (note that each property spans multiple lines):&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.certpath.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.jar.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.tls.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are off-campus, you will need to setup some proxying so that the Java application can access ports 443 and 5900 on riboflavin-ipmi. In the example below, I am using caffeine as a jump host, but any machine on campus should do:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -L 5443:localhost:5443 -L 5900:localhost:5900 caffeine.csclub.uwaterloo.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now on caffeine, open a tmux/screen session, and run the following commands in two different panes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;socat TCP-LISTEN:5443,fork TCP:riboflavin-ipmi:443&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;socat TCP-LISTEN:5900,fork TCP:riboflavin-ipmi:5900&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back on your personal machine, open the viewer.jnlp file in a text editor and perform the following:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Replace all instances of &amp;lt;code&amp;gt;riboflavin-ipmi.csclub.uwaterloo.ca:443&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;localhost:5443&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Under the &amp;lt;code&amp;gt;application-desc&amp;lt;/code&amp;gt; element, the first &amp;lt;code&amp;gt;argument&amp;lt;/code&amp;gt; child element should say &amp;lt;code&amp;gt;ip=riboflavin-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;. Replace this with &amp;lt;code&amp;gt;ip=localhost&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt;Under the &amp;lt;code&amp;gt;application-desc&amp;lt;/code&amp;gt; element, there are child &amp;lt;code&amp;gt;argument&amp;lt;/code&amp;gt;elements for &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt;. For some reason these are set to numbers; set these to the username and password for IPMI (username should be &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
jre1.8.0_391/bin/javaws viewer.jnlp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, the virtual console should eventually appear:&lt;br /&gt;
[[File:Riboflavin-idrac-virtual-console.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== carbonated-water ==&lt;br /&gt;
carbonated-water is also using iDRAC 6, but seems to have some kind of TLS certificate configuration which prevents modern browsers from loading its web UI. So we&#039;re going to run an old version of Firefox inside a Podman container instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
podman run --name firefox -it -e DISPLAY --net=host -v $XAUTHORITY:/root/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix debian:9-slim bash&lt;br /&gt;
sed -i &#039;s/deb\.debian\.org/archive.debian.org/&#039; /etc/apt/sources.list&lt;br /&gt;
sed -i &#039;s/security\.debian\.org/archive.debian.org/&#039; /etc/apt/sources.list&lt;br /&gt;
sed -i &#039;/stretch-updates/d&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
apt install firefox-esr&lt;br /&gt;
firefox&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next, follow the instructions here to set up a SOCKS proxy: [[How to SSH#SOCKS proxy]]&lt;br /&gt;
&lt;br /&gt;
Now visit https://carbonated-water-ipmi.csclub.uwaterloo.ca from Firefox, login using the IPMI credentials, and download the JNLP file. Copy it from the Podman container to your computer (replace &amp;quot;viewer.jnlp&amp;quot; with the full file name):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
podman cp firefox:/root/Downloads/viewer.jnlp launch.jnlp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Follow the same steps as done for riboflavin to edit the JDK settings and JNLP file. In addition, there are a few more settings which we need to tweak:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;jre1.8.0_391/bin/ControlPanel&amp;lt;/code&amp;gt;, go to the Advanced tab, scroll down and check &amp;quot;TLS 1.0&amp;quot; and &amp;quot;TLS 1.1&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;We also need to disable OCSP. In the same window, set &amp;quot;Check for signed code certificate revocation using&amp;quot; to &amp;quot;Certificate Revocation Lists (CRLs)&amp;quot; and set &amp;quot;Check for TLS certificate revocation using&amp;quot; to &amp;quot;Certificate Revocation Lists (CRLs)&amp;quot; (see [https://www.kunxi.org/2015/01/bypass-the-certpathvalidatorexception-caused-by-malformed-ocsp-response/ here] for the reference).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
[[File:java-control-panel-advanced.png]]&lt;br /&gt;
&lt;br /&gt;
Now you can launch the JNLP file as usual.&lt;br /&gt;
&lt;br /&gt;
== Citric-acid/Sorbitol ==&lt;br /&gt;
To access them, there&#039;s a pod on xylitol that can be run with the command;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
podman run -d -p 5800:5800 -p 5900:5900 -e IDRAC_HOST=[url] -e IDRAC_USER=[usr]   -e IDRAC_PASSWORD=[password] -v /root/vmedia:/vmedia --name citric-idrac domistyle/idrac6                          &lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then you can proxy to xylitol, and just connect to that port to get ipmi console. &lt;br /&gt;
&lt;br /&gt;
= Supermicro =&lt;br /&gt;
== ginkgo ==&lt;br /&gt;
To access the virtual console on ginkgo, the steps are the same as those for riboflavin, with the following changes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the launch.jnlp file, in the root &amp;lt;code&amp;gt;&amp;lt;jnlp&amp;gt;&amp;lt;/code&amp;gt; tag, change the value of the &amp;lt;code&amp;gt;codebase&amp;lt;/code&amp;gt; attribute from &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://ginkgo-ipmi.csclub.uwaterloo.ca:443&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://localhost:5443&amp;lt;/code&amp;gt;. Next, in the first &amp;lt;code&amp;gt;&amp;lt;argument&amp;gt;&amp;lt;/code&amp;gt; element under &amp;lt;code&amp;gt;&amp;lt;application-desc&amp;gt;&amp;lt;/code&amp;gt;, replace &amp;lt;code&amp;gt;ginkgo-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;. These are the only changes which you should make to this file (unless you are already on the campus network, in which case you do not need to modify this file at all).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;jre1.8.0_391/bin/ControlPanel&amp;lt;/code&amp;gt;, go to the Security tab, click &amp;quot;Edit Site List&amp;quot;, and add &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://ginkgo-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; as an exception.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5373</id>
		<title>IPMI101</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5373"/>
		<updated>2025-06-24T03:04:12Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* iDRAC */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Guide to IPMI (IPMI 101) =&lt;br /&gt;
&lt;br /&gt;
IPMI is a necessary evil. Let’s learn to make the best of it.&lt;br /&gt;
&lt;br /&gt;
== Setting up IPMI ==&lt;br /&gt;
&lt;br /&gt;
# Install ipmitool&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install ipmitool&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Load IPMI modules (they are included in most upstream kernels)&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You may also need a kernel module specific to your motherboard’s manufacture as some BMC/LOMs do not conform to IPMI spec and thus need a translation layer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# modprobe ipmi_*&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;3&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Locally connect to the &amp;lt;code&amp;gt;/dev/ipmi&amp;lt;/code&amp;gt; interface&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; help&lt;br /&gt;
&amp;amp;gt; mc info&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Securing IPMI ==&lt;br /&gt;
&lt;br /&gt;
Note that root on the machine is root on the BMC and vice versa.&lt;br /&gt;
&lt;br /&gt;
# User administration&lt;br /&gt;
&lt;br /&gt;
(re)set the password, rename the admin account to root and delete any extra users as they can have surprising privilege. You may have to use the BMC’s web interface delete accounts.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; user list 1&lt;br /&gt;
ID Name ...&lt;br /&gt;
2  ADMIN ...&lt;br /&gt;
&amp;amp;gt; user set password 2&lt;br /&gt;
User id 2: *******&lt;br /&gt;
User id 2: *******&lt;br /&gt;
&amp;amp;gt; user set username 2 root&lt;br /&gt;
&amp;amp;gt; user disable $other_user_ids&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;ol start=&amp;quot;2&amp;quot; style=&amp;quot;list-style-type: decimal;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Disable NULL password and cipher suite 0&amp;lt;/li&amp;gt;&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that the $channel is usually 0 but can range from 0-10 and there can be multiple NICs and so multiple channels to fix.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; lan print $channel&lt;br /&gt;
&amp;amp;gt; lan set $channel auth ADMIN MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth CALLBACK MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth USER MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel auth OPERATOR MD5&lt;br /&gt;
&amp;amp;gt; lan set $channel cipher_privs XXXaXXXXXXXXXXX&lt;br /&gt;
&amp;amp;gt; lan print $channel&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Configuring networking ==&lt;br /&gt;
&lt;br /&gt;
Note once again that there are sometimes multiple channels, to find the correct channel it is helpful to use either trial and error and/or an ARP scanner to find the correct MAC address. Usually the channel is 0 but I have seen 1, 8 and 17. Especially when there are multiple NICs.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# ipmitool shell&lt;br /&gt;
&amp;amp;gt; lan print $channel&lt;br /&gt;
&amp;amp;gt; lan set $channel ipsrc static&lt;br /&gt;
&amp;amp;gt; lan set $channel ipaddr 10.15.134.?&lt;br /&gt;
&amp;amp;gt; lan set $channel defgw ipaddr 10.15.134.1&lt;br /&gt;
&amp;amp;gt; lan set $channel netmask 255.255.255.0&lt;br /&gt;
// if you have vlan tagging enabled on the switch port, useful for a shared NIC&lt;br /&gt;
&amp;amp;gt; lan set $channel vlan id 520&amp;lt;/pre&amp;gt;&lt;br /&gt;
== Configuring Serial over LAN ==&lt;br /&gt;
&lt;br /&gt;
To enable serial over LAN you need to ensure that it is enabled in your BIOS or EFI setup utility and further note the baud rate. 115200 is used as an example below. Note that GRUB is the only boot loader that takes input via serial properly, in my experience. Syslinux failed horribly on corn-syrup.&lt;br /&gt;
&lt;br /&gt;
Paste the following into /etc/default/grub.d/99-csclub.cfg:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GRUB_CMDLINE_LINUX=&amp;amp;quot;console=tty1 console=ttyS1,115200n8&amp;amp;quot;&lt;br /&gt;
GRUB_TERMINAL_INPUT=&amp;amp;quot;console serial&amp;amp;quot;&lt;br /&gt;
GRUB_TERMINAL_OUTPUT=&amp;amp;quot;console serial&amp;amp;quot;&lt;br /&gt;
GRUB_SERIAL_COMMAND=&amp;amp;quot;serial --speed=115200 --unit=1 --word=8 --parity=no --stop=1&amp;amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then run:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;// on debian based distros&lt;br /&gt;
// Yay, Debian magic :\&lt;br /&gt;
# update-grub&lt;br /&gt;
// on upstream packages (Arch, Fedora, etc.)&lt;br /&gt;
# grub-mkconfig -o /boot/grub/grub.cfg&lt;br /&gt;
&lt;br /&gt;
# reboot&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= iDRAC =&lt;br /&gt;
== riboflavin ==&lt;br /&gt;
riboflavin is using iDRAC 6. The web console can be viewed from https://riboflavin-ipmi.csclub.uwaterloo.ca; if you are not on campus, you can use a [[How_to_SSH#SOCKS_proxy|SOCKS proxy]]. Unfortunately, the virtual console uses Java Web Start, which is now deprecated. Here&#039;s a workaround which you can use instead.&lt;br /&gt;
&lt;br /&gt;
From the web UI, go to the &amp;quot;Console/Media&amp;quot; tab and click the &amp;quot;Launch virtual console&amp;quot; button. This will download a file whose name starts with &amp;quot;viewer.jnlp&amp;quot;. Now go to https://www.java.com and download JRE 8; any later version will not have support for JWS (note that OpenJDK will not work; JWS was a proprietary framework from Sun/Oracle). Unpack the tarball, open jre1.8.0_391/lib/security/java.security in a text editor, and comment out the following properties (note that each property spans multiple lines):&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.certpath.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.jar.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;jdk.tls.disabledAlgorithms&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you are off-campus, you will need to setup some proxying so that the Java application can access ports 443 and 5900 on riboflavin-ipmi. In the example below, I am using caffeine as a jump host, but any machine on campus should do:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -L 5443:localhost:5443 -L 5900:localhost:5900 caffeine.csclub.uwaterloo.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now on caffeine, open a tmux/screen session, and run the following commands in two different panes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;socat TCP-LISTEN:5443,fork TCP:riboflavin-ipmi:443&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;code&amp;gt;socat TCP-LISTEN:5900,fork TCP:riboflavin-ipmi:5900&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Back on your personal machine, open the viewer.jnlp file in a text editor and perform the following:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Replace all instances of &amp;lt;code&amp;gt;riboflavin-ipmi.csclub.uwaterloo.ca:443&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;localhost:5443&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Under the &amp;lt;code&amp;gt;application-desc&amp;lt;/code&amp;gt; element, the first &amp;lt;code&amp;gt;argument&amp;lt;/code&amp;gt; child element should say &amp;lt;code&amp;gt;ip=riboflavin-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;. Replace this with &amp;lt;code&amp;gt;ip=localhost&amp;lt;/code&amp;gt;&amp;lt;/li&amp;gt;.&lt;br /&gt;
&amp;lt;li&amp;gt;Under the &amp;lt;code&amp;gt;application-desc&amp;lt;/code&amp;gt; element, there are child &amp;lt;code&amp;gt;argument&amp;lt;/code&amp;gt;elements for &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;passwd&amp;lt;/code&amp;gt;. For some reason these are set to numbers; set these to the username and password for IPMI (username should be &amp;lt;code&amp;gt;root&amp;lt;/code&amp;gt;).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
jre1.8.0_391/bin/javaws viewer.jnlp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If all goes well, the virtual console should eventually appear:&lt;br /&gt;
[[File:Riboflavin-idrac-virtual-console.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
== carbonated-water ==&lt;br /&gt;
carbonated-water is also using iDRAC 6, but seems to have some kind of TLS certificate configuration which prevents modern browsers from loading its web UI. So we&#039;re going to run an old version of Firefox inside a Podman container instead:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
podman run --name firefox -it -e DISPLAY --net=host -v $XAUTHORITY:/root/.Xauthority -v /tmp/.X11-unix:/tmp/.X11-unix debian:9-slim bash&lt;br /&gt;
sed -i &#039;s/deb\.debian\.org/archive.debian.org/&#039; /etc/apt/sources.list&lt;br /&gt;
sed -i &#039;s/security\.debian\.org/archive.debian.org/&#039; /etc/apt/sources.list&lt;br /&gt;
sed -i &#039;/stretch-updates/d&#039; /etc/apt/sources.list&lt;br /&gt;
apt update&lt;br /&gt;
apt install firefox-esr&lt;br /&gt;
firefox&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Next, follow the instructions here to set up a SOCKS proxy: [[How to SSH#SOCKS proxy]]&lt;br /&gt;
&lt;br /&gt;
Now visit https://carbonated-water-ipmi.csclub.uwaterloo.ca from Firefox, login using the IPMI credentials, and download the JNLP file. Copy it from the Podman container to your computer (replace &amp;quot;viewer.jnlp&amp;quot; with the full file name):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
podman cp firefox:/root/Downloads/viewer.jnlp launch.jnlp&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Follow the same steps as done for riboflavin to edit the JDK settings and JNLP file. In addition, there are a few more settings which we need to tweak:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;jre1.8.0_391/bin/ControlPanel&amp;lt;/code&amp;gt;, go to the Advanced tab, scroll down and check &amp;quot;TLS 1.0&amp;quot; and &amp;quot;TLS 1.1&amp;quot;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;We also need to disable OCSP. In the same window, set &amp;quot;Check for signed code certificate revocation using&amp;quot; to &amp;quot;Certificate Revocation Lists (CRLs)&amp;quot; and set &amp;quot;Check for TLS certificate revocation using&amp;quot; to &amp;quot;Certificate Revocation Lists (CRLs)&amp;quot; (see [https://www.kunxi.org/2015/01/bypass-the-certpathvalidatorexception-caused-by-malformed-ocsp-response/ here] for the reference).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
[[File:java-control-panel-advanced.png]]&lt;br /&gt;
&lt;br /&gt;
Now you can launch the JNLP file as usual.&lt;br /&gt;
&lt;br /&gt;
== Citric-acid/Sorbitol ==&lt;br /&gt;
To access them, there&#039;s a pod on xylitol that can be run with the command;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
podman run -d -p 5800:5800 -p 5900:5900 -e IDRAC_HOST=[ip of ipmi stuff] -e IDRAC_USER=[user] -e IDRAC_PASSWORD=[password] -v [directory to mount]:/vmedia --name [server]-idrac domistyle/idrac6&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then you can proxy to xylitol, and just connect to that port to get ipmi console. &lt;br /&gt;
&lt;br /&gt;
= Supermicro =&lt;br /&gt;
== ginkgo ==&lt;br /&gt;
To access the virtual console on ginkgo, the steps are the same as those for riboflavin, with the following changes:&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;In the launch.jnlp file, in the root &amp;lt;code&amp;gt;&amp;lt;jnlp&amp;gt;&amp;lt;/code&amp;gt; tag, change the value of the &amp;lt;code&amp;gt;codebase&amp;lt;/code&amp;gt; attribute from &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://ginkgo-ipmi.csclub.uwaterloo.ca:443&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://localhost:5443&amp;lt;/code&amp;gt;. Next, in the first &amp;lt;code&amp;gt;&amp;lt;argument&amp;gt;&amp;lt;/code&amp;gt; element under &amp;lt;code&amp;gt;&amp;lt;application-desc&amp;gt;&amp;lt;/code&amp;gt;, replace &amp;lt;code&amp;gt;ginkgo-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;localhost&amp;lt;/code&amp;gt;. These are the only changes which you should make to this file (unless you are already on the campus network, in which case you do not need to modify this file at all).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Run &amp;lt;code&amp;gt;jre1.8.0_391/bin/ControlPanel&amp;lt;/code&amp;gt;, go to the Security tab, click &amp;quot;Edit Site List&amp;quot;, and add &amp;lt;code&amp;gt;https&amp;lt;nowiki/&amp;gt;://ginkgo-ipmi.csclub.uwaterloo.ca&amp;lt;/code&amp;gt; as an exception.&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=New_NetApp&amp;diff=5371</id>
		<title>New NetApp</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=New_NetApp&amp;diff=5371"/>
		<updated>2025-06-19T00:05:22Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;At some point in 2017, CSCF and MFCF donated us their FAS&#039;&#039;&#039;XXXX&#039;&#039;&#039; NetApp filers. These filers are to replace the FAS3000 filers currently in use.&lt;br /&gt;
&lt;br /&gt;
Additionally, since we were approaching maximum disk capactiy, the Math Endowment Fund funded a new 24x2TB disk shelf to go with the new filers.&lt;br /&gt;
&lt;br /&gt;
== NetApp Support + Documentation ==&lt;br /&gt;
&lt;br /&gt;
As the filers were decommishioned by both CSCF and MFCF, there is no support of the filers.&lt;br /&gt;
&lt;br /&gt;
Official NetApp documentation is available at https://csclub.uwaterloo.ca/~syscom/netapp-docs/.&lt;br /&gt;
&lt;br /&gt;
At one point, we had access to full information about the NetApp filers on the NetApp support site. At some point, unfortunately, that stopped working. The information provided includes the license keys. We have a copy of the license keys for one of the filers (FS00) but not the other. &#039;&#039;Someone should ask CSCF or MFCF if they have this information recorded somewhere&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Physical Installation ==&lt;br /&gt;
&lt;br /&gt;
Both of the NetApp filers are installed in the MC 3015 machine room. One filer and two disk shelves are located in rack E. The other filer was installed in rack F.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;For simplicity, we decided to only use of the of the filers. We haven’t decided yet what to do with the other filer.&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
FS00 is connected via two 1gbps to mc-rt-3015-mso-a using LACP. Therefore, traffic should be balance between the two connections. If one of the connections goes down, the NetApp will continue to function with just the one connection.&lt;br /&gt;
&lt;br /&gt;
=== Power ===&lt;br /&gt;
&lt;br /&gt;
It is important that we keep the NetApp filer + disk shelves running as long as possible. At the time of installation, the UPS in rack E (mc-3015-e1-ups1) was dedicated for critical services (networking, network file shares and web hosting).&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
&lt;br /&gt;
You can SSH into the NetApp from any CSC host running Debian stretch or lower by running &amp;lt;code&amp;gt;ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -oCiphers=+3des-cbc root@fs00.csclub.uwaterloo.ca&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
There is a Podman container on xylitol called netapp-jumphost with a convenience script in &amp;lt;code&amp;gt;/usr/local/bin/netapp.sh&amp;lt;/code&amp;gt; which invokes the SSH command above. You can simply attach to this container and run the script. You can connect to the container using &amp;lt;code&amp;gt;sudo podman exec -it netapp-jumphost /bin/bash&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you need information about the NetApp, run &amp;lt;code&amp;gt;sysconfig -a&amp;lt;/code&amp;gt; on the NetApp.&lt;br /&gt;
&lt;br /&gt;
=== Modifying &amp;lt;code&amp;gt;/etc&amp;lt;/code&amp;gt; on the NetApp ===&lt;br /&gt;
&lt;br /&gt;
The easiest way to change configuration on the NetApp is to mount its system directory on a different machine (only biloba is allowed to mount it).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre lang=&amp;quot;sh&amp;quot;&amp;gt;mkdir /mnt/fs00&lt;br /&gt;
mount -t nfs -o vers=3,sec=sys fs00.csclub.uwaterloo.ca:/vol/vol0 /mnt/fs00&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The NetApp system directory is currently mounted on dextrose, at /mnt/fs00.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
=== Networking ===&lt;br /&gt;
&lt;br /&gt;
The NetApp is configured in VLAN 530 (CSC Storage).&lt;br /&gt;
&lt;br /&gt;
Here is the networking configuration in &amp;lt;code&amp;gt;etc/rc&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;# create lacp link&lt;br /&gt;
ifgrp create lacp csc_storage -b ip e0a e0b&lt;br /&gt;
ifconfig csc_storage inet 172.19.168.35 netmask 255.255.255.224 mtusize 1500&lt;br /&gt;
ifconfig csc_storage inet6 fd74:6b6a:8eca:4903:c5c::35 prefixlen 64&lt;br /&gt;
route add default 172.19.168.33 1&lt;br /&gt;
route add inet6 default fd74:6b6a:8eca:4903::1 1&lt;br /&gt;
routed on&lt;br /&gt;
options dns.domainname csclub.uwaterloo.ca&lt;br /&gt;
options dns.enable on&lt;br /&gt;
options nis.enable off&lt;br /&gt;
savecore&amp;lt;/pre&amp;gt;&lt;br /&gt;
The CSC DNS servers are configured in &amp;lt;code&amp;gt;etc/hosts&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;nameserver 2620:101:f000:4901:c5c::4&lt;br /&gt;
nameserver 2620:101:f000:7300:c5c::20&lt;br /&gt;
nameserver 129.97.134.4&lt;br /&gt;
nameserver 129.97.18.20&lt;br /&gt;
nameserver 129.97.2.1&lt;br /&gt;
nameserver 129.97.2.2&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;TODO&#039;&#039;&#039;: The NetApp has a dedicated management port. We should take advantage of this and connect that directly to a machine which only the Systems Committee can access. Configuring this port should disable SSH via the non-management ports (this may need additional configuration).&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
=== Disks ===&lt;br /&gt;
&lt;br /&gt;
There are two disk shelves connected to the FS00 NetApp.&lt;br /&gt;
&lt;br /&gt;
# 14x136GB 10 000RPM FibreChannel disks&lt;br /&gt;
#* This was unused from our old NetApp system and was originally used for testing.&lt;br /&gt;
#* (ztseguin) I can’t remember, but I don’t think all disks are present.&lt;br /&gt;
# DS4243: 24x2TB 7 200RPM SATA disks&lt;br /&gt;
#* Funded by the Math Endowment Fund (MEF)&lt;br /&gt;
#* Purchased from Enterasource in Winter 2018&lt;br /&gt;
&lt;br /&gt;
=== Aggregates ===&lt;br /&gt;
&lt;br /&gt;
All aggregates are configured with RAID-DP.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: any other aggregate on the NetApp is for testing only.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;aggr0&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
NetApp system aggregate. Disks assigned to this aggregate are located on the old disk shelf.&lt;br /&gt;
&lt;br /&gt;
Volumes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;vol0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;aggr_users&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Aggregate dedicated to user home directories.&lt;br /&gt;
&lt;br /&gt;
Volumes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;aggr_misc&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
Aggregate for miscellaneous purposes.&lt;br /&gt;
&lt;br /&gt;
Volumes:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;music&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Volumes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note: any other volume on the NetApp is for testing only.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;vol0&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
NetApp system volume.&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;users&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
For user home directories. Each user is given a quota of 12GB.&lt;br /&gt;
&lt;br /&gt;
Snapshots:&lt;br /&gt;
&lt;br /&gt;
* 12 hourly, 4 nightly and 2 weekly&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;music&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
For music.&lt;br /&gt;
&lt;br /&gt;
Snapshots:&lt;br /&gt;
&lt;br /&gt;
* 2 nightly and 16 weekly&lt;br /&gt;
&lt;br /&gt;
==== &amp;lt;code&amp;gt;backup&amp;lt;/code&amp;gt; ====&lt;br /&gt;
&lt;br /&gt;
For backups of LDAP, Kerberos.&lt;br /&gt;
&lt;br /&gt;
Snapshots:&lt;br /&gt;
&lt;br /&gt;
* 2 nightly and 16 weekly&lt;br /&gt;
&lt;br /&gt;
=== Exporting Volumes ===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;In general, &amp;lt;code&amp;gt;sec=sys&amp;lt;/code&amp;gt; should only be exported to MC VLAN 530 (172.19.168.32/27, fd74:6b6a:8eca:4903::/64). This VLAN is only connected to trusted machines (NetApp, CSC servers in the MC 3015 or DC 3558 machine rooms).&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;All other machines should be given &amp;lt;code&amp;gt;sec=krb5p&amp;lt;/code&amp;gt; permissions only.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The NetApp exports are stored in &amp;lt;code&amp;gt;/etc/exports&amp;lt;/code&amp;gt;. If you update the exports, they can be reloaded by running &amp;lt;code&amp;gt;exportfs -r&amp;lt;/code&amp;gt; on the NetApp.&lt;br /&gt;
&lt;br /&gt;
=== Quotas ===&lt;br /&gt;
&lt;br /&gt;
Quotas are configured on the NetApp, in &amp;lt;code&amp;gt;/etc/quotas&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
After updating the quotas, the NetApp must be instructed to reload them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre lang=&amp;quot;bash&amp;quot;&amp;gt;# this will work for most quota changes&lt;br /&gt;
quota resize &amp;amp;lt;volume&amp;amp;gt;&lt;br /&gt;
&lt;br /&gt;
# however, some changes might need a full re-initialization of quotas&lt;br /&gt;
#   note: while re-initializing, quotas will not be enforced.&lt;br /&gt;
quota off &amp;amp;lt;volume&amp;amp;gt;&lt;br /&gt;
quota on &amp;amp;lt;volume&amp;amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Quota Reports ====&lt;br /&gt;
&lt;br /&gt;
Users can view their current usage + quota by running &amp;lt;code&amp;gt;quota -s&amp;lt;/code&amp;gt; on any machine.&lt;br /&gt;
&lt;br /&gt;
The Systems Committee can run a report of everyone’s usage by running &amp;lt;code&amp;gt;quota report&amp;lt;/code&amp;gt; on the NetApp.&lt;br /&gt;
&lt;br /&gt;
=== Snapshots ===&lt;br /&gt;
&lt;br /&gt;
Most volumes have snapshots enabled. Snapshots only use space when files change contained within them change (as it’s copy on write).&lt;br /&gt;
&lt;br /&gt;
Snapshots are available in a special directory called &amp;lt;code&amp;gt;.snapshot&amp;lt;/code&amp;gt;. This directory is available everywhere and will not show up in a directory listing (except at the volume root).&lt;br /&gt;
&lt;br /&gt;
Current schedules can be viewed by running &amp;lt;code&amp;gt;snap sched &amp;amp;lt;volume&amp;amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== inodes ===&lt;br /&gt;
&lt;br /&gt;
The number of inodes can be increased with the command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;maxfiles $VOLUME $NEW_VALUE&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is not possible to decrease the number of inodes.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=CloudStack&amp;diff=5369</id>
		<title>CloudStack</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=CloudStack&amp;diff=5369"/>
		<updated>2025-06-15T06:59:08Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We are using [https://cloudstack.apache.org/ Apache CloudStack] to provide VMs-as-a-service to members. Our user documentation is here: https://docs.cloud.csclub.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
Prerequisite reading:&lt;br /&gt;
&lt;br /&gt;
* [[Ceph]]&lt;br /&gt;
* [[Cloud Networking]]&lt;br /&gt;
&lt;br /&gt;
Official CloudStack documentation: http://docs.cloudstack.apache.org/en/4.16.0.0/&lt;br /&gt;
&lt;br /&gt;
== Rebooting machines ==&lt;br /&gt;
I&#039;m going to start with this first because this is what future sysadmins are most interested in. If you reboot one of the CloudStack guest machines (as of this writing: biloba, ginkgo and chamomile), then I suggest you perform a live migration of all of the VMs on that host to the other other machines (see [[#Sequential reboot]]).&lt;br /&gt;
&lt;br /&gt;
If this is not possible (e.g. there is not enough capacity on the other machines), then CloudStack will most likely shut down the VMs automatically. &amp;lt;b&amp;gt;You are responsible for restarting them manually after the reboot.&amp;lt;/b&amp;gt; You will also need to manually restart any Kubernetes clusters.&lt;br /&gt;
&lt;br /&gt;
Note: if the cloudstack-agent.service is having trouble reconnecting to the management servers after a reboot, just do a systemctl restart and cross your fingers.&lt;br /&gt;
&lt;br /&gt;
=== Sequential reboot ===&lt;br /&gt;
If it is possible to reboot the machines one at a time (e.g. for a software upgrade), then it is possible to avoid having any downtime. Login to the web UI as admin, go to Infrastructure &amp;gt; Hosts, hover above the three-dots button for a particular host, then press the &amp;quot;Enable Maintenance Mode&amp;quot; button.&lt;br /&gt;
[[File:Cloudstack-enable-maintenance-mode-button.png|1000px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Wait for the VMs to be migrated to the other machines (press the Refresh button to update the table). If you see an error which says &amp;quot;ErrorInPrepareForMaintenance&amp;quot;, just wait it out. If more than 20 minutes have passed and there is still no progress, take the host out of maintenance mode, and put it back into maintenance mode. If this still does not work, restart the management server.&lt;br /&gt;
&lt;br /&gt;
When a host is in maintenance mode, it should look like this:&lt;br /&gt;
[[File:Cloudstack-host-in-maintenance-mode.png|1000px]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
Once all VMs have been migrated, do whatever you need to do on the physical host; once it is back up, take it back out of maintenance mode from the web UI. Repeat for any other hosts which need to be taken offline.&lt;br /&gt;
&lt;br /&gt;
== Unexpected reboot ==&lt;br /&gt;
Sometimes a network interface fails on a machine after the switches in MC are rebooted (looking at you, riboflavin). Or a machine randomly goes offline in the middle of the night (looking at you, ginkgo). Point is, sometimes a machine needs to rebooted, or is forcefully rebooted, without preparation. Unfortunately, &amp;lt;strong&amp;gt;CloudStack is unable to recover gracefully from an unexpected reboot&amp;lt;/strong&amp;gt;. This means that &amp;lt;strong&amp;gt;manual intervention is required&amp;lt;/strong&amp;gt; to get the VMs back into a working state.&lt;br /&gt;
&lt;br /&gt;
Once the machine has come back online, perform the following:&lt;br /&gt;
&amp;lt;ol&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;All of the VMs which were on that machine will eventually transition to the Stopped state. Wait for this to happen first (from the web UI).&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to Infrastructure -&amp;gt; Management servers and make sure that both biloba and chamomile are present and running. If not, you may need to restart the management server on the machine (&amp;lt;code&amp;gt;systemctl restart cloudstack-management&amp;lt;/code&amp;gt;). Watch the journald logs for any error messages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Go to Infrastructure -&amp;gt; Hosts and make sure that all three hosts (biloba, chamomile and ginkgo) are present and running. If not, you may need to restart the agent on the machine (&amp;lt;code&amp;gt;systemctl restart cloudstack-agent&amp;lt;/code&amp;gt;). Watch the journald logs for any error messages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;If you restart cloudstack-agent, restart virtlogd as well, just for good measure. Watch the journald logs for any error messages.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Restart ONE of the stopped VMs and make sure that it transitions to the Started state. If more than 20 minutes pass and it still hasn&#039;t started, restart the management servers and try again.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Restart the rest of the stopped VMs.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ol&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Administration ==&lt;br /&gt;
To login with the admin account, use the following credentials in the web UI&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: admin&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: &amp;lt;i&amp;gt;stored in the usual place&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Domain: &amp;lt;i&amp;gt;leave this empty&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There is another admin account for the Members domain. This is necessary to create projects in the Members domain which regular members can access. Note that his account has fewer privileges than the root admin account above (it has the DomainAdmin role instead of the RootAdmin role).&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Username: membersadmin&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Password: &amp;lt;i&amp;gt;stored in the usual place&amp;lt;/i&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Domain: Members&lt;br /&gt;
&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that there are two management servers, one on each of biloba and chamomile (chamomile is a hot standby for biloba). If you restart one of them, you should restart the other as well.&lt;br /&gt;
&lt;br /&gt;
=== CLI ===&lt;br /&gt;
CloudStack has a CLI called [https://github.com/apache/cloudstack-cloudmonkey cloudmonkey] which is already set up on biloba. Just run &amp;lt;code&amp;gt;cmk&amp;lt;/code&amp;gt; as root to start it up.&lt;br /&gt;
&lt;br /&gt;
Cloudmonkey is basically a shell for the API (https://cloudstack.apache.org/api/apidocs-4.16/). For example, to list all domains:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listDomains details=min&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Run &amp;lt;code&amp;gt;somecommand -h&amp;lt;/code&amp;gt; to see all parameters for a particular command (or browse the API documentation).&lt;br /&gt;
See https://github.com/apache/cloudstack-cloudmonkey for more details.&lt;br /&gt;
&lt;br /&gt;
== Building packages ==&lt;br /&gt;
While CloudStack does provide .deb packages for Ubuntu, unfortunately these don&#039;t work on Debian (the &#039;qemu-kvm&#039; dependency is a virtual package on Debian, but not on Ubuntu). So we&#039;re going to build our own packages instead.&lt;br /&gt;
&lt;br /&gt;
We&#039;re going to perform the build in a Podman container to avoid polluting the host machine with unnecessary packages. There&#039;s a container called cloudstack-build on biloba which you can re-use. If you create a new container, make sure to use the same Podman image as the release for which you&#039;re building (e.g. &#039;debian:bullseye&#039;).&lt;br /&gt;
&lt;br /&gt;
The instructions below are adapted from http://docs.cloudstack.apache.org/en/latest/installguide/building_from_source.html&lt;br /&gt;
&lt;br /&gt;
Inside the container, install the dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install maven openjdk-11-jdk libws-commons-util-java libcommons-codec-java libcommons-httpclient-java liblog4j1.2-java genisoimage devscripts debhelper python3-setuptools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Install Node.js 12 as well (Debian bullseye&#039;s version happens to be 12):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install nodejs npm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Build the node-sass module (see [https://github.com/sass/node-sass/issues/1579 this issue] to see why this is necessary):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ui &amp;amp;&amp;amp; npm install &amp;amp;&amp;amp; npm rebuild node-sass &amp;amp;&amp;amp; cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The python3-mysql.connector package is not available in bullseye, so we&#039;re going to download and install it from the sid release:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -LOJ http://ftp.ca.debian.org/debian/pool/main/m/mysql-connector-python/python3-mysql.connector_8.0.15-2_all.deb&lt;br /&gt;
apt install ./python3-mysql.connector_8.0.15-2_all.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the CloudStack source code:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
curl -LOJ http://mirror.csclub.uwaterloo.ca/apache/cloudstack/releases/4.16.0.0/apache-cloudstack-4.16.0.0-src.tar.bz2&lt;br /&gt;
tar -jxvf apache-cloudstack-4.16.0.0-src.tar.bz2&lt;br /&gt;
cd apache-cloudstack-4.16.0.0-src&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Download the Maven dependencies:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mvn -P deps&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now open debian/control and perform the following changes:&lt;br /&gt;
&lt;br /&gt;
* Replace &#039;qemu-kvm (&amp;gt;=2.5)&#039; with &#039;qemu-system-x86 (&amp;gt;= 1:5.2)&#039; in the dependencies of cloudstack-agent&lt;br /&gt;
* Remove dh-systemd as a build dependency of cloudstack (it&#039;s included in debhelper)&lt;br /&gt;
&lt;br /&gt;
Now open debian/rules and add the following flags to the &amp;lt;code&amp;gt;mvn&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
-Dmaven.test.skip=true -Dclean.skip=true -Dcheckstyle.skip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now open debian/changelog and change &#039;unstable&#039; to &#039;bullseye&#039;.&lt;br /&gt;
&lt;br /&gt;
As of this writing, there is a [https://gitlab.com/libvirt/libvirt/-/issues/161 bug in libvirt] which prevents VMs with more than 4GB of RAM from being created on hosts with cgroups2. Until that issue is fixed, we&#039;re going to need to modify the source code. Since we&#039;re already building a custom CloudStack package, it&#039;s easier to patch CloudStack than to patch libvirt, so paste something like the following into debian/patches/fix-cgroups2-cpu-weight.patch:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Description: Workaround for libvirt trying to write a value to the cgroups v2&lt;br /&gt;
  cpu.weight controller which is greater than the maximum (10000). The&lt;br /&gt;
  libvirt developers are currently discussing a solution.&lt;br /&gt;
Forwarded: not-needed&lt;br /&gt;
Origin: upstream, https://gitlab.com/libvirt/libvirt/-/issues/161&lt;br /&gt;
Author: Max Erenberg &amp;lt;merenber@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
Last-Update: 2021-12-03&lt;br /&gt;
Index: apache-cloudstack-4.16.0.0-src/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java&lt;br /&gt;
===================================================================&lt;br /&gt;
--- apache-cloudstack-4.16.0.0-src.orig/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java&lt;br /&gt;
+++ apache-cloudstack-4.16.0.0-src/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtVMDef.java&lt;br /&gt;
@@ -1483,6 +1483,10 @@ public class LibvirtVMDef {&lt;br /&gt;
         static final int MAX_PERIOD = 1000000;&lt;br /&gt;
 &lt;br /&gt;
         public void setShares(int shares) {&lt;br /&gt;
+           // Clamp the value to the cgroups v2 cpu.weight maximum until&lt;br /&gt;
+           // upstream libvirt gets fixed:&lt;br /&gt;
+           // https://gitlab.com/libvirt/libvirt/-/issues/161&lt;br /&gt;
+           shares = Math.min(shares, 10000);&lt;br /&gt;
             _shares = shares;&lt;br /&gt;
         }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
I think you have to manually modify that LibvirtVMDef.java file to incorporate those changes (I could be wrong on this, but that&#039;s how I did it).&lt;br /&gt;
&lt;br /&gt;
Then paste the following into debian/patches/00list:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
fix-cgroup2-cpu-weight&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally, import your GPG key into the container (make sure to delete it afterwards!), and build the packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
debuild -k&amp;lt;YOUR_GPG_KEY_ID&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There should already be a .dupload.conf in the /root directory in the cloudstack-build container; if you need need another copy, ask a syscom member. Open /root/.ssh/config and change the User parameter to your username. Finally, go to /root and upload the packages to potassium-benzoate (replace the version number):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dupload cloudstack_4.16.0.0+1_amd64.changes&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Incompatibility with Debian 12 packages ==&lt;br /&gt;
After upgrading ginkgo to bookworm, we discovered that libvirt 8+ was incompatible with CloudStack 4.16.0.0. See https://www.shapeblue.com/advisory-on-libvirt-8-compatibility-issues-with-cloudstack/ for details. So we built new packages from the 4.16.1.0 branch of ShapeBlue&#039;s GitHub repository. For some reason the cloudstack-management process failed with some errors from SLF4J, so we needed to download some JARs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget -O /usr/share/cloudstack-management/lib/log4j-1.2.17.jar https://repo1.maven.org/maven2/log4j/log4j/1.2.17/log4j-1.2.17.jar &lt;br /&gt;
wget -O /usr/share/cloudstack-management/lib/slf4j-log4j12-1.6.6.jar https://repo1.maven.org/maven2/org/slf4j/slf4j-log4j12/1.6.6/slf4j-log4j12-1.6.6.jar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See https://stackoverflow.com/a/70528383 for details.&lt;br /&gt;
&lt;br /&gt;
We also encountered some kind of Java 11 -&amp;gt; 17 incompatibility issue, so following parameters were added to the JAVA_OPTS variable in /etc/default/cloudstack-management:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
--add-opens java.base/java.lang=ALL-UNNAMED&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See https://stackoverflow.com/a/41265267 for details. Note that this file is NOT a shell script so you cannot use variable interpolation. You must modify the value of JAVA_OPTS directly.&lt;br /&gt;
&lt;br /&gt;
== Database setup ==&lt;br /&gt;
We are using master-master replication between two MariaDB instances on biloba and chamomile. See [https://mariadb.com/kb/en/setting-up-replication/ here] and [https://tunnelix.com/simple-master-master-replication-on-mariadb/ here] for instructions on how to set this up.&lt;br /&gt;
&lt;br /&gt;
To avoid split-brain syndrome, mariadb.cloud.csclub.uwaterloo.ca points to a virtual IP shared by biloba and chamomile via keepalived. This means that only one host is actually handling requests at any moment; the other is a hot standby.&lt;br /&gt;
&lt;br /&gt;
Also add the following parameters to /etc/mysql/my.cnf on the hosts running MariaDB:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[mysqld]&lt;br /&gt;
innodb_rollback_on_timeout=1&lt;br /&gt;
innodb_lock_wait_timeout=600&lt;br /&gt;
max_connections=350&lt;br /&gt;
log-bin=mysql-bin&lt;br /&gt;
binlog-format = &#039;ROW&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also comment out (or remove) the following line in /etc/mysql/mariadb.conf.d/50-server.cnf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bind-address = 127.0.0.1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now restart MariaDB.&lt;br /&gt;
&lt;br /&gt;
== Management server setup ==&lt;br /&gt;
Install the management server from our Debian repository:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install cloudstack-management&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Run the database scripts:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cloudstack-setup-databases cloud:password@localhost --deploy-as=root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(Replace &#039;password&#039; by a strong password.)&lt;br /&gt;
&lt;br /&gt;
Open /etc/cloudstack/management/db.properties and replace all instances of &#039;localhost&#039; by &#039;mariadb.cloud.csclub.uwaterloo.ca&#039;.&lt;br /&gt;
&lt;br /&gt;
Open /etc/cloudstack/management/server.properties and set &#039;bind-interface&#039; to 127.0.0.1 (CloudStack is being reverse proxied behind NGINX).&lt;br /&gt;
&lt;br /&gt;
Run some more scripts:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cloudstack-setup-management&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Mount the cloudstack-secondary CephFS volume at /mnt/cloudstack-secondary:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir /mnt/cloudstack-secondary&lt;br /&gt;
mount -t nfs4 -o port=2049 ceph-nfs.cloud.csclub.uwaterloo.ca:/cloudstack-secondary /mnt/cloudstack-secondary&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now download the management VM template:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/usr/share/cloudstack-common/scripts/storage/secondary/cloud-install-sys-tmplt -m /mnt/cloudstack-secondary/ -u https://download.cloudstack.org/systemvm/4.16/systemvmtemplate-4.16.0-kvm.qcow2.bz2 -h kvm -F&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The management server will run on port 8080 by default, so reverse proxy it from NGINX:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
location / {&lt;br /&gt;
  proxy_pass http://localhost:8080;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Compute node setup ==&lt;br /&gt;
Install packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt install cloudstack-agent libvirt-daemon-driver-storage-rbd qemu-block-extra&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Create a new user for CloudStack:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
useradd -s /bin/bash -d /nonexistent -M cloudstack&lt;br /&gt;
# set the password&lt;br /&gt;
passwd cloudstack&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following to /etc/sudoers:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cloudstack ALL=(ALL) NOPASSWD:ALL     &lt;br /&gt;
Defaults:cloudstack !requiretty&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
(There is a way to restrict this, but I was never able to get it to work.)&lt;br /&gt;
&lt;br /&gt;
=== Network setup ===&lt;br /&gt;
The /etc/network/interfaces file should look something like this (taking ginkgo as an example):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
auto enp3s0f0&lt;br /&gt;
iface enp3s0f0 inet manual&lt;br /&gt;
&lt;br /&gt;
auto ens1f0np0&lt;br /&gt;
iface ens1f0np0 inet manual&lt;br /&gt;
&lt;br /&gt;
# csc-cloud management&lt;br /&gt;
auto enp3s0f0.529&lt;br /&gt;
iface enp3s0f0.529 inet manual&lt;br /&gt;
&lt;br /&gt;
auto br529&lt;br /&gt;
iface br529 inet static&lt;br /&gt;
    bridge_ports enp3s0f0.529&lt;br /&gt;
    address 172.19.168.22/27&lt;br /&gt;
iface br529 inet6 static&lt;br /&gt;
    bridge_ports enp3s0f0.529&lt;br /&gt;
    address fd74:6b6a:8eca:4902::22/64&lt;br /&gt;
&lt;br /&gt;
# csc-cloud provider&lt;br /&gt;
auto ens1f0np0.425&lt;br /&gt;
iface ens1f0np0.425 inet manual&lt;br /&gt;
&lt;br /&gt;
auto br425&lt;br /&gt;
iface br425 inet manual&lt;br /&gt;
    bridge_ports ens1f0np0.425&lt;br /&gt;
&lt;br /&gt;
# csc server network&lt;br /&gt;
auto ens1f0np0.134&lt;br /&gt;
iface ens1f0np0.134 inet manual&lt;br /&gt;
&lt;br /&gt;
auto br134&lt;br /&gt;
iface br134 inet static&lt;br /&gt;
    bridge_ports ens1f0np0.134&lt;br /&gt;
    address 129.97.134.148/24&lt;br /&gt;
    gateway 129.97.134.1&lt;br /&gt;
iface br134 inet6 static&lt;br /&gt;
    bridge_ports ens1f0np0.134&lt;br /&gt;
    address 2620:101:f000:4901:c5c::148/64&lt;br /&gt;
    gateway 2620:101:f000:4901::1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add/modify the following lines to /etc/cloudstack/agent.properties:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
private.network.device=br529&lt;br /&gt;
guest.network.device=br425&lt;br /&gt;
public.network.device=br425&lt;br /&gt;
host=172.19.168.23,172.19.168.24@static&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== libvirtd setup ===&lt;br /&gt;
Add/modify the following lines in /etc/libvirt/libvirtd.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
listen_tls = 0&lt;br /&gt;
listen_tcp = 1&lt;br /&gt;
tcp_port = &amp;quot;16509&amp;quot;&lt;br /&gt;
auth_tcp = &amp;quot;none&amp;quot;&lt;br /&gt;
mdns_adv = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Uncomment the following line in /etc/default/libvirtd:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
LIBVIRTD_ARGS=&amp;quot;--listen&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Make sure the following lines are present in /etc/libvirt/qemu.conf:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
security_driver=&amp;quot;none&amp;quot;&lt;br /&gt;
user=&amp;quot;root&amp;quot;&lt;br /&gt;
group=&amp;quot;root&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl mask libvirtd.socket&lt;br /&gt;
systemctl mask libvirtd-ro.socket&lt;br /&gt;
systemctl mask libvirtd-admin.socket&lt;br /&gt;
systemctl restart libvirtd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Management server setup (cont&#039;d) ==&lt;br /&gt;
Now start the cloudstack-management systemd service and visit the web UI (https://cloud.csclub.uwaterloo.ca). The login credentials are &#039;admin&#039; for both the username and password. Start the setup walkthrough (you will be prompted to change the password). Make sure to choose Basic Networking.&lt;br /&gt;
&lt;br /&gt;
The walkthrough is almost certainly going to fail (at least, it did for me). Don&#039;t panic when this happens; just abort the walkthrough, and set up everything else manually. Once primary and secondary storage have been setup, and at least one host has been added, enable the Pod, Cluster and Zone (there should only be one of each).&lt;br /&gt;
&lt;br /&gt;
=== Primary Storage ===&lt;br /&gt;
* Type: RBD&lt;br /&gt;
* IP address: ceph-mon.cloud.csclub.uwaterloo.ca&lt;br /&gt;
* Scope: zone&lt;br /&gt;
* Get the credentials which you created in [[Ceph#CloudStack_Primary_Storage]]&lt;br /&gt;
&lt;br /&gt;
=== Secondary Storage ===&lt;br /&gt;
* Type: NFS&lt;br /&gt;
* Host: ceph-nfs.cloud.csclub.uwaterloo.ca:2049&lt;br /&gt;
* Path: /cloudstack-secondary&lt;br /&gt;
&lt;br /&gt;
=== Global settings ===&lt;br /&gt;
Some global settings which you&#039;ll need to set from the web UI:&lt;br /&gt;
&lt;br /&gt;
* ca.plugin.root.auth.strictness: false (this always caused issues for me, so I just disabled it)&lt;br /&gt;
* host: 172.19.168.23,172.19.168.24  (the VLAN 529 addresses of biloba and chamomile)&lt;br /&gt;
&lt;br /&gt;
=== Adding a host ===&lt;br /&gt;
This is an extremely painful process which I am almost certainly doing wrong. It usually takes me 7-8 attempts to add a single host (that&#039;s not an exaggeration). This is what it looks like:&lt;br /&gt;
&lt;br /&gt;
* Stop cloudstack-agent service&lt;br /&gt;
* Configure /etc/cloudstack-agent/agent.properties&lt;br /&gt;
* Add a host from the CloudStack UI&lt;br /&gt;
* Start cloudstack-agent.service&lt;br /&gt;
&lt;br /&gt;
The reason why this takes several attempts is because cloudstack-agent actually &amp;lt;i&amp;gt;overwrites&amp;lt;/i&amp;gt; your agent.properties file. If/when you notice that this happens, restart the whole process again.&lt;br /&gt;
&lt;br /&gt;
=== Accessing the System VMs ===&lt;br /&gt;
If you need to SSH into one of the System VMs, get its link-local address from the web UI, and run e.g.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh -i /var/lib/cloudstack/management/.ssh/id_rsa -p 3922 root@169.254.232.179&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Some more global settings ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
allow.user.expunge.recover.vm = true&lt;br /&gt;
allow.user.view.destroyed.vm = true&lt;br /&gt;
expunge.delay = 1&lt;br /&gt;
expunge.interval = 1&lt;br /&gt;
network.securitygroups.defaultadding = false&lt;br /&gt;
allow.public.user.templates = false&lt;br /&gt;
vm.network.throttling.rate = 0&lt;br /&gt;
network.throttling.rate = 0&lt;br /&gt;
cpu.overprovisioning.factor = 4.0&lt;br /&gt;
allow.user.create.projects = false&lt;br /&gt;
max.project.cpus = 8&lt;br /&gt;
max.project.memory = 8192&lt;br /&gt;
max.project.primary.storage = 40&lt;br /&gt;
max.projet.secondary.storage = 20&lt;br /&gt;
max.account.cpus = 8&lt;br /&gt;
max.account.memory = 8192&lt;br /&gt;
max.account.primary.storage = 40&lt;br /&gt;
max.account.secondary.storage = 20&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE&amp;lt;/b&amp;gt;: the &amp;lt;code&amp;gt;cpu.overprovisioning.factor&amp;lt;/code&amp;gt; setting also needs to be set for existing clusters. Go to Infrastructure -&amp;gt; Clusters -&amp;gt; Cluster1 -&amp;gt; Settings and set it accordingly.&lt;br /&gt;
&lt;br /&gt;
=== Firewall ===&lt;br /&gt;
Since we disabled certificate validation from the clients, we&#039;re going to use some iptables-fu on all of the CloudStack hosts (to make our lives easier, we&#039;re going to use the same rules on the management and agent servers):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
iptables -N CLOUDSTACK-SERVICES&lt;br /&gt;
iptables -A INPUT -j CLOUDSTACK-SERVICES&lt;br /&gt;
iptables -A CLOUDSTACK-SERVICES -i lo -j RETURN&lt;br /&gt;
iptables -A CLOUDSTACK-SERVICES -s 172.19.168.0/27 -j RETURN&lt;br /&gt;
iptables -A CLOUDSTACK-SERVICES -p tcp -m multiport --dports 16509,16514,45335,41047,8250 -j REJECT&lt;br /&gt;
iptables-save &amp;gt; /etc/iptables/rules.v4&lt;br /&gt;
&lt;br /&gt;
ip6tables -N CLOUDSTACK-SERVICES&lt;br /&gt;
ip6tables -A INPUT -j CLOUDSTACK-SERVICES&lt;br /&gt;
ip6tables -A CLOUDSTACK-SERVICES -i lo -j RETURN&lt;br /&gt;
ip6tables -A CLOUDSTACK-SERVICES -s fd74:6b6a:8eca:4902::/64 -j RETURN&lt;br /&gt;
ip6tables -A CLOUDSTACK-SERVICES -p tcp -m multiport --dports 16509,16514,45335,41047,8250 -j REJECT&lt;br /&gt;
ip6tables-save &amp;gt; /etc/iptables/rules.v6&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== LDAP authentication ===&lt;br /&gt;
Go to Global Settings in the UI, type &#039;ldap&#039; in the search bar, and configure the parameters as needed. Make sure the mail attribute is set to &#039;mailLocalAddress&#039;.&lt;br /&gt;
&lt;br /&gt;
Create a new domain called &#039;Members&#039;. Then go to &#039;LDAP Configuration&#039;, click the &#039;Configure LDAP +&#039; button, and add a new LDAP config linked to the domain you just created.&lt;br /&gt;
&lt;br /&gt;
[[ceo]] handles the creation of CloudStack accounts, so create an API key + secret token and add it to /etc/csc/ceod.ini on biloba.&lt;br /&gt;
&lt;br /&gt;
=== Templates ===&lt;br /&gt;
This deserves an entire page of its own - see [[CloudStack Templates]].&lt;br /&gt;
&lt;br /&gt;
=== Kubernetes ===&lt;br /&gt;
This deserves an entire page of its own - see [[Kubernetes]].&lt;br /&gt;
&lt;br /&gt;
== Upgrading CloudStack ==&lt;br /&gt;
Please be &amp;lt;b&amp;gt;extremely&amp;lt;/b&amp;gt; careful if you decide to upgrade CloudStack. The last time I tried to perform an upgrade (from 4.15 to 4.16), the agents refused to connect to the management servers (or maybe it was the other way around?), and I ended up having to &amp;lt;b&amp;gt;wipe the entire CloudStack installation clean and start again from scratch&amp;lt;/b&amp;gt;. Therefore it is fair to say that nobody has ever managed to successfully upgrade CloudStack on our machines. Do this at your own risk.&lt;br /&gt;
&lt;br /&gt;
If you decide to perform an upgrade, then at the very least, you will need to backup the MariaDB databases (&#039;cloud&#039; and &#039;cloud_usage&#039;), as well as the /etc/cloudstack and /var/lib/cloudstack folders on each of biloba, chamomile and ginkgo. Also, good luck.&lt;br /&gt;
&lt;br /&gt;
== Siracha Crash Out Notes ==&lt;br /&gt;
If you ever find your self in the unfourtunate position of needing to recover from a drive failure. It&#039;s JOEVER BRO TRUST ME. &lt;br /&gt;
&lt;br /&gt;
Anyways this is what I&#039;ve learned from the pits of hell&lt;br /&gt;
&lt;br /&gt;
# Our nginx config is funny, and it redirects 9987 → gunicorn → ceod instance running on server&lt;br /&gt;
## If the drive dies, ask someone with a backup for just a zip file, it&#039;s not possible to recover. Trust me&lt;br /&gt;
# you need to reload both nginx &amp;amp; cloudstack to get it running&lt;br /&gt;
# You need the crt to get it working (stored under `/etc/csc/k8s` (I think)&lt;br /&gt;
#&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Service_List&amp;diff=5368</id>
		<title>Service List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Service_List&amp;diff=5368"/>
		<updated>2025-06-14T18:34:02Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* CSC Cloud */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A list of services we run and when they&#039;ve been last updated.&lt;br /&gt;
&lt;br /&gt;
== Infrastructure ==&lt;br /&gt;
=== LDAP/Kerberos ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[LDAP]] and [[Kerberos]]&lt;br /&gt;
&lt;br /&gt;
Member information storage and authentication backend.&lt;br /&gt;
* Location: &#039;&#039;auth1&#039;&#039; container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last updated: Unknown, updated alongside debian 12&lt;br /&gt;
&lt;br /&gt;
=== Keycloak ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Keycloak]]&lt;br /&gt;
&lt;br /&gt;
SSO provider.&lt;br /&gt;
* Location: somewhere on k8s&lt;br /&gt;
* Last updated: Unknown, before Spring 2022&lt;br /&gt;
&lt;br /&gt;
=== Mail ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Mail]]&lt;br /&gt;
&lt;br /&gt;
Postfix/Dovecot mail server&lt;br /&gt;
* Location: &#039;&#039;mail&#039;&#039; nspawn container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last updated: Fall 2024&lt;br /&gt;
* Roundcube last updated: Spring 2025&lt;br /&gt;
&lt;br /&gt;
=== mailman3 ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Mailing Lists]]&lt;br /&gt;
&lt;br /&gt;
Mailing list handler&lt;br /&gt;
* Location: &#039;&#039;mailman3&#039;&#039; nspawn container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last update: Fall 2024, to mailman 3.10&lt;br /&gt;
&lt;br /&gt;
=== prometheus ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Observability]]&lt;br /&gt;
&lt;br /&gt;
Also hosts ClickHouse and vector&lt;br /&gt;
* Location: &#039;&#039;qemu-2-prometheus&#039;&#039; VM on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
* Last update: Unknown, updated alongside debian 12&lt;br /&gt;
&lt;br /&gt;
=== NFS ===&lt;br /&gt;
Hosted on [[New NetApp]]&lt;br /&gt;
* Location: [[New NetApp]] on MC CSC rack&lt;br /&gt;
* Last update: 2017, pending &amp;quot;New New NetApp&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Ceph ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;:  [[Ceph]]&lt;br /&gt;
&lt;br /&gt;
Storage backend for CSCloud.&lt;br /&gt;
* Location: 3 node cluster on riboflavin, ginkgo and biloba&lt;br /&gt;
* Last update: Unknown&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== General services ==&lt;br /&gt;
=== Mirror ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Mirror]]&lt;br /&gt;
&lt;br /&gt;
Our flagship service.&lt;br /&gt;
* Location: [[Machine List#potassium-benzoate|potassium-benzoate]]&lt;br /&gt;
* Last update: Constantly by syscom&lt;br /&gt;
&lt;br /&gt;
=== CSC Cloud ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Main Page#CSC Cloud|CSC Cloud]]&lt;br /&gt;
&lt;br /&gt;
Another flagship service.&lt;br /&gt;
* Location: 3 node cluster on chamomile, ginkgo and biloba&lt;br /&gt;
* Last update: Unknown&lt;br /&gt;
&lt;br /&gt;
=== VaultWarden ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Vaultwarden]]&lt;br /&gt;
&lt;br /&gt;
Bitwarden-compatible password manager.&lt;br /&gt;
* Location: &#039;&#039;Where?&#039;&#039;&lt;br /&gt;
* Last update: Winter 2025&lt;br /&gt;
&lt;br /&gt;
=== BigBlueButton ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[BigBlueButton]]&lt;br /&gt;
&lt;br /&gt;
Online conferencing.&lt;br /&gt;
* Location: &#039;&#039;bigbluebutton3&#039;&#039; nspawn container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last update: Winter 2025&lt;br /&gt;
&lt;br /&gt;
=== Plane ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Plane]]&lt;br /&gt;
&lt;br /&gt;
JIRA but selfhosted.&lt;br /&gt;
* Location: &#039;&#039;Where?&#039;&#039;&lt;br /&gt;
* Last update: Unknown&lt;br /&gt;
&lt;br /&gt;
=== IRC webchat (The Lounge) ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[How to IRC#The Lounge]]&lt;br /&gt;
&lt;br /&gt;
* Location: &#039;&#039;chat&#039;&#039; container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last update: Unknown&lt;br /&gt;
&lt;br /&gt;
=== Mattermost ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[MatterMost]]&lt;br /&gt;
* Location: &#039;&#039;mattermost&#039;&#039; container on [[Machine List#xylitol|xylitol]]&lt;br /&gt;
* Last update: Unknown&lt;br /&gt;
&lt;br /&gt;
=== Nextcloud ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Nextcloud]]&lt;br /&gt;
&lt;br /&gt;
CSC&#039;s file and calendar server.&lt;br /&gt;
* Location: &#039;&#039;nextcloud&#039;&#039; container on [[Machine List#guayusa|guayusa]]&lt;br /&gt;
* Last update: Spring 2025&lt;br /&gt;
&lt;br /&gt;
=== Git ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Git Hosting]]&lt;br /&gt;
&lt;br /&gt;
Gitea server for various CSC projects.&lt;br /&gt;
* Location: [[Machine List #caffeine|caffeine]]&lt;br /&gt;
* Last update: Spring 2025&lt;br /&gt;
* CI: Drone (deprecated), Gitea Act Runner (&#039;&#039;gitea-act-runner&#039;&#039; nspawn container on [[Machine List#phosphoric-acid|phosphoric-acid]])&lt;br /&gt;
&lt;br /&gt;
== Web infra ==&lt;br /&gt;
=== Member/Club Hosting ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[Web Hosting]] and [[Club Hosting]]&lt;br /&gt;
&lt;br /&gt;
Apache and PHP. Your regular, old-school hosting service.&lt;br /&gt;
* Location: &#039;&#039;caffeine&#039;&#039; VM on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
* Last update: Winter 2025&lt;br /&gt;
&lt;br /&gt;
=== MySQL/PostgreSQL ===&lt;br /&gt;
&#039;&#039;See&#039;&#039;: [[MySQL]] and [[PostgreSQL]]&lt;br /&gt;
&lt;br /&gt;
Databases for hosting.&lt;br /&gt;
* Location: &#039;&#039;coffee&#039;&#039; VM on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
* Last update: Unknown, still on PostgreSQL 15&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Kerberos&amp;diff=5367</id>
		<title>Kerberos</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Kerberos&amp;diff=5367"/>
		<updated>2025-06-14T05:59:57Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;IF YOU ARE LOOKING FOR A PASSWORD RESET, PLEASE VISIT&#039;&#039;&#039; https://csclub.uwaterloo.ca/ceo/pwreset &#039;&#039;&#039;FOR A SELF-SERVICE PORTAL FOR PASSWORD RESETS! (If you experience any issues, please contact Syscom)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
---&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We use [http://web.mit.edu/Kerberos/ MIT Kerberos 5] for authentication. Our kerberos realm is CSCLUB.UWATERLOO.CA. &amp;lt;b&amp;gt;This realm is CASE-SENSITIVE.&amp;lt;/b&amp;gt; KDCs run on [[Machine_List#auth1|auth1]] (kdc1) and [[Machine_List#auth2|auth2]] (kdc2).&lt;br /&gt;
&lt;br /&gt;
[[File:kerberos.png|frame|Kerberos, the network authentication protocol]]&lt;br /&gt;
&lt;br /&gt;
= ehashman&#039;s guide to MIT Kerberos v5 on Debian =&lt;br /&gt;
&lt;br /&gt;
== Preparatory Reading ==&lt;br /&gt;
&lt;br /&gt;
# [http://web.mit.edu/kerberos/dialogue.html Kerberos: A Dialogue in Four Scenes] (&#039;&#039;&#039;&#039;&#039;definitely&#039;&#039;&#039;&#039;&#039; read this)&lt;br /&gt;
# [http://www.roguelynn.com/words/explain-like-im-5-kerberos/ Explain Like I&#039;m 5: Kerberos] (less entertaining than the stage play)&lt;br /&gt;
# [http://www.rjsystems.nl/en/2100-d6-kerberos-master.php A very practical configuration guide to Kerberos on Debian squeeze] (things don&#039;t change much in the Debian world)&lt;br /&gt;
# [http://web.mit.edu/kerberos/krb5-latest/doc/admin/index.html The official Kerberos documentation]&lt;br /&gt;
&lt;br /&gt;
== Set up host records ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We will need host records to correspond to our Kerberos admin server and key distribution center, &amp;lt;code&amp;gt;kadmin.wics.uwaterloo.ca&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;kdc1.wics.uwaterloo.ca&amp;lt;/code&amp;gt;. These can just be A records pointing to our auth server (currently &amp;lt;code&amp;gt;129.97.134.212&amp;lt;/code&amp;gt;).&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We can also set up [http://web.mit.edu/kerberos/krb5-latest/doc/admin/realm_config.html special SRV records] as well. This is recommended but not necessary. They look like this:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;_kerberos._udp.wics.uwaterloo.ca          SRV       0 0 88  kdc1.wics.uwaterloo.ca&lt;br /&gt;
_kerberos-master._udp.wics.uwaterloo.ca   SRV       0 0 88  kdc1.wics.uwaterloo.ca&lt;br /&gt;
_kpasswd._udp.wics.uwaterloo.ca           SRV       0 0 464 kdc1.wics.uwaterloo.ca&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You may have guessed that the third integer is the port the service runs on.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Install packages ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;First, install some common system utils that may be missing from the fresh container:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install ssh ntpdate xinetd nmap&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Do NOT install ntp on the container. Install it on the host system instead. See [[ntp|NTP]] for info on NTP servers.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, install the Kerberos server:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;apt-get install krb5-{admin-server,user}&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;During the install process, &amp;lt;code&amp;gt;dpkg&amp;lt;/code&amp;gt; will ask you for the following three values, specified below:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Default Kerberos version 5 realm: WICS.UWATERLOO.CA&lt;br /&gt;
Kerberos servers for your realm: kdc1.wics.uwaterloo.ca&lt;br /&gt;
Administrative server for your Kerberos realm: kadmin.wics.uwaterloo.ca&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;You&#039;ll encounter this lovely error, from &amp;lt;code&amp;gt;xinetd&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Note: xinetd currently is not fully supported by update-inetd.&lt;br /&gt;
  Please consult /usr/share/doc/xinetd/README.Debian and itox(8).&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;To solve this, we create a file &amp;lt;code&amp;gt;/etc/xinetd.d/krb_prop&amp;lt;/code&amp;gt; with the following contents:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;service krb_prop&lt;br /&gt;
{&lt;br /&gt;
    disable     = no&lt;br /&gt;
    socket_type = stream&lt;br /&gt;
    protocol    = tcp&lt;br /&gt;
    user        = root&lt;br /&gt;
    wait        = no&lt;br /&gt;
    server      = /usr/sbin/kpropd&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;And then restart &amp;lt;code&amp;gt;xinetd&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# service xinetd restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;You&#039;ll also note that the &amp;lt;code&amp;gt;krb5-kdc&amp;lt;/code&amp;gt; service failed to start. This is okay. &amp;amp;gt; This is because the realm, EXAMPLE.COM, or rather the database file for it (&amp;lt;code&amp;gt;/var/lib/krb5kdc/principal&amp;lt;/code&amp;gt;), has not yet been created. – http://www.rjsystems.nl/en/2100-d6-kerberos-master.php&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Configuring Kerberos ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;The first thing we&#039;ll configure is the access control list. Edit &amp;lt;code&amp;gt;/etc/krb5kdc/kadm5.acl&amp;lt;/code&amp;gt; and enable/add the following line:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;*/admin *&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Our primary admin principal will be &amp;lt;code&amp;gt;sysadmin/admin@WICS.UWATERLOO.CA&amp;lt;/code&amp;gt;, so there is no need to add a separate &amp;lt;code&amp;gt;admin&amp;lt;/code&amp;gt; principal to the ACL.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Let&#039;s configure Kerberos client-side in [https://git.uwaterloo.ca/wics/documentation/blob/master/krb5.conf &amp;lt;code&amp;gt;/etc/krb5.conf&amp;lt;/code&amp;gt;]. Consulting with the CSC&#039;s config, [[www.rjsystems.nl/en/2100-d6-kerberos-master.php#rcfg|our favoured setup guide]], and [http://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/krb5_conf.html the Kerberos krb5.conf manual], we&#039;ll mostly select default settings. Notable additions include&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[libdefaults]&lt;br /&gt;
        allow_weak_crypto = false  # default is currently false but hey&lt;br /&gt;
&lt;br /&gt;
        # If DNS breaks we don&#039;t want auth to fail&lt;br /&gt;
        dns_lookup_kdc = false&lt;br /&gt;
        dns_lookup_realm = false&lt;br /&gt;
&lt;br /&gt;
[logging]&lt;br /&gt;
        kdc = FILE:/var/log/krb5kdc.log&lt;br /&gt;
        admin_server = FILE:/var/log/kadmin.log&lt;br /&gt;
        default = FILE:/var/log/krb5.log&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We also want to ensure we&#039;re using good crypto for our Key Distribution Center, so let&#039;s set that up next in [https://git.uwaterloo.ca/wics/documentation/blob/master/kdc.conf &amp;lt;code&amp;gt;/etc/krb5kdc/kdc.conf&amp;lt;/code&amp;gt;]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;[kdcdefaults]&lt;br /&gt;
    kdc_ports = 750,88&lt;br /&gt;
&lt;br /&gt;
[realms]&lt;br /&gt;
    WICS.UWATERLOO.CA = {&lt;br /&gt;
        database_name = /var/lib/krb5kdc/principal&lt;br /&gt;
        admin_keytab = FILE:/etc/krb5kdc/kadm5.keytab&lt;br /&gt;
        acl_file = /etc/krb5kdc/kadm5.acl&lt;br /&gt;
        key_stash_file = /etc/krb5kdc/stash&lt;br /&gt;
        kdc_ports = 750,88&lt;br /&gt;
        max_life = 12h 0m 0s&lt;br /&gt;
        max_renewable_life = 1d 0h 0m 0s&lt;br /&gt;
        master_key_type = aes256-cts-hmac-sha1-96&lt;br /&gt;
        supported_enctypes = aes256-cts-hmac-sha1-96:normal aes128-cts-hmac-sha1-96:normal&lt;br /&gt;
        default_principal_flags = +preauth&lt;br /&gt;
    }&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We didn&#039;t choose to create a new krb5 log directory but we should set up logrotate. Create a file [https://git.uwaterloo.ca/wics/documentation/blob/master/logrotate.d.krb5 &amp;lt;code&amp;gt;/etc/logrotate.d/krb5&amp;lt;/code&amp;gt;] with three of the following entries (one for each log file):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/var/log/FILENAME.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    missingok&lt;br /&gt;
    rotate 8&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    notifempty&lt;br /&gt;
    postrotate&lt;br /&gt;
            /etc/init.d/SERVICENAME restart &amp;amp;gt; /dev/null&lt;br /&gt;
    endscript&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Make sure you also create those files so the service can write to them:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# touch /var/log/{krb5,krb5kdc,kadmin}.log&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Creating the Kerberos Realm ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now we&#039;re going to create the realm:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# krb5_newrealm&lt;br /&gt;
This script should be run on the master KDC/admin server to initialize&lt;br /&gt;
a Kerberos realm.  It will ask you to type in a master key password.&lt;br /&gt;
This password will be used to generate a key that is stored in&lt;br /&gt;
/etc/krb5kdc/stash.  You should try to remember this password, but it&lt;br /&gt;
is much more important that it be a strong password than that it be&lt;br /&gt;
remembered.  However, if you lose the password and /etc/krb5kdc/stash,&lt;br /&gt;
you cannot decrypt your Kerberos database.&lt;br /&gt;
Loading random data&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;The script may pause at this point until there is sufficient available entropy to generate a key. Then it will prompt for a password. USE A LONG, RANDOM ONE. THIS PASSWORD IS VERY IMPORTANT.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;Initializing database &#039;/var/lib/krb5kdc/principal&#039; for realm&lt;br /&gt;
&#039;WICS.UWATERLOO.CA&#039;,&lt;br /&gt;
master key name &#039;K/M@WICS.UWATERLOO.CA&#039;&lt;br /&gt;
You will be prompted for the database Master Password.&lt;br /&gt;
It is important that you NOT FORGET this password.&lt;br /&gt;
Enter KDC database master key:&lt;br /&gt;
Re-enter KDC database master key to verify:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Now that your realm is set up you may wish to create an administrative&lt;br /&gt;
principal using the addprinc subcommand of the kadmin.local program.&lt;br /&gt;
Then, this principal can be added to /etc/krb5kdc/kadm5.acl so that&lt;br /&gt;
you can use the kadmin program on other computers.  Kerberos admin&lt;br /&gt;
principals usually belong to a single user and end in /admin.  For&lt;br /&gt;
example, if jruser is a Kerberos administrator, then in addition to&lt;br /&gt;
the normal jruser principal, a jruser/admin principal should be&lt;br /&gt;
created.&lt;br /&gt;
&lt;br /&gt;
Don&#039;t forget to set up DNS information so your clients can find your&lt;br /&gt;
KDC and admin servers.  Doing so is documented in the administration&lt;br /&gt;
guide.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We&#039;ll now configure the default and maximum ticket life for the Kerberos Ticket Granting Ticket (&amp;lt;code&amp;gt;krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&amp;lt;/code&amp;gt;):&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# kadmin.local &lt;br /&gt;
Authenticating as principal root/admin@WICS.UWATERLOO.CA with password.&lt;br /&gt;
kadmin.local:  getprinc krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&lt;br /&gt;
Principal: krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&lt;br /&gt;
Expiration date: [never]&lt;br /&gt;
Last password change: [never]&lt;br /&gt;
Password expiration date: [none]&lt;br /&gt;
Maximum ticket life: 0 days 12:00:00&lt;br /&gt;
Maximum renewable life: 1 day 00:00:00&lt;br /&gt;
Last modified: Thu Dec 03 03:59:04 UTC 2015 (db_creation@WICS.UWATERLOO.CA)&lt;br /&gt;
Last successful authentication: [never]&lt;br /&gt;
Last failed authentication: [never]&lt;br /&gt;
Failed password attempts: 0&lt;br /&gt;
Number of keys: 2&lt;br /&gt;
Key: vno 1, aes256-cts-hmac-sha1-96, no salt&lt;br /&gt;
Key: vno 1, aes128-cts-hmac-sha1-96, no salt&lt;br /&gt;
MKey: vno 1&lt;br /&gt;
Attributes: REQUIRES_PRE_AUTH&lt;br /&gt;
Policy: [none]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Let&#039;s set the max life to 4 hours and the renewable life to 10 hours, for extra security.&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;kadmin.local:  modprinc -maxlife &amp;amp;quot;4 hour&amp;amp;quot; -maxrenewlife &amp;amp;quot;10 hour&amp;amp;quot; krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&lt;br /&gt;
Principal &amp;amp;quot;krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&amp;amp;quot; modified.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Adding Principals ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We need some root users in our system in order to bootstrap the rest, so let&#039;s create our sysadmin user, and give them our root password for authentication:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# kadmin.local&lt;br /&gt;
Authenticating as principal root/admin@WICS.UWATERLOO.CA with password.&lt;br /&gt;
kadmin.local:  addprinc sysadmin/admin&lt;br /&gt;
WARNING: no policy specified for sysadmin/admin@WICS.UWATERLOO.CA; defaulting to no policy&lt;br /&gt;
Enter password for principal &amp;amp;quot;sysadmin/admin@WICS.UWATERLOO.CA&amp;amp;quot;: &lt;br /&gt;
Re-enter password for principal &amp;amp;quot;sysadmin/admin@WICS.UWATERLOO.CA&amp;amp;quot;: &lt;br /&gt;
Principal &amp;amp;quot;sysadmin/admin@WICS.UWATERLOO.CA&amp;amp;quot; created.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now we need to add a principal and keytab for our KDC host. While &amp;lt;code&amp;gt;addprinc -randkey&amp;lt;/code&amp;gt; does add a key, we need to use &amp;lt;code&amp;gt;ktadd&amp;lt;/code&amp;gt; to ensure it&#039;s copied over to the client host (in this case, auth1). &lt;br /&gt;
&lt;br /&gt;
  (&#039;&#039;&#039;keytab:&#039;&#039;&#039; a key table file containing one or more keys. A host or service uses a keytab file in much the same way as a user uses his/her password.)&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ kadmin -p sysadmin/admin&lt;br /&gt;
Authenticating as principal sysadmin/admin with password.&lt;br /&gt;
Password for sysadmin/admin@WICS.UWATERLOO.CA:&lt;br /&gt;
kadmin:  addprinc -randkey host/auth1.wics.uwaterloo.ca&lt;br /&gt;
WARNING: no policy specified for&lt;br /&gt;
host/auth1.wics.uwaterloo.ca@WICS.UWATERLOO.CA; defaulting to no policy&lt;br /&gt;
Principal &amp;amp;quot;host/auth1.wics.uwaterloo.ca@WICS.UWATERLOO.CA&amp;amp;quot; created.&lt;br /&gt;
kadmin:  ktadd host/auth1.wics.uwaterloo.ca&lt;br /&gt;
Entry for principal host/auth1.wics.uwaterloo.ca with kvno 2, encryption type&lt;br /&gt;
aes256-cts-hmac-sha1-96 added to keytab FILE:/etc/krb5.keytab.&lt;br /&gt;
Entry for principal host/auth1.wics.uwaterloo.ca with kvno 2, encryption type&lt;br /&gt;
aes128-cts-hmac-sha1-96 added to keytab FILE:/etc/krb5.keytab.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now we can test that the KDC can grant principals tickets:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ kinit sysadmin/admin&lt;br /&gt;
Password for sysadmin/admin@WICS.UWATERLOO.CA: &lt;br /&gt;
$ klist&lt;br /&gt;
Ticket cache: FILE:/tmp/krb5cc_0&lt;br /&gt;
Default principal: sysadmin/admin@WICS.UWATERLOO.CA&lt;br /&gt;
Valid starting       Expires              Service principal&lt;br /&gt;
12/03/2015 05:31:38  12/03/2015 09:31:38  krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&lt;br /&gt;
   renew until 12/03/2015 15:31:38&lt;br /&gt;
$ kdestroy&lt;br /&gt;
$ klist&lt;br /&gt;
klist: Credentials cache file &#039;/tmp/krb5cc_0&#039; not found&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, we&#039;ll probably want to add principals for any users that we created in LDAP. We can do this in &amp;lt;code&amp;gt;weo&amp;lt;/code&amp;gt; using the following command, and we can even test that principal after its creation:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ python weo.py --add-krb-princ --username=ehashman&lt;br /&gt;
Okay, adding Kerberos principal ehashman@WICS.UWATERLOO.CA&lt;br /&gt;
Enter Kerberos admin password: &lt;br /&gt;
Enter password for principal ehashman@WICS.UWATERLOO.CA: &lt;br /&gt;
Retype password: &lt;br /&gt;
Adding Kerberos principal...&lt;br /&gt;
Principal ehashman@WICS.UWATERLOO.CA successfully added.&lt;br /&gt;
$ kinit ehashman&lt;br /&gt;
Password for ehashman@WICS.UWATERLOO.CA: &lt;br /&gt;
$ klist&lt;br /&gt;
Ticket cache: FILE:/tmp/krb5cc_1000&lt;br /&gt;
Default principal: ehashman@WICS.UWATERLOO.CA&lt;br /&gt;
Valid starting     Expires            Service principal&lt;br /&gt;
15-12-03 17:36:22  15-12-03 21:36:22  krbtgt/WICS.UWATERLOO.CA@WICS.UWATERLOO.CA&lt;br /&gt;
 renew until 15-12-04 03:36:22&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;From now on, though, Kerberos principals will automatically be generated when we add new users! Like this:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;$ python weo.py --adduser --username=fhboxwal --fullname=&amp;amp;quot;Fatema Boxwala&amp;amp;quot;&lt;br /&gt;
Okay, adding user fhboxwal&lt;br /&gt;
Please enter the new user&#039;s password: &lt;br /&gt;
Retype password: &lt;br /&gt;
Enter LDAP admin password: &lt;br /&gt;
Enter Kerberos admin password: &lt;br /&gt;
Locking LDAP database...&lt;br /&gt;
Adding user...&lt;br /&gt;
Unlocked database.&lt;br /&gt;
Adding Kerberos principal...&lt;br /&gt;
User fhboxwal successfully added.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Awesome! Now we&#039;re ready to configure Kerberos for clients.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Up Client Machines with SSSD ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;On your machine of choice, install the Kerberos client packages:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install krb5-user&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now copy over your Kerberos config, [https://git.uwaterloo.ca/wics/documentation/blob/master/krb5.conf &amp;lt;code&amp;gt;krb5.conf&amp;lt;/code&amp;gt;], into &amp;lt;code&amp;gt;/etc/krb5.conf&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, set up a host keytab for the local machine:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# kadmin -p sysadmin/admin&lt;br /&gt;
Authenticating as principal sysadmin/admin with password.&lt;br /&gt;
Password for sysadmin/admin@WICS.UWATERLOO.CA: &lt;br /&gt;
kadmin:  addprinc -randkey host/mother-goose.wics.uwaterloo.ca&lt;br /&gt;
WARNING: no policy specified for host/mother-goose.wics.uwaterloo.ca@WICS.UWATERLOO.CA; defaulting to no policy&lt;br /&gt;
Principal &amp;amp;quot;host/mother-goose.wics.uwaterloo.ca@WICS.UWATERLOO.CA&amp;amp;quot; created.&lt;br /&gt;
kadmin:  ktadd host/mother-goose.wics.uwaterloo.ca&lt;br /&gt;
Entry for principal host/mother-goose.wics.uwaterloo.ca with kvno 2, encryption type aes256-cts-hmac-sha1-96 added to keytab FILE:/etc/krb5.keytab.&lt;br /&gt;
Entry for principal host/mother-goose.wics.uwaterloo.ca with kvno 2, encryption type aes128-cts-hmac-sha1-96 added to keytab FILE:/etc/krb5.keytab.&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;In order to configure authentication, we&#039;ll use a package called SSSD. (It has 234823840 dependencies.) Install it and its utilities:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install sssd sssd-tools&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Next, copy over the following configs:&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://git.uwaterloo.ca/wics/documentation/blob/master/ldap.conf &amp;lt;code&amp;gt;/etc/ldap/ldap.conf&amp;lt;/code&amp;gt;]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://git.uwaterloo.ca/wics/documentation/blob/master/sssd.conf &amp;lt;code&amp;gt;/etc/sssd/sssd.conf&amp;lt;/code&amp;gt;]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://git.uwaterloo.ca/wics/documentation/blob/master/sshd_config &amp;lt;code&amp;gt;/etc/ssh/sshd_config&amp;lt;/code&amp;gt;]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;[https://git.uwaterloo.ca/wics/documentation/blob/master/ssh_config &amp;lt;code&amp;gt;/etc/ssh/ssh_config&amp;lt;/code&amp;gt;]&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;[https://git.uwaterloo.ca/wics/documentation/blob/master/hosts &amp;lt;code&amp;gt;/etc/hosts&amp;lt;/code&amp;gt;] (because what the heck)&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Restart &amp;lt;code&amp;gt;sssd&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sshd&amp;lt;/code&amp;gt;. The former can be very temperamental:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# service ssh restart&lt;br /&gt;
# service sssd restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Test that this all worked by attempting to log in:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# Just try logging in&lt;br /&gt;
$ ssh me@machine.wics.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
# Try logging in using Kerberos&lt;br /&gt;
$ kinit me&lt;br /&gt;
$ ssh -o GSSAPIAuthentication=yes me@machine.wics.uwaterloo.ca&lt;br /&gt;
&lt;br /&gt;
# Test that sudo is working&lt;br /&gt;
machine:~$ sudo -i&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Tools for Debugging SSSD ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;It turns out &amp;lt;code&amp;gt;sssd&amp;lt;/code&amp;gt; is not the greatest at telling us things. If it starts breaking, stop it and start it in the foreground in debugging mode:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# service sssd stop&lt;br /&gt;
# sssd -d 5 -i&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Some problems with &amp;lt;code&amp;gt;sssd&amp;lt;/code&amp;gt; may be cache-related, and restarting it does not clear the cache. If you need to invalidate the cache, run&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;sss_cache -E&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
and then reboot (or restart sssd).&lt;br /&gt;
&lt;br /&gt;
= Password Resets =&lt;br /&gt;
To change your own password you can run passwd on any of the club&#039;s machines.&lt;br /&gt;
&lt;br /&gt;
== Changing other user&#039;s passwords (new) ==&lt;br /&gt;
The [[ceo]] utility now has the ability to reset members&#039; passwords, and it also takes care of expiring it. Usage:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ceo members pwreset &amp;lt;username&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changing other users&#039; passwords (old) ==&lt;br /&gt;
* &amp;lt;pre&amp;gt;ssh auth1&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo kadmin.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;pre&amp;gt;cpw username&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Enter new password and confirm&lt;br /&gt;
* &amp;lt;pre&amp;gt;modify_principal +needchange username&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
&lt;br /&gt;
[http://web.archive.org/web/20120202205851/http://cryptnet.net/mirrors/docs/krb5api.html API Documentation.] While not even close to enough to let you do most things that you&#039;d want to do with Kerberos (and also being somewhat woefully out-of-date, considering it&#039;s from 1996), it&#039;s at least a start.&lt;br /&gt;
&lt;br /&gt;
= Expiring Passwords =&lt;br /&gt;
&lt;br /&gt;
If you are on syscom, you can force a user to change their password by doing this:&lt;br /&gt;
* &amp;lt;pre&amp;gt;ssh auth1&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;pre&amp;gt;sudo kadmin.local&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &amp;lt;pre&amp;gt;modify_principal +needchange [username]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Suspending an Account =&lt;br /&gt;
&lt;br /&gt;
If you are on syscom, you can prevent a user from logging with a Kerberos ticket by doing this:&lt;br /&gt;
* ssh auth1&lt;br /&gt;
* sudo kadmin.local&lt;br /&gt;
* modify_principal -allow_tix [username]&lt;br /&gt;
If you are seriously locking out an account, you may want to do some other things as well, including but not limited to changing the user&#039;s password (prevents password login) and changing the ownership and permissions on .ssh/authorized_keys* (prevents SSH key login). Don&#039;t do these things without a strong reason (but know how to do them when the time comes).&lt;br /&gt;
&lt;br /&gt;
= Siracha&#039;s Lessons in Hell =&lt;br /&gt;
I died to write these, do not take the lessons on this page lightly. We cried figuring out these things &lt;br /&gt;
&lt;br /&gt;
=== Connecting to auth1 ===&lt;br /&gt;
Get the leader&#039;s PID&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
machinectl status auth1 | grep Leader&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Connect to the Process using result in last command&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nsenter -a -t &amp;lt;Leader PID&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= bofh&#039;s Kerberos5 cheat sheet, or &amp;quot;what does *that* error message mean, exactly?&amp;quot; =&lt;br /&gt;
&lt;br /&gt;
* If GSSAPI complains about &amp;quot;Wrong Principal in Request&amp;quot;, make sure there&#039;s no clockskew on the machine trying to get the service ticket and the machine running the service that you are trying to get a GSS token to. This will cause this error for some insane reason, despite there being ANOTHER message for clockskew that specifically says &amp;quot;your clocks are off&amp;quot; - it just never seems to be used in the source code anywhere (as of MIT-KRB5 1.9, at least).&lt;br /&gt;
* There are some &amp;quot;generic&amp;quot; errors that are hard to debug. A few possible causes: unreadable krb5.keytab, reverse resolution of a host does not match its principal.&lt;br /&gt;
&lt;br /&gt;
= Replication =&lt;br /&gt;
&lt;br /&gt;
auth1 replicates to auth2 using kpropd. This requires additional setup that needs to be documented here.&lt;br /&gt;
&lt;br /&gt;
Occasionally, the replication results in &amp;quot;ulog_replay failed (Cannot allocate memory), updates not registered&amp;quot;. To correct this, run `kproplog -R` on auth1 and start the `kpropd` server again.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide to keytabs =&lt;br /&gt;
&lt;br /&gt;
Adapted from https://stackoverflow.com/a/55826172/9206488 and https://sfu.teamdynamix.com/TDClient/255/ITServices/KB/ArticleDet?ID=3932&lt;br /&gt;
&lt;br /&gt;
You can follow this guide to never need to &amp;lt;code&amp;gt;kinit&amp;lt;/code&amp;gt; or enter your password for CEO again. Note that all caps is needed for the Kerberos realm, and replace &amp;lt;code&amp;gt;&amp;lt;user&amp;gt;&amp;lt;/code&amp;gt; with your CSC username.&lt;br /&gt;
&lt;br /&gt;
 ktutil&lt;br /&gt;
 addent -password -p &amp;lt;user&amp;gt;@CSCLUB.UWATERLOO.CA -k 1 -e aes256-cts-hmac-sha1-96&lt;br /&gt;
 # enter password at the prompt&lt;br /&gt;
 wkt &amp;lt;user&amp;gt;.keytab&lt;br /&gt;
 quit&lt;br /&gt;
&lt;br /&gt;
Then move your keytab to a secure directory:&lt;br /&gt;
&lt;br /&gt;
 mkdir -m700 ~/keytabs&lt;br /&gt;
 mv ~/$USER.keytab ~/keytabs/&lt;br /&gt;
 chmod 600 ~/keytabs/$USER.keytab&lt;br /&gt;
&lt;br /&gt;
Finally, add this line to the &amp;lt;b&amp;gt;TOP&amp;lt;/b&amp;gt; of your &amp;lt;code&amp;gt;bashrc&amp;lt;/code&amp;gt; (or before any command to disable it for non-interactive shells, unless you don&#039;t want &amp;lt;code&amp;gt;kinit&amp;lt;/code&amp;gt; to be triggered when running remote commands:&lt;br /&gt;
&lt;br /&gt;
 kinit -kt ~/keytabs/$USER.keytab $USER@CSCLUB.UWATERLOO.CA&lt;br /&gt;
&lt;br /&gt;
Alternatively, use k5start so that your tickets automatically get renewed in the background:&lt;br /&gt;
&lt;br /&gt;
  KEYTAB_FILE=~/keytabs/$USER.keytab&lt;br /&gt;
  if command -v k5start &amp;gt;/dev/null &amp;amp;&amp;amp; ! pgrep -u $USER k5start &amp;gt;/dev/null &amp;amp;&amp;amp; [ -f $KEYTAB_FILE ]; then&lt;br /&gt;
    k5start -K 60 -H 70 -b -f $KEYTAB_FILE&lt;br /&gt;
  fi&lt;br /&gt;
  unset KEYTAB_FILE&lt;br /&gt;
&lt;br /&gt;
Tada! Now you&#039;ll automatically get a kerberos ticket on SSH/shell. You can test this by running&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs@csclub.uwaterloo.ca klist&lt;br /&gt;
&lt;br /&gt;
You should see a valid ticket from a second or two ago.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5365</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5365"/>
		<updated>2025-06-12T00:54:54Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pyceo.png|thumb|300px|right|&amp;lt;tt&amp;gt;pyceo&amp;lt;/tt&amp;gt;&#039;s main menu screen]]&lt;br /&gt;
&lt;br /&gt;
ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, was re-written in python by Michael Spang in early 2007, and re-written again (in Python) by Syscom in 2020-2021. The source-code for ceo can be found in git: [https://git.csclub.uwaterloo.ca/public/pyceo https://git.csclub.uwaterloo.ca/public/pyceo].&lt;br /&gt;
&lt;br /&gt;
= Instructions/Usage =&lt;br /&gt;
ceo can be accessed by running the &amp;quot;ceo&amp;quot; command from a terminal, or terminal emulator.&lt;br /&gt;
By default, a curses-based menu interface is presented. Use the arrow keys to navigate;&lt;br /&gt;
on many screens, pressing a letter will select the next menu item beginning with that letter.&lt;br /&gt;
&lt;br /&gt;
=== Command-line Mode ===&lt;br /&gt;
Run &amp;lt;tt&amp;gt;ceo --help&amp;lt;/tt&amp;gt; to see a list of command-line utilities.&lt;br /&gt;
&lt;br /&gt;
== Adding a New Member ==&lt;br /&gt;
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecting &amp;quot;New Member&amp;quot; in ceo and following the on-screen instructions.  The new member&#039;s username is to be identical to their WatIAM username, if applicable.  For WatIAM users, the name and program fields will automatically be filled after a username is provided.&lt;br /&gt;
&lt;br /&gt;
== Renewing/Extending a Membership ==&lt;br /&gt;
A membership can be renewed or extended by selecting &amp;quot;Renew Membership&amp;quot; in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
== Hosted Clubs ==&lt;br /&gt;
Clubs are hosted free of charge.  To create a new club account use the &amp;quot;New Club&amp;quot; option in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
=== Club Representatives ===&lt;br /&gt;
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the &amp;quot;New Club Rep&amp;quot; option, and renewed with the &amp;quot;Renew Club Rep&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
=== Other Club Features ===&lt;br /&gt;
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide on how to fix things after screwing up =&lt;br /&gt;
&lt;br /&gt;
== Changing a member to a nonmember (club rep) and vice-versa ==&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs&lt;br /&gt;
 kinit # if you don&#039;t already have &amp;lt;u&amp;gt;[[Kerberos#raymo&#039;s guide to keytabs|keytabs]]&amp;lt;/u&amp;gt; set up&lt;br /&gt;
 ldapvi -Y GSSAPI&lt;br /&gt;
Use &amp;lt;code&amp;gt;/&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; to search for the user in vi and change &amp;lt;code&amp;gt;term&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; (or vice-versa) for the relevant terms. When you&#039;re done deleting the file should no longer contain the username. Save and quit (&amp;lt;code&amp;gt;:wq&amp;lt;/code&amp;gt;) and press &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; when prompted.&lt;br /&gt;
&lt;br /&gt;
== Deleting a member ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RULE: Never do this without good reason. We should NEVER delete accounts or groups that have been used before.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you accidentally created a club rep as a regular member instead, see the [previous section|Ceo#Changing a member to a nonmember (club rep) and vice-versa]. For another reason that doesn&#039;t break the &#039;&#039;&#039;RULE&#039;&#039;&#039; above, first follow the steps in the change membership section above, up to and including &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;, then delete both the user and group LDAP records. These are separated by blank lines. When you&#039;re done deleting the file should no longer contain the username. Save and quit as if changing membership. Then:&lt;br /&gt;
 ssh auth1&lt;br /&gt;
 sudo kadmin.local&lt;br /&gt;
 delprinc &amp;lt;username&amp;gt;&lt;br /&gt;
 ssh phosphoric acid&lt;br /&gt;
 sudo rm -rfI /users/&amp;lt;username&amp;gt;&lt;br /&gt;
Unsubscribe the user from [https://mailman.csclub.uwaterloo.ca/postorius/lists/syscom.csclub.uwaterloo.ca/members/member/ csc-general on mailman]&lt;br /&gt;
&lt;br /&gt;
= Feature Requests and Ideas =&lt;br /&gt;
&lt;br /&gt;
* Create a graphical and/or online version of ceo&lt;br /&gt;
* Add new members to fuse and plugdev groups&lt;br /&gt;
&lt;br /&gt;
= Contributing to CEO =&lt;br /&gt;
&lt;br /&gt;
== Preliminary Steps ==&lt;br /&gt;
=== Generate a GPG Key ===&lt;br /&gt;
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run&lt;br /&gt;
&lt;br /&gt;
 gpg --gen-key&lt;br /&gt;
&lt;br /&gt;
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.&lt;br /&gt;
&lt;br /&gt;
=== Add Your Key To Mirror ===&lt;br /&gt;
 ssh mirror.csclub.uwaterloo.ca&lt;br /&gt;
 gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
Locate the 8-character id string. For example &amp;quot;16E37635&amp;quot; in&lt;br /&gt;
 /users/m2ellis/.gnupg/pubring.gpg&lt;br /&gt;
 ---------------------------------&lt;br /&gt;
 pub   1024D/&#039;&#039;&#039;16E37635&#039;&#039;&#039; 2010-08-19&lt;br /&gt;
 uid                  Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you must add this id into the file /srv/debian/conf/uploaders on mirror&lt;br /&gt;
 sudo vim /srv/debian/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
Now in another terminal run&lt;br /&gt;
 gpg --export --armor $KEYID&lt;br /&gt;
&lt;br /&gt;
Now on mirror run&lt;br /&gt;
 sudo -s&lt;br /&gt;
 GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example&lt;br /&gt;
 gpg: key 16E37635: public key &amp;quot;Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&amp;quot; imported&lt;br /&gt;
 gpg: Total number processed: 1&lt;br /&gt;
 gpg:               imported: 1&lt;br /&gt;
&lt;br /&gt;
== Making Changes ==&lt;br /&gt;
The source-code for ceo can be found in git: [http://git.csclub.uwaterloo.ca/?p=public/pyceo.git;a=summary csclub:/users/git/public/pyceo.git]. To checkout the code run&lt;br /&gt;
&lt;br /&gt;
 git clone ~git/public/pyceo.git&lt;br /&gt;
&lt;br /&gt;
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run&lt;br /&gt;
&lt;br /&gt;
 dch -i&lt;br /&gt;
&lt;br /&gt;
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!).&lt;br /&gt;
&lt;br /&gt;
Make sure to set a distribution, like distribution UNRELEASED is NOT allowed. So change it to whatever distribution you&#039;re deploying to in the &amp;lt;code&amp;gt;debian/changelog&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
Then you&#039;ll need to make a tar.gz file&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar czf ceo_1.0.31.orig.tar.gz pyceo/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;To build the package run debuild&lt;br /&gt;
&lt;br /&gt;
 debuild&lt;br /&gt;
&lt;br /&gt;
This will generate the *.deb files in the parent directory.&lt;br /&gt;
&lt;br /&gt;
=== Uploading Changes to Mirror ===&lt;br /&gt;
After you make the package, you&#039;ll need to sign it, this can be via debsign. (You can find the .changes file in the parent directory)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
debsign -k[GPG Key ID] [package].changes &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the directory containing the *.deb and *.changes files run&lt;br /&gt;
&lt;br /&gt;
=== DO NOT USE DUPLOAD, THIS IS LEGACY DOCUMENTATION, USE `dput` INSTEAD. ASK SIRACHA FOR CONFIGS ===&lt;br /&gt;
&#039;&#039;&#039;This needs to be done on high-fructose-corn-syrup because of the dupload configs&#039;&#039;&#039;&lt;br /&gt;
 dupload&lt;br /&gt;
&lt;br /&gt;
Then ssh to mirror and run&lt;br /&gt;
 sudo rrr-incoming&lt;br /&gt;
&lt;br /&gt;
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5364</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5364"/>
		<updated>2025-06-11T23:09:07Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pyceo.png|thumb|300px|right|&amp;lt;tt&amp;gt;pyceo&amp;lt;/tt&amp;gt;&#039;s main menu screen]]&lt;br /&gt;
&lt;br /&gt;
ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, was re-written in python by Michael Spang in early 2007, and re-written again (in Python) by Syscom in 2020-2021. The source-code for ceo can be found in git: [https://git.csclub.uwaterloo.ca/public/pyceo https://git.csclub.uwaterloo.ca/public/pyceo].&lt;br /&gt;
&lt;br /&gt;
= Instructions/Usage =&lt;br /&gt;
ceo can be accessed by running the &amp;quot;ceo&amp;quot; command from a terminal, or terminal emulator.&lt;br /&gt;
By default, a curses-based menu interface is presented. Use the arrow keys to navigate;&lt;br /&gt;
on many screens, pressing a letter will select the next menu item beginning with that letter.&lt;br /&gt;
&lt;br /&gt;
=== Command-line Mode ===&lt;br /&gt;
Run &amp;lt;tt&amp;gt;ceo --help&amp;lt;/tt&amp;gt; to see a list of command-line utilities.&lt;br /&gt;
&lt;br /&gt;
== Adding a New Member ==&lt;br /&gt;
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecting &amp;quot;New Member&amp;quot; in ceo and following the on-screen instructions.  The new member&#039;s username is to be identical to their WatIAM username, if applicable.  For WatIAM users, the name and program fields will automatically be filled after a username is provided.&lt;br /&gt;
&lt;br /&gt;
== Renewing/Extending a Membership ==&lt;br /&gt;
A membership can be renewed or extended by selecting &amp;quot;Renew Membership&amp;quot; in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
== Hosted Clubs ==&lt;br /&gt;
Clubs are hosted free of charge.  To create a new club account use the &amp;quot;New Club&amp;quot; option in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
=== Club Representatives ===&lt;br /&gt;
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the &amp;quot;New Club Rep&amp;quot; option, and renewed with the &amp;quot;Renew Club Rep&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
=== Other Club Features ===&lt;br /&gt;
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide on how to fix things after screwing up =&lt;br /&gt;
&lt;br /&gt;
== Changing a member to a nonmember (club rep) and vice-versa ==&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs&lt;br /&gt;
 kinit # if you don&#039;t already have &amp;lt;u&amp;gt;[[Kerberos#raymo&#039;s guide to keytabs|keytabs]]&amp;lt;/u&amp;gt; set up&lt;br /&gt;
 ldapvi -Y GSSAPI&lt;br /&gt;
Use &amp;lt;code&amp;gt;/&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; to search for the user in vi and change &amp;lt;code&amp;gt;term&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; (or vice-versa) for the relevant terms. When you&#039;re done deleting the file should no longer contain the username. Save and quit (&amp;lt;code&amp;gt;:wq&amp;lt;/code&amp;gt;) and press &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; when prompted.&lt;br /&gt;
&lt;br /&gt;
== Deleting a member ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RULE: Never do this without good reason. We should NEVER delete accounts or groups that have been used before.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you accidentally created a club rep as a regular member instead, see the [previous section|Ceo#Changing a member to a nonmember (club rep) and vice-versa]. For another reason that doesn&#039;t break the &#039;&#039;&#039;RULE&#039;&#039;&#039; above, first follow the steps in the change membership section above, up to and including &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;, then delete both the user and group LDAP records. These are separated by blank lines. When you&#039;re done deleting the file should no longer contain the username. Save and quit as if changing membership. Then:&lt;br /&gt;
 ssh auth1&lt;br /&gt;
 sudo kadmin.local&lt;br /&gt;
 delprinc &amp;lt;username&amp;gt;&lt;br /&gt;
 ssh phosphoric acid&lt;br /&gt;
 sudo rm -rfI /users/&amp;lt;username&amp;gt;&lt;br /&gt;
Unsubscribe the user from [https://mailman.csclub.uwaterloo.ca/postorius/lists/syscom.csclub.uwaterloo.ca/members/member/ csc-general on mailman]&lt;br /&gt;
&lt;br /&gt;
= Feature Requests and Ideas =&lt;br /&gt;
&lt;br /&gt;
* Create a graphical and/or online version of ceo&lt;br /&gt;
* Add new members to fuse and plugdev groups&lt;br /&gt;
&lt;br /&gt;
= Contributing to CEO =&lt;br /&gt;
&lt;br /&gt;
== Preliminary Steps ==&lt;br /&gt;
=== Generate a GPG Key ===&lt;br /&gt;
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run&lt;br /&gt;
&lt;br /&gt;
 gpg --gen-key&lt;br /&gt;
&lt;br /&gt;
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.&lt;br /&gt;
&lt;br /&gt;
=== Add Your Key To Mirror ===&lt;br /&gt;
 ssh mirror.csclub.uwaterloo.ca&lt;br /&gt;
 gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
Locate the 8-character id string. For example &amp;quot;16E37635&amp;quot; in&lt;br /&gt;
 /users/m2ellis/.gnupg/pubring.gpg&lt;br /&gt;
 ---------------------------------&lt;br /&gt;
 pub   1024D/&#039;&#039;&#039;16E37635&#039;&#039;&#039; 2010-08-19&lt;br /&gt;
 uid                  Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you must add this id into the file /srv/debian/conf/uploaders on mirror&lt;br /&gt;
 sudo vim /srv/debian/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
Now in another terminal run&lt;br /&gt;
 gpg --export --armor $KEYID&lt;br /&gt;
&lt;br /&gt;
Now on mirror run&lt;br /&gt;
 sudo -s&lt;br /&gt;
 GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example&lt;br /&gt;
 gpg: key 16E37635: public key &amp;quot;Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&amp;quot; imported&lt;br /&gt;
 gpg: Total number processed: 1&lt;br /&gt;
 gpg:               imported: 1&lt;br /&gt;
&lt;br /&gt;
== Making Changes ==&lt;br /&gt;
The source-code for ceo can be found in git: [http://git.csclub.uwaterloo.ca/?p=public/pyceo.git;a=summary csclub:/users/git/public/pyceo.git]. To checkout the code run&lt;br /&gt;
&lt;br /&gt;
 git clone ~git/public/pyceo.git&lt;br /&gt;
&lt;br /&gt;
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run&lt;br /&gt;
&lt;br /&gt;
 dch -i&lt;br /&gt;
&lt;br /&gt;
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!).&lt;br /&gt;
&lt;br /&gt;
Make sure to set a distribution, like distribution UNRELEASED is NOT allowed. So change it to whatever distribution you&#039;re deploying to in the &amp;lt;code&amp;gt;debian/changelog&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
Then you&#039;ll need to make a tar.gz file&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar czf ceo_1.0.31.orig.tar.gz pyceo/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;To build the package run debuild&lt;br /&gt;
&lt;br /&gt;
 debuild&lt;br /&gt;
&lt;br /&gt;
This will generate the *.deb files in the parent directory.&lt;br /&gt;
&lt;br /&gt;
=== Uploading Changes to Mirror ===&lt;br /&gt;
After you make the package, you&#039;ll need to sign it, this can be via debsign. (You can find the .changes file in the parent directory)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
debsign -k[GPG Key ID] [package].changes &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the directory containing the *.deb and *.changes files run&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;This needs to be done on high-fructose-corn-syrup because of the dupload configs&#039;&#039;&#039;&lt;br /&gt;
 dupload&lt;br /&gt;
&lt;br /&gt;
Then ssh to mirror and run&lt;br /&gt;
 sudo rrr-incoming&lt;br /&gt;
&lt;br /&gt;
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5363</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5363"/>
		<updated>2025-06-11T22:33:01Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pyceo.png|thumb|300px|right|&amp;lt;tt&amp;gt;pyceo&amp;lt;/tt&amp;gt;&#039;s main menu screen]]&lt;br /&gt;
&lt;br /&gt;
ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, was re-written in python by Michael Spang in early 2007, and re-written again (in Python) by Syscom in 2020-2021. The source-code for ceo can be found in git: [https://git.csclub.uwaterloo.ca/public/pyceo https://git.csclub.uwaterloo.ca/public/pyceo].&lt;br /&gt;
&lt;br /&gt;
= Instructions/Usage =&lt;br /&gt;
ceo can be accessed by running the &amp;quot;ceo&amp;quot; command from a terminal, or terminal emulator.&lt;br /&gt;
By default, a curses-based menu interface is presented. Use the arrow keys to navigate;&lt;br /&gt;
on many screens, pressing a letter will select the next menu item beginning with that letter.&lt;br /&gt;
&lt;br /&gt;
=== Command-line Mode ===&lt;br /&gt;
Run &amp;lt;tt&amp;gt;ceo --help&amp;lt;/tt&amp;gt; to see a list of command-line utilities.&lt;br /&gt;
&lt;br /&gt;
== Adding a New Member ==&lt;br /&gt;
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecting &amp;quot;New Member&amp;quot; in ceo and following the on-screen instructions.  The new member&#039;s username is to be identical to their WatIAM username, if applicable.  For WatIAM users, the name and program fields will automatically be filled after a username is provided.&lt;br /&gt;
&lt;br /&gt;
== Renewing/Extending a Membership ==&lt;br /&gt;
A membership can be renewed or extended by selecting &amp;quot;Renew Membership&amp;quot; in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
== Hosted Clubs ==&lt;br /&gt;
Clubs are hosted free of charge.  To create a new club account use the &amp;quot;New Club&amp;quot; option in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
=== Club Representatives ===&lt;br /&gt;
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the &amp;quot;New Club Rep&amp;quot; option, and renewed with the &amp;quot;Renew Club Rep&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
=== Other Club Features ===&lt;br /&gt;
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide on how to fix things after screwing up =&lt;br /&gt;
&lt;br /&gt;
== Changing a member to a nonmember (club rep) and vice-versa ==&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs&lt;br /&gt;
 kinit # if you don&#039;t already have &amp;lt;u&amp;gt;[[Kerberos#raymo&#039;s guide to keytabs|keytabs]]&amp;lt;/u&amp;gt; set up&lt;br /&gt;
 ldapvi -Y GSSAPI&lt;br /&gt;
Use &amp;lt;code&amp;gt;/&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; to search for the user in vi and change &amp;lt;code&amp;gt;term&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; (or vice-versa) for the relevant terms. When you&#039;re done deleting the file should no longer contain the username. Save and quit (&amp;lt;code&amp;gt;:wq&amp;lt;/code&amp;gt;) and press &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; when prompted.&lt;br /&gt;
&lt;br /&gt;
== Deleting a member ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RULE: Never do this without good reason. We should NEVER delete accounts or groups that have been used before.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you accidentally created a club rep as a regular member instead, see the [previous section|Ceo#Changing a member to a nonmember (club rep) and vice-versa]. For another reason that doesn&#039;t break the &#039;&#039;&#039;RULE&#039;&#039;&#039; above, first follow the steps in the change membership section above, up to and including &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;, then delete both the user and group LDAP records. These are separated by blank lines. When you&#039;re done deleting the file should no longer contain the username. Save and quit as if changing membership. Then:&lt;br /&gt;
 ssh auth1&lt;br /&gt;
 sudo kadmin.local&lt;br /&gt;
 delprinc &amp;lt;username&amp;gt;&lt;br /&gt;
 ssh phosphoric acid&lt;br /&gt;
 sudo rm -rfI /users/&amp;lt;username&amp;gt;&lt;br /&gt;
Unsubscribe the user from [https://mailman.csclub.uwaterloo.ca/postorius/lists/syscom.csclub.uwaterloo.ca/members/member/ csc-general on mailman]&lt;br /&gt;
&lt;br /&gt;
= Feature Requests and Ideas =&lt;br /&gt;
&lt;br /&gt;
* Create a graphical and/or online version of ceo&lt;br /&gt;
* Add new members to fuse and plugdev groups&lt;br /&gt;
&lt;br /&gt;
= Contributing to CEO =&lt;br /&gt;
&lt;br /&gt;
== Preliminary Steps ==&lt;br /&gt;
=== Generate a GPG Key ===&lt;br /&gt;
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run&lt;br /&gt;
&lt;br /&gt;
 gpg --gen-key&lt;br /&gt;
&lt;br /&gt;
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.&lt;br /&gt;
&lt;br /&gt;
=== Add Your Key To Mirror ===&lt;br /&gt;
 ssh mirror.csclub.uwaterloo.ca&lt;br /&gt;
 gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
Locate the 8-character id string. For example &amp;quot;16E37635&amp;quot; in&lt;br /&gt;
 /users/m2ellis/.gnupg/pubring.gpg&lt;br /&gt;
 ---------------------------------&lt;br /&gt;
 pub   1024D/&#039;&#039;&#039;16E37635&#039;&#039;&#039; 2010-08-19&lt;br /&gt;
 uid                  Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you must add this id into the file /srv/debian/conf/uploaders on mirror&lt;br /&gt;
 sudo vim /srv/debian/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
Now in another terminal run&lt;br /&gt;
 gpg --export --armor $KEYID&lt;br /&gt;
&lt;br /&gt;
Now on mirror run&lt;br /&gt;
 sudo -s&lt;br /&gt;
 GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example&lt;br /&gt;
 gpg: key 16E37635: public key &amp;quot;Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&amp;quot; imported&lt;br /&gt;
 gpg: Total number processed: 1&lt;br /&gt;
 gpg:               imported: 1&lt;br /&gt;
&lt;br /&gt;
== Making Changes ==&lt;br /&gt;
The source-code for ceo can be found in git: [http://git.csclub.uwaterloo.ca/?p=public/pyceo.git;a=summary csclub:/users/git/public/pyceo.git]. To checkout the code run&lt;br /&gt;
&lt;br /&gt;
 git clone ~git/public/pyceo.git&lt;br /&gt;
&lt;br /&gt;
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run&lt;br /&gt;
&lt;br /&gt;
 dch -i&lt;br /&gt;
&lt;br /&gt;
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!).&lt;br /&gt;
&lt;br /&gt;
Make sure to set a distribution, like distribution UNRELEASED is NOT allowed. So change it to whatever distribution you&#039;re deploying to in the &amp;lt;code&amp;gt;debian/changelog&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
Then you&#039;ll need to make a tar.gz file&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
tar czf ceo_1.0.31.orig.tar.gz pyceo/&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;To build the package run debuild&lt;br /&gt;
&lt;br /&gt;
 debuild&lt;br /&gt;
&lt;br /&gt;
This will generate the *.deb files in the parent directory.&lt;br /&gt;
&lt;br /&gt;
=== Uploading Changes to Mirror ===&lt;br /&gt;
After you make the package, you&#039;ll need to sign it, this can be via debsign. (You can find the .changes file in the parent directory)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
debsign -k[GPG Key ID] [package].changes &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the directory containing the *.deb and *.changes files run&lt;br /&gt;
 dupload&lt;br /&gt;
&lt;br /&gt;
Then ssh to mirror and run&lt;br /&gt;
 sudo rrr-incoming&lt;br /&gt;
&lt;br /&gt;
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5362</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5362"/>
		<updated>2025-06-11T22:20:22Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Adding some info abt how to&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Pyceo.png|thumb|300px|right|&amp;lt;tt&amp;gt;pyceo&amp;lt;/tt&amp;gt;&#039;s main menu screen]]&lt;br /&gt;
&lt;br /&gt;
ceo is the CSC member creation and administration interface. It was originally written in perl by persons of mysterious-ness, was re-written in python by Michael Spang in early 2007, and re-written again (in Python) by Syscom in 2020-2021. The source-code for ceo can be found in git: [https://git.csclub.uwaterloo.ca/public/pyceo https://git.csclub.uwaterloo.ca/public/pyceo].&lt;br /&gt;
&lt;br /&gt;
= Instructions/Usage =&lt;br /&gt;
ceo can be accessed by running the &amp;quot;ceo&amp;quot; command from a terminal, or terminal emulator.&lt;br /&gt;
By default, a curses-based menu interface is presented. Use the arrow keys to navigate;&lt;br /&gt;
on many screens, pressing a letter will select the next menu item beginning with that letter.&lt;br /&gt;
&lt;br /&gt;
=== Command-line Mode ===&lt;br /&gt;
Run &amp;lt;tt&amp;gt;ceo --help&amp;lt;/tt&amp;gt; to see a list of command-line utilities.&lt;br /&gt;
&lt;br /&gt;
== Adding a New Member ==&lt;br /&gt;
After a new member has paid the membership fee and signed the Machine Usage Policy forms, a new member account is added to the CSC system by selecting &amp;quot;New Member&amp;quot; in ceo and following the on-screen instructions.  The new member&#039;s username is to be identical to their WatIAM username, if applicable.  For WatIAM users, the name and program fields will automatically be filled after a username is provided.&lt;br /&gt;
&lt;br /&gt;
== Renewing/Extending a Membership ==&lt;br /&gt;
A membership can be renewed or extended by selecting &amp;quot;Renew Membership&amp;quot; in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
== Hosted Clubs ==&lt;br /&gt;
Clubs are hosted free of charge.  To create a new club account use the &amp;quot;New Club&amp;quot; option in the ceo interface.&lt;br /&gt;
&lt;br /&gt;
=== Club Representatives ===&lt;br /&gt;
At this time, there is no limit to the number of representatives a club may have, but representative accounts must be registered with the &amp;quot;New Club Rep&amp;quot; option, and renewed with the &amp;quot;Renew Club Rep&amp;quot; option.&lt;br /&gt;
&lt;br /&gt;
=== Other Club Features ===&lt;br /&gt;
For access to features beyond basic hosting (ie, databases), one of the club representatives will need to email the Systems Committee to have this set up.&lt;br /&gt;
&lt;br /&gt;
= raymo&#039;s guide on how to fix things after screwing up =&lt;br /&gt;
&lt;br /&gt;
== Changing a member to a nonmember (club rep) and vice-versa ==&lt;br /&gt;
&lt;br /&gt;
 ssh hfcs&lt;br /&gt;
 kinit # if you don&#039;t already have &amp;lt;u&amp;gt;[[Kerberos#raymo&#039;s guide to keytabs|keytabs]]&amp;lt;/u&amp;gt; set up&lt;br /&gt;
 ldapvi -Y GSSAPI&lt;br /&gt;
Use &amp;lt;code&amp;gt;/&amp;lt;username&amp;gt;&amp;lt;/code&amp;gt; to search for the user in vi and change &amp;lt;code&amp;gt;term&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; (or vice-versa) for the relevant terms. When you&#039;re done deleting the file should no longer contain the username. Save and quit (&amp;lt;code&amp;gt;:wq&amp;lt;/code&amp;gt;) and press &amp;lt;code&amp;gt;y&amp;lt;/code&amp;gt; when prompted.&lt;br /&gt;
&lt;br /&gt;
== Deleting a member ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;RULE: Never do this without good reason. We should NEVER delete accounts or groups that have been used before.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
If you accidentally created a club rep as a regular member instead, see the [previous section|Ceo#Changing a member to a nonmember (club rep) and vice-versa]. For another reason that doesn&#039;t break the &#039;&#039;&#039;RULE&#039;&#039;&#039; above, first follow the steps in the change membership section above, up to and including &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;, then delete both the user and group LDAP records. These are separated by blank lines. When you&#039;re done deleting the file should no longer contain the username. Save and quit as if changing membership. Then:&lt;br /&gt;
 ssh auth1&lt;br /&gt;
 sudo kadmin.local&lt;br /&gt;
 delprinc &amp;lt;username&amp;gt;&lt;br /&gt;
 ssh phosphoric acid&lt;br /&gt;
 sudo rm -rfI /users/&amp;lt;username&amp;gt;&lt;br /&gt;
Unsubscribe the user from [https://mailman.csclub.uwaterloo.ca/postorius/lists/syscom.csclub.uwaterloo.ca/members/member/ csc-general on mailman]&lt;br /&gt;
&lt;br /&gt;
= Feature Requests and Ideas =&lt;br /&gt;
&lt;br /&gt;
* Create a graphical and/or online version of ceo&lt;br /&gt;
* Add new members to fuse and plugdev groups&lt;br /&gt;
&lt;br /&gt;
= Contributing to CEO =&lt;br /&gt;
&lt;br /&gt;
== Preliminary Steps ==&lt;br /&gt;
=== Generate a GPG Key ===&lt;br /&gt;
In order to sign the ceo packages you will need to generate yourself a GPG key if you do not already have one. Assuming you do not run&lt;br /&gt;
&lt;br /&gt;
 gpg --gen-key&lt;br /&gt;
&lt;br /&gt;
Choose option (2) DSA (sign only). Choose no expiration when prompted and then your full name and email when asked. It will ask you to confirm the information and then for a passphrase.&lt;br /&gt;
&lt;br /&gt;
=== Add Your Key To Mirror ===&lt;br /&gt;
 ssh mirror.csclub.uwaterloo.ca&lt;br /&gt;
 gpg --list-keys&lt;br /&gt;
&lt;br /&gt;
Locate the 8-character id string. For example &amp;quot;16E37635&amp;quot; in&lt;br /&gt;
 /users/m2ellis/.gnupg/pubring.gpg&lt;br /&gt;
 ---------------------------------&lt;br /&gt;
 pub   1024D/&#039;&#039;&#039;16E37635&#039;&#039;&#039; 2010-08-19&lt;br /&gt;
 uid                  Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you must add this id into the file /srv/debian/conf/uploaders on mirror&lt;br /&gt;
 sudo vim /srv/debian/conf/uploaders&lt;br /&gt;
&lt;br /&gt;
Now in another terminal run&lt;br /&gt;
 gpg --export --armor $KEYID&lt;br /&gt;
&lt;br /&gt;
Now on mirror run&lt;br /&gt;
 sudo -s&lt;br /&gt;
 GNUPGHOME=/srv/debian/gpg gpg --import&lt;br /&gt;
&lt;br /&gt;
Then paste the output from gpg --export --armor $KEYID and end with CTRL-D. It should give you a confirmation, example&lt;br /&gt;
 gpg: key 16E37635: public key &amp;quot;Michael Ellis &amp;lt;m2ellis@csclub.uwaterloo.ca&amp;gt;&amp;quot; imported&lt;br /&gt;
 gpg: Total number processed: 1&lt;br /&gt;
 gpg:               imported: 1&lt;br /&gt;
&lt;br /&gt;
== Making Changes ==&lt;br /&gt;
The source-code for ceo can be found in git: [http://git.csclub.uwaterloo.ca/?p=public/pyceo.git;a=summary csclub:/users/git/public/pyceo.git]. To checkout the code run&lt;br /&gt;
&lt;br /&gt;
 git clone ~git/public/pyceo.git&lt;br /&gt;
&lt;br /&gt;
When you are done making your change you need to update the changelog with dch. Assuming this is a minor incremental change run&lt;br /&gt;
&lt;br /&gt;
 dch -i&lt;br /&gt;
&lt;br /&gt;
Add a description of your change and then save and quit. Once you are sure of your changes commit them to the git repository and push them (test them first!). To build the package run debuild&lt;br /&gt;
&lt;br /&gt;
 debuild&lt;br /&gt;
&lt;br /&gt;
This will generate the *.deb files in the parent directory.&lt;br /&gt;
&lt;br /&gt;
=== Siracha&#039;s Notes ===&lt;br /&gt;
Make sure to set a distribution, like distribution UNRELEASED is NOT allowed. So change it to whatever distribution you&#039;re deploying to in the &amp;lt;code&amp;gt;debian/changelog&amp;lt;/code&amp;gt; file&lt;br /&gt;
&lt;br /&gt;
After you make the package, you&#039;ll need to sign it, this can be via debsign. (You can find the .changes file in the parent directory)&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
debsign -k[GPG Key ID] [package].changes &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Uploading Changes to Mirror ===&lt;br /&gt;
&lt;br /&gt;
In the directory containing the *.deb and *.changes files run&lt;br /&gt;
 dupload&lt;br /&gt;
&lt;br /&gt;
Then ssh to mirror and run&lt;br /&gt;
 sudo rrr-incoming&lt;br /&gt;
&lt;br /&gt;
The package should now be uploaded and you can update in the usual way with apt-get/aptitude.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Meetings&amp;diff=5359</id>
		<title>Meeting:Meetings</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Meetings&amp;diff=5359"/>
		<updated>2025-05-31T18:25:25Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Termcom/Syscom Meetings */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Minutes of Meetings (Executive)==&lt;br /&gt;
* [[Tuesday 16 September 2008]]&lt;br /&gt;
&lt;br /&gt;
==General Meetings==&lt;br /&gt;
&lt;br /&gt;
* [[Meetings/2025-01-13|Monday 13 January 2025]]&lt;br /&gt;
* [[Meetings/2024-01-11|Thursday 11 January 2024]]&lt;br /&gt;
* [[Tuesday 12 September 2023]]&lt;br /&gt;
* [[Wednesday 11 May 2023]]&lt;br /&gt;
* [[Meetings/2023-01-12|Thursday 12 January 2023]]&lt;br /&gt;
* [[Meetings/2022-09-12|Monday 12 September 2022]]&lt;br /&gt;
* [[Meetings/2022-05-05|Thursday 5 May 2022]]&lt;br /&gt;
* [[Thursday 2 October 2008]]&lt;br /&gt;
* [[Friday 19 October 2007]]&lt;br /&gt;
&lt;br /&gt;
==Weekly All-Hands Meetings==&lt;br /&gt;
* [[Monday 5 December 2022]]&lt;br /&gt;
* [[Monday 28 November 2022]]&lt;br /&gt;
* [[Monday 21 November 2022]]&lt;br /&gt;
* [[Monday 14 November 2022]]&lt;br /&gt;
* [[Monday 7 November 2022]]&lt;br /&gt;
* [[Monday 31 October 2022]]&lt;br /&gt;
* [[Monday 24 October 2022]]&lt;br /&gt;
* [[Monday 17 October 2022]]&lt;br /&gt;
* [[Monday 3 October 2022]]&lt;br /&gt;
* [[Sunday 21 March 2021]]&lt;br /&gt;
* [[Sunday 14 March 2021]]&lt;br /&gt;
* [[Sunday 7 March 2021]]&lt;br /&gt;
* [[Sunday 28 February 2021]]&lt;br /&gt;
&lt;br /&gt;
== Termcom/Syscom Meetings ==&lt;br /&gt;
* [[09 Mar 2025 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 29 July 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 24 June 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 10 June 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 27 May 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 13 May 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 25 March 2023 Termcom Meeting]]&lt;br /&gt;
* [[Saturday 11 February 2023]]&lt;br /&gt;
* [[Saturday 31 May 2024 Termcom Meeting]]&lt;br /&gt;
&lt;br /&gt;
== Source ==&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;CSC All-hands Meeting Notes - Fall 2022&#039;&#039;&#039;: https://docs.google.com/document/d/1Tl_E5nM3bguw9if9O2Woc4jNmeZxG7QVel5fzHdZgfQ/edit#&lt;br /&gt;
&lt;br /&gt;
[[Category:Meetings]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5357</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5357"/>
		<updated>2025-05-20T05:34:36Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* biloba */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Most of our machines are in the E7, F7, G7 and H7 racks (as of Jan. 2022) in the MC 3015 server room. There is an additional rack in the DC 3558 machine room on the third floor. Our office terminals are in the CSC office, in MC 3036/3037.&lt;br /&gt;
&lt;br /&gt;
= Web Server =&lt;br /&gt;
You are highly encouraged to avoid running anything that&#039;s not directly related to your CSC webspace on our web server. We have plenty of general-use machines; please use those instead. You can even edit web pages from any other machine--usually the only reason you&#039;d *need* to be on caffeine is for database access.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;caffeine&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Caffeine is the Computer Science Club&#039;s web server. It serves websites, databases for websites, and a large amount of other services.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;(Redundant active backup coming soon...)&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* LXC virtual machine hosted on [[Machine List#phosphoric-acid|phosphoric-acid]]&lt;br /&gt;
** 12 vCPUs&lt;br /&gt;
** 32GB of RAM&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Club and member web sites with [https://www.apache.org/ Apache]&lt;br /&gt;
* [[MySQL]] databases&lt;br /&gt;
* [[PostgreSQL]] databases&lt;br /&gt;
* [[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
= General-Use Servers =&lt;br /&gt;
&lt;br /&gt;
These machines can be used for (nearly) anything you like (though be polite and remember that these are shared machines). Recall that when you signed the Machine Usage Agreement, you promised not to use these machines to generate profit (so no cryptocurrency mining).&lt;br /&gt;
&lt;br /&gt;
For computationally-intensive jobs (CPU/memory bound) we recommend running on high-fructose-corn-syrup, carbonated-water, sorbitol, mannitol, or corn-syrup, listed in roughly decreasing order of available resources. For low-intensity interactive jobs, such as IRC clients, we recommend running on neotame. &#039;&#039;&#039;&amp;lt;u&amp;gt;If you have a long-running computationally intensive job, it&#039;s good to nice[https://en.wikipedia.org/wiki/Nice_(Unix)] your process, and possibly let syscom know too.&amp;lt;/u&amp;gt;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 × Intel Xeon E5405 (2.00 GHz, 4 cores each)&lt;br /&gt;
* 32 GB RAM&lt;br /&gt;
* eth0 (&amp;quot;Gb0&amp;quot;) mac addr 00:24:e8:52:41:27&lt;br /&gt;
* eth1 (&amp;quot;Gb1&amp;quot;) mac addr 00:24:e8:52:41:29&lt;br /&gt;
* IPMI mac addr 00:24:e8:52:41:2b&lt;br /&gt;
* 3 &amp;amp;times; Western-Digital 160GB SATA hard drive (445 GB software RAID0 array)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* Use eth0/Gb0 for the mathstudentorgsnet connection&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Hosts 1 TB &amp;lt;tt&amp;gt;[[scratch|/scratch]]&amp;lt;/tt&amp;gt; and exports via NFS (sec=krb5)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;high-fructose-corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
High-fructose-corn-syrup (or hfcs) is a large SuperMicro server. It&#039;s been in CSC service since April 2012.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6272 (2.4 GHz, 16 cores each)&lt;br /&gt;
* 192 GB RAM&lt;br /&gt;
* Supermicro H8QGi+-F Motherboard Quad 1944-pin Socket [http://csclub.uwaterloo.ca/misc/manuals/motherboard-H8QGI+-F.pdf (Manual)]&lt;br /&gt;
* 500 GB Seagate Barracuda&lt;br /&gt;
* Supermicro Case Rackmount CSE-748TQ-R1400B 4U [http://csclub.uwaterloo.ca/misc/manuals/SC748.pdf (Manual)]&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Missing moba IO shield (as of January 2024)&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;carbonated-water&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
carbonated-water is a Dell R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x AMD Opteron 6176 processors (2.3 GHz, 12 cores each)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;neotame&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
neotame is a SuperMicro server funded by MEF. It is the successor to taurine.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;We strongly discourage running computationally-intensive jobs&#039;&#039;&#039; on neotame as many users run interactive applications such as IRC clients on it and any significant service degradation will be more likely to affect other users (who will probably notice right away).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* SSH server also listens on ports 21, 22, 53, 80, 81, 443, 8000, 8080 for your convenience.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;sorbitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
sorbitol is a SuperMicro server funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
== &#039;&#039;mannitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
mannitol is a SuperMicro server funded by MEF. CUDA is available on this node.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2630 v4 processors (2.2 GHz, 10 cores/20 threads each)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* NVIDIA GeForce RTX 3050 6G&lt;br /&gt;
&lt;br /&gt;
= Office Terminals =&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to SSH into these machines, but we discourage you from trying to use these machines when you&#039;re not sitting in front of them. They are bounced at least every time our login manager, lightdm, throws a tantrum (which is several times a day). These are for use inside our physical office.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;cyanide&#039;&#039; ==&lt;br /&gt;
cyanide is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)], identical in specification to powernap&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;suika&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Suika is an office terminal built from various components donated by our members.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* AMD Ryzen 7 2700X&lt;br /&gt;
* 2x 8GB DDR4&lt;br /&gt;
* 1x Samsung 256GB SSD&lt;br /&gt;
* AMD Radeon RX 550 4GB&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;powernap&#039;&#039;==&lt;br /&gt;
powernap is a [https://support.apple.com/kb/sp710 Mac Mini (Late 2014)].&lt;br /&gt;
&lt;br /&gt;
=== Spec ===&lt;br /&gt;
&lt;br /&gt;
* Intel i7-4578U (4) @ 3.500GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Intel Iris Graphics 5100&lt;br /&gt;
* 256GB On-board SSD&lt;br /&gt;
&lt;br /&gt;
=== Speaker === &lt;br /&gt;
powernap has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
=== Services ===&lt;br /&gt;
* MPD for playing music. Only office/termcom/syscom can log into powernap. Use `ncmpcpp` to control MPD.&lt;br /&gt;
** TODO: this is not the case anymore&lt;br /&gt;
* Bluetooth audio receiver. Only syscom can control bluetooth pairing. Use `bluetoothctl` to control bluetooth.&lt;br /&gt;
&lt;br /&gt;
Music is located in `/music` on the office terminals.&lt;br /&gt;
&lt;br /&gt;
= Progcom Only =&lt;br /&gt;
The Programme Committee has access to a VM on corn-syrup called &#039;progcom&#039;. They have sudo rights in this VM so they may install and run their own software inside it. This VM should only be accessible by members of progcom or syscom.&lt;br /&gt;
&lt;br /&gt;
The CI/CD stuff for the csclub.uwaterloo.ca runs on this vm (drone).&lt;br /&gt;
&lt;br /&gt;
= Codey Bot Only =&lt;br /&gt;
Ran on CSC Cloud in a separate Cloudstack project. codey-staging, codey-dev, codey-prod.&lt;br /&gt;
&lt;br /&gt;
TODO: migrating from cloudstack&lt;br /&gt;
&lt;br /&gt;
= Syscom Only =&lt;br /&gt;
&lt;br /&gt;
The following systems are only be accessible to members of the [[Systems Committee]] for a variety of reasons; the most common of which being that some of these machines host [[Kerberos]] authentication services for the CSC.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;xylitol&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
xylitol is a Dell PowerEdge R815 donated by CSCF. It is primarily a container host for services previously hosted on aspartame and dextrose, including munin, rt, mathnews, auth1, and dns1. It was provisioned with the intent to replace both of those hosts.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Dual AMD Opteron 6176 (2.3 GHz, 48 cores total)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 500GB volume group on RAID1 SSD (xylitol-mirrored)&lt;br /&gt;
* 500ish-GB volume group on RAID10 HDD (xylitol-raidten)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth1&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] primary&lt;br /&gt;
*[[Kerberos]] primary&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chat&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#xylitol|xylitol]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* The Lounge web IRC client (https://chat.csclub.uwaterloo.ca)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phosphoric-acid&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phosphoric-acid is a Dell PowerEdge R815 donated by CSCF and is a clone of xylitol. It may be used to provide redundant cloud services in the future.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
* 4x 2TB Kingston KC3000 (ZFS Z2 [Sustain 2-failures]) (KIN-SKC3000D2048G)&lt;br /&gt;
** Mounted on 2x Startech Dual M.2 PCIE SSD Adapter Cards (STA-PEX8M2E2)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&lt;br /&gt;
*prometheus&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;coffee&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Virtual machine running on phosphoric-acid.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Database#MySQL|MySQL]]&lt;br /&gt;
*[[Database#Postgres|Postgres]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;cobalamin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dell PowerEdge 2950 donated to us by FEDS. Located in the Science machine room on the first floor of Physics, on Science Computing Rack 2. NICs are plugged into A1 and A2 on the adjacent rack. Acts as a backup server for many things.&lt;br /&gt;
&lt;br /&gt;
TODO: should replace with another Syscom server when Science Computing clears out the rack (ETA before 09/2024)&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 1 × Intel Xeon E5420 (2.50 GHz, 4 cores)&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* Broadcom NetworkXtreme II&lt;br /&gt;
* 2x73GB Hard Drives, hardware RAID1&lt;br /&gt;
** Soon to be 2x1TB in MegaRAID1&lt;br /&gt;
*http://www.dell.com/support/home/ca/en/cabsdt1/product-support/servicetag/51TYRG1/configuration&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Containers: [[#auth2|auth2]] (kerberos)&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;TODO: Mega unreliable.&#039;&#039;&#039; (Goes down once every few weeks... due to power outages in the PHYS server room)&lt;br /&gt;
** It is plugged into a UPS but the UPS has dead batteries.&lt;br /&gt;
* The network card requires non-free drivers. Be sure to use an installation disc with non-free.&lt;br /&gt;
&lt;br /&gt;
* We have separate IP ranges for cobalamin and its containers because the machine is located in a different building. They are:&lt;br /&gt;
** VLAN ID 506 (csc-data1): 129.97.18.16/29; gateway 129.97.18.17; mask 255.255.255.240&lt;br /&gt;
** VLAN ID 504 (csc-ipmi): 172.19.5.24/29; gateway 172.19.5.25; mask 255.255.255.248&lt;br /&gt;
* Physical access to the PHYS server rooms can be acquired by visiting Science Computing in PHYS 2006.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;auth2&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Container on [[#cobalamin|cobalamin]].&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[LDAP]] secondary&lt;br /&gt;
*[[Kerberos]] secondary&lt;br /&gt;
&lt;br /&gt;
MAC Address: c2:c0:00:00:00:a2&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mail&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
mail is the CSC&#039;s mail server. It hosts mail delivery, imap(s), smtp(s), and mailman. It is also syscom-only. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
TODO: &amp;quot;HA&amp;quot;-ish configuration&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mail]] services&lt;br /&gt;
* mailman (web interface at [http://mailman.csclub.uwaterloo.ca/])&lt;br /&gt;
*[[Webmail]]&lt;br /&gt;
*[[ceo]] daemon&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-benzoate is our previous mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It is currently sitting in the office pending repurposing. Will likely become a machine for backups in DC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon Quad Core E5405 @ 2.00 GHz&lt;br /&gt;
* 16GB RAM&lt;br /&gt;
* vg0: 228 GB block device behind DELL PERC 6/i (contains root partition)&lt;br /&gt;
&lt;br /&gt;
Space disks are currently in the office underneath maltodextrin.&lt;br /&gt;
&lt;br /&gt;
TODO: gone??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-benzoate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate is our mirror server, funded by MEF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 36 drive Supermicro chassis (SSG-6048R-E1CR36L) &lt;br /&gt;
* 2 x Intel Xeon E5-2695 v4 (18 cores, 2.10GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC RDIMM RAM&lt;br /&gt;
* 2 x 1 TB Samsung Evo 850 SSD drives&lt;br /&gt;
* 17 x 4 TB Western Digital Gold drives (separate funding from MEF)&lt;br /&gt;
* 9 x 18TB Seagate Exos X18 (8 ZFS, Z2,1 hot-spare)&lt;br /&gt;
* 10 Gbps SFP+ card (loaned from CSCF)&lt;br /&gt;
* 50 Gbps Mellanox QSFP card (from ginkgo; currently unconnected)&lt;br /&gt;
&lt;br /&gt;
Spec before 2025-03-27:&lt;br /&gt;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
&lt;br /&gt;
==== Network Connections ====&lt;br /&gt;
&lt;br /&gt;
potassium-benzoate has two connections to our network:&lt;br /&gt;
&lt;br /&gt;
* 1 Gbps to our switch (used for management)&lt;br /&gt;
* 2 x 10 Gbps (LACP bond) to mc-rt-3015-mso-a (for mirror)&lt;br /&gt;
&lt;br /&gt;
Mirror&#039;s bandwidth is limited to 1 Gbps on each of the 4 campus internet links. Mirror&#039;s bandwidth is not limited on campus.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[Mirror]]&lt;br /&gt;
*[[Talks]] mirror&lt;br /&gt;
*[[Debian_Repository|CSClub packages repository]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;munin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
munin is a syscom-only monitoring and accounting machine. It is a [[Virtualization#Linux_Containers|Linux container]] at present.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently hosted on [[#xylitol|xylitol]]&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://munin.csclub.uwaterloo.ca munin] systems monitoring daemon&lt;br /&gt;
TODO: Debian 9?&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;yerba-mate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* test-ipv6 (test-ipv6.csclub.uwaterloo.ca; a test-ipv6.com mirror)&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Also used for experimenting new CSC services.&lt;br /&gt;
&lt;br /&gt;
* TODO: use as backup server&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;citric-acid&#039;&#039;==&lt;br /&gt;
A Dell PowerEdge R815 (TODO: check model) provided by CSCF to replace [[Machine List#aspartame|aspartame]].&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* 2 x AMD Opteron 6174 (12 cores, 2.20 GHz)&lt;br /&gt;
* 128 GB RAM&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Services&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Configured for [https://pass.uwaterloo.ca pass.uwaterloo.ca], a university-wide password manager hosted by CSC as a demo service for all Nexus (ADFS) user.&lt;br /&gt;
* [[Plane]], an internal (CSC) project management tool.&lt;br /&gt;
* Minio&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Being repurposed for Termcom training and development.&lt;br /&gt;
* TODO: migrate Vaultwarden (https://pass.csclub.uwaterloo.ca/)??&lt;br /&gt;
* UFW opened-ports: SSH, HTTP/HTTPS&lt;br /&gt;
* Upgraded to Podman 4.x&lt;br /&gt;
&lt;br /&gt;
= Cloud =&lt;br /&gt;
&lt;br /&gt;
These machines are used by [https://cloud.csclub.uwaterloo.ca cloud.csclub.uwaterloo.ca]. The machines themselves are restricted to Syscom only access.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;chamomile&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R815 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 4x 2.20GHz 12-core processors (AMD Opteron(tm) Processor 6174)&lt;br /&gt;
* 128GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Cloudstack host&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;riboflavin&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge R515 provided by CSCF.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 2.6 GHz 8-core processors (AMD Opteron(tm) Processor 4376 HE)&lt;br /&gt;
* 64GB RAM&lt;br /&gt;
* 10GbE connection to core router&lt;br /&gt;
* 2x 500GB internal SSD&lt;br /&gt;
* 12x Seagate 4TB SSHD&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack block and object storage for csclub.cloud&lt;br /&gt;
* ????&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;guayusa&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Dell PowerEdge 2950 donated by a CSC member.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x 3.00 GHz quad core Intel Xeon 5160&lt;br /&gt;
* 32GB RAM&lt;br /&gt;
* 2TB PCI-Express Flash SSD&lt;br /&gt;
* 2x75GB 15k drives (RAID 1)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* load-balancer-01&lt;br /&gt;
&lt;br /&gt;
Was used to experiment the following then-new CSC services:&lt;br /&gt;
&lt;br /&gt;
* cifs (for booting ginkgo from CD)&lt;br /&gt;
* caffeine-01 (testing of multi-node caffeine)&lt;br /&gt;
* TODO: ???&lt;br /&gt;
** block1.cloud&lt;br /&gt;
** object1.cloud&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
* TODO: ditch... Currently being used to set up NextCloud.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginkgo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by MEF for CSC web hosting. Locate in MC 3015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon E5-2697 v4 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 256GB RAM&lt;br /&gt;
* 2 x 1.2 TB SSD (400GB of each for RAID 1)&lt;br /&gt;
* 10GbE onboard, 25GbE SFP+ card (also included 50GbE SFP+ card which will probably go in mirror)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* controller1.cloud&lt;br /&gt;
* db1.cloud&lt;br /&gt;
* router1.cloud (NAT for cloud tenant network)&lt;br /&gt;
* network1.cloud&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Storage =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs00&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs00 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* dual SFP connection to core switch&lt;br /&gt;
&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs01&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs01 is a &#039;&#039;&#039;NetApp FAS3040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
... TODO&lt;br /&gt;
&lt;br /&gt;
TODO: disconnected??&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs10&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs10 is a &#039;&#039;&#039;NetApp FAS8040&#039;&#039;&#039; series fileserver donated by CSCF.&lt;br /&gt;
&lt;br /&gt;
It is currently being used for testing of a HA NetApp nodes and serving home directories directly from the NetApp filer.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* FAS8040 (dual heads)&lt;br /&gt;
** ... TODO&lt;br /&gt;
* 6 DS4324 HDD shelves (24-disks each)&lt;br /&gt;
** 24 x 2TB HDDs (assorted brands/models)&lt;br /&gt;
** Dual IOM3 controllers.&lt;br /&gt;
** Loop 1: bottom 4 shelves&lt;br /&gt;
** Loop 2: top 2 shelves + SSD shelf&lt;br /&gt;
* 1 DS2246 SSD shelf (TODO: right model?)&lt;br /&gt;
** 24 Samsung SM1625 SSDs (MZ-6ER2000/0G3), 200GB (SAS 2, 2.5&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
= Other =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;mathnews&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
[[#xylitol|xylitol]] hosts a systemd-nspawn container which serves as the mathNEWS webserver. It is administered by mathNEWS, as a pilot for providing containers to select groups who have more specialized demands than the general-use infrastructure can meet.&lt;br /&gt;
&lt;br /&gt;
== ps3 ==&lt;br /&gt;
This is just a very wide PS3, the model that supported running Linux natively before it was removed. Firmware was updated to remove this feature, however it can still be done via. homebrew. &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Specs&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* It&#039;s a PS3.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;2022-10-24&#039;&#039;&#039; - Thermal paste replaced + firmware updated to latest supported version, also modded.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;binaerpilot&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Tobi expansion board. It is currently attached to corn-syrup in the machine room and even more currently turned off until someone can figure out what is wrong with it.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;anamanaguchi&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This is a Gumstix Overo Tide CPU on a Chestnut43 expansion board. It is currently in the hardware drawer in the CSC.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* TI OMAP 3530 750Mhz (ARM Cortex-A8)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;NOTE: May have disappeared at some point&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;digital cutter&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
See [[Digital Cutter|here]].&lt;br /&gt;
&lt;br /&gt;
= Decommissioned =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;biloba&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Dead, died after the poweroutage of May 9th, 2025, previously served as Cloudstack master node or wtv.&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by SLEF for CSC web hosting. Located in DC 3558. TODO: rack??&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2x Intel Xeon Gold 6140 @ 2.30GHz [18 cores each]&lt;br /&gt;
* 384GB RAM&lt;br /&gt;
* 12 3.5&amp;quot; Hot Swap Drive Bays&lt;br /&gt;
** 2 x 480 GB SSD&lt;br /&gt;
* 10GbE onboard, 10GbE SFP+ card (on loan from CSCF)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* OpenStack Compute machine&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;&lt;br /&gt;
* TODO: cloudstack migration&lt;br /&gt;
&lt;br /&gt;
No longer in use:&lt;br /&gt;
&lt;br /&gt;
* caffeine&lt;br /&gt;
* mail&lt;br /&gt;
* mattermost&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;aspartame&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
aspartame was a taurine clone donated by CSCF. It was once our primary file server, serving as the gateway interface to space on phlogiston. It also used to host the [[#auth1|auth1]] container, which has been temporarily moved to [[#dextrose|dextrose]]. Decomissioned in March 2021 after refusing to boot following a power outage.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;psilodump&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
psilodump is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling phlogiston, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
psilodump was plugged into aspartame. It&#039;s still installed but inaccessible.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;phlogiston&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
phlogiston is a NetApp FAS3000 series fileserver donated by CSCF. It, along with its sibling psilodump, hosted disk shelves exported as iSCSI block devices.&lt;br /&gt;
&lt;br /&gt;
phlogiston is turned off and should remain that way. It is misconfigured to have its drives overlap with those owned by psilodump, and if it is turned on, it will likely cause irreparable data loss.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 10GB RAM&lt;br /&gt;
&lt;br /&gt;
==== Notes from before decommissioning ====&lt;br /&gt;
&lt;br /&gt;
* The lxc files are still present and should not be started up, or else the two copies of auth1 will collide.&lt;br /&gt;
* It currently cannot route the 10.0.0.0/8 block to a misconfiguration on the NetApp. This should be fixed at some point.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;glomag&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Glomag hosted [[#caffeine|caffeine]]. Decommissioned April 6, 2018.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Xeon X3450 @ 2.67 GHz&lt;br /&gt;
* 6 GB RAM&lt;br /&gt;
* vg0: 465 GB software RAID1 (contains root partition):&lt;br /&gt;
** 750 GB Seagate Barracuda SATA hard drive&lt;br /&gt;
** 500 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
* vg1: 596 GB software RAID1 (contains caffeine):&lt;br /&gt;
** 2 &amp;amp;times; 640 GB Western-Digital Caviar Blue SATA hard drive&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Before its decommissioning, glomag hosted [[#caffeine|caffeine]], [[#mail|mail]], and [[#munin|munin]] as [[Virtualization#Linux_Container|Linux containers]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;Lisp machine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
A Symbolics XL1200 Lisp machine. Donated to a new home when we couldn&#039;t get it working.&lt;br /&gt;
&lt;br /&gt;
http://www.globalnerdy.com/2008/12/03/symbolics-xl1200-lisp-machine-free-to-a-good-home/ for some history on this hardware.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
Currently inoperable due to (at least) a missing console cable.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;ginseng&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Ginseng used to be our fileserver, before aspartame and the netapp took over.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Pentium Dual Core E2180&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/s3000ah_tps_1_1.pdf Intel S3000AHV Motherboard]&lt;br /&gt;
* 4 &amp;amp;times; 640 GB Western-Digital Caviar Blue in [[wikipedia:Nested_RAID_levels#RAID_10_.28RAID_1.2B0.29|RAID 10]] behind a [http://www.3ware.com/products/serial_ata2-9650.asp 3ware 9650SE RAID card].&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;calum&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Calum used to be our main server and was named after Calum T Dalek.  Purchased new by the club in 1994. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* SPARCserver 10 (headless SPARCstation 10)&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;paza&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An iMac G3 that was used as a dumb terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 233Mhz PowerPC 740/750&lt;br /&gt;
* 96 MB RAM&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;romana&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Romana was a BeBox that has been in the CSC&#039;s possession since long before BeOS became defunct.&lt;br /&gt;
&lt;br /&gt;
Confirmed on March 19th, 2016 to be fully functional. An SSHv1 compatible client was installed from http://www.abstrakt.ch/be/ and a compatible firewalled daemon was started on Sucrose (living in /root, prefix is /root/ssh-romana). The insecure daemon is to be used a bastion host to jump to hosts only supporting &amp;gt;=SSHv2. The mail daemon on the BeBox has also been configured to send mail through mail.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 PowerPC based processors&lt;br /&gt;
* Stylish Blinken processor-load lights&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sodium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Sodium-citrate was an SGI O2 machine.&lt;br /&gt;
&lt;br /&gt;
In order to net boot you need to set /proc/sys/net/ipv4/ip_no_pmtu_disc to 1. When the O2 boots, hit F5 at the boot menu and type bootp():.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* SGI O2 MIPS processor&lt;br /&gt;
* 423 MB (?) RAM&lt;br /&gt;
* 2 &amp;amp;times; 2 GB hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;acesulfame-potassium&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
An old office terminal.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium 4 2.67GHz&lt;br /&gt;
* 1GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ABIT_VT7.pdf ABIT VT7] Motherboard&lt;br /&gt;
* ATI Radeon 7000&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;skynet&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
skynet was a Sun E6500 machine donated by Sanjay Singh. It was never fully set up.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 15 full CPU/memory boards&lt;br /&gt;
** 2x UltraSPARC II 464MHz / 8MB Cache Processors&lt;br /&gt;
** ??? RAM?&lt;br /&gt;
* 1 I/O board (type=???)&lt;br /&gt;
** ???x disks?&lt;br /&gt;
* 1 CD-ROM drive&lt;br /&gt;
&lt;br /&gt;
*[http://mirror.csclub.uwaterloo.ca/csclub/sun_e6500/ent6k.srvr/ e6500 documentation (hosted on mirror, currently dead link)]&lt;br /&gt;
*[http://docs.oracle.com/cd/E19095-01/ent6k.srvr/ e6500 documentation (backup link)]&lt;br /&gt;
*[http://www.e6500.com/ e6500]&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;freebsd&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
FreeBSD was a virtual machine with FreeBSD installed.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Newer software&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;rainbowdragoneyes&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Rainbowdragoneyes was our Lemote Fuloong MIPS machine. This machine is aliased to rde.csclub.uwaterloo.ca.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 800MHz MIPS Loongson 2f CPU&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;denardo&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Due to some instability, general uselessness, and the acquisition of a more powerful SPARC machine from MFCF, denardo was decommissioned in February 2015.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Sun Fire V210&lt;br /&gt;
* TI UltraSparc IIIi (Jalapeño)&lt;br /&gt;
* 2 GB RAM&lt;br /&gt;
* 160 GB RAID array&lt;br /&gt;
* ALOM on denardo-alom.csclub can be used to power machine on/off&lt;br /&gt;
==&#039;&#039;artificial-flavours&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Artificial-flavours was our secondary (backup services) server. It used to be an office terminal. It was decommissioned in February 2015 and transferred to the ownership of Women in Computer Science (WiCS).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Celeron 3.2GHz&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/Biostar_P4M80-M4.pdf Biostar P4M80-M4] Motherboard&lt;br /&gt;
* Western-Digital 80 GB ATA hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-citrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Potassium-citrate is a dual-processor Alpha machine. It is on extended loan from pbarfuss.&lt;br /&gt;
&lt;br /&gt;
It is temporarily decommissioned pending the reinstallation of a supported operating system (such as OpenBSD).&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Alphaserver CS20 (2 833MHz EV68al CPUs)&lt;br /&gt;
* 512MB RAM&lt;br /&gt;
* 36 GB Seagate SCSI hard drive&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;potassium-nitrate&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
This was a Sun Fire E2900 from a decommissioned MFCF compute cluster. It had a SPARC architecture and ran OpenBSD, unlike many of our other systems which are x86/x86-64 and Linux/Debian. After multiple unsuccessful attempts to boot a modern Linux kernel and possible hardware instability, it was determined to be non-cost-effective and non-effort-effective to put more work into running this machine. The system was reclaimed by MFCF where someone from CS had better luck running a suitable operating system (probably Solaris).&lt;br /&gt;
&lt;br /&gt;
The name is from saltpetre, because sparks.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 24 CPUs&lt;br /&gt;
* 90GB main memory&lt;br /&gt;
* 400GB scratch disk local storage in /scratch-potassium-nitrate&lt;br /&gt;
&lt;br /&gt;
There is a [[Sun 2900 Strategy Guide|setup guide]] available for this machine.&lt;br /&gt;
&lt;br /&gt;
See also [[Sun 2900]].&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;taurine&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note: On August 21, 2019, just before 2:30PM EDT, we were informed that taurine caught fire&#039;&#039;&#039;. As a result, taurine has been decommissioned as of Fall 2019.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 2 AMD Opteron 2218 CPUs&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 136 GB LVM volume group&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
* Virtual machines&lt;br /&gt;
* BitlBee IRC instant messaging gateway (localhost only)&lt;br /&gt;
*[[ident]] server to maintain high connection cap to freenode&lt;br /&gt;
* Runs ssh on ports 21,22,53,80,81,443,8000,8080 for user&#039;s convenience.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;dextrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
dextrose was a [[#taurine|taurine]] clone donated by CSCF and was decommissioned in Fall 2019 after being replaced with a more powerful server.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;sucrose&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
sucrose was a [[#taurine|taurine]] clone donated by CSCF. It was decommissioned in Fall 2019 following multiple hardware failures.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;goto80&#039;&#039;==&lt;br /&gt;
&#039;&#039;&#039;Note (2022-10-25): This seems to have gone missing or otherwise left our hands.&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
This was small ARM machine we picked up in order to have similar hardware to the Real Time Operating Systems (CS 452) course. It has a [[TS-7800_JTAG|JTAG]] interface. Located was the office on the top shelf above strombola.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* 500 MHz Feroceon (ARM926ej-s compatible) processor&lt;br /&gt;
* ARMv5TEJ architecture&lt;br /&gt;
&lt;br /&gt;
Use -march=armv5te -mtune=arm926ej-s options to GCC.&lt;br /&gt;
&lt;br /&gt;
For information on the TS-7800&#039;s hardware see here:&lt;br /&gt;
http://www.embeddedarm.com/products/board-detail.php?product=ts-7800&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;nullsleep&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
nullsleep is an [http://csclub.uwaterloo.ca/misc/manuals/ASRock_ION_330.pdf ASRock ION 330] machine given to us by CSCF and funded by MEF.&lt;br /&gt;
&lt;br /&gt;
It&#039;s decommissioned on 2023-03-20 due to repeated unexpected shutdown. Replaced by [[#powernap|powernap]]. &lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel® Dual Core Atom™ 330&lt;br /&gt;
* 2GB RAM&lt;br /&gt;
* NVIDIA® ION™ graphics&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* DVD Burner&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Nullsleep has the office speakers (a pair of nice studio monitors) currently connected to it.&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
Nullsleep runs MPD for playing music. Control of MPD is available only to users in the &amp;quot;audio&amp;quot; group.&lt;br /&gt;
Music is located in /music on the office terminal&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;bit-shifter&#039;&#039; ==&lt;br /&gt;
bit-shifter was an office terminal, decommissioned April 2023 due to extended age. It was upgraded to the same specs as Strombola at an unknown point in time.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core 2 Quad CPU Q8300&lt;br /&gt;
* 4GB RAM&lt;br /&gt;
* Nvidia GeForce GT 440&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Jacob Parker&#039;s Firewire Card&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;strombola&#039;&#039;==&lt;br /&gt;
Strombola was an office terminal named after Gordon Strombola. It was retired in April 2023.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
* Intel Pentium G4600 2 cores @ 3.6Ghz&lt;br /&gt;
* 8 GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
==== Speakers ====&lt;br /&gt;
Strombola used to have integrated 5.1 channel sound before we got new speakers and moved audio stuff to nullsleep.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;gwem&#039;&#039; ==&lt;br /&gt;
gwem was an office terminal that was created because AMD donated a graphics card. It entered CSC service in February 2012.&lt;br /&gt;
&lt;br /&gt;
=== Specs ===&lt;br /&gt;
&lt;br /&gt;
* AMD FX-8150 3.6GHz 8-Core CPU&lt;br /&gt;
* 16 GB RAM&lt;br /&gt;
* AMD Radeon 6870 HD 1GB GPU&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/ga-990fxa-ud7_e.pdf Gigabyte GA-990FXA-UD7] Motherboard&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;maltodextrin&#039;&#039; ==&lt;br /&gt;
(*specs are outdated at least as of 2023-05-27*)&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/motherboard_manual_ga-ep45-ud3l.pdf Gigabyte GA-EP45-UD3L] Motherboard&lt;br /&gt;
Maltodextrin was an office terminal. It was upgraded in Spring 2014 after an unidentified failure. Not operational (no video output) as of July 2022.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i3-4130 @ 3.40 GHz&lt;br /&gt;
* 8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
*[http://csclub.uwaterloo.ca/misc/manuals/E8425_H81I_PLUS.pdf ASUS H81-PLUS] Motherboard&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[http://csclub.uwaterloo.ca/office/webcam Office webcam]&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;natural-flavours&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
Natural-flavours is an office terminal; it used to be our mirror.&lt;br /&gt;
&lt;br /&gt;
In Fall 2016, it received a major upgrade thanks the MathSoc&#039;s Capital Improvement Fund.&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* Intel Core i7-6700k&lt;br /&gt;
* 2x8GB RAM&lt;br /&gt;
* 1x 64GB SanDisk SDSSDP064G SSD&lt;br /&gt;
* Cup Holder (DVD drive has power, but not connected to mother board)&lt;br /&gt;
= UPS =&lt;br /&gt;
&lt;br /&gt;
All of the machines in the MC 3015 machine room are connected to one of our UPSs.&lt;br /&gt;
&lt;br /&gt;
All of our UPSs can be monitored via CSCF:&lt;br /&gt;
&lt;br /&gt;
* MC3015-UPS-B2&lt;br /&gt;
* mc-3015-e7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced July 2014) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-e7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-f7-ups-1.cs.uwaterloo.ca (rbc55, batteries replaced Feb 2017) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-f7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2010) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-g7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-g7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-1.cs.uwaterloo.ca (su5000t, batteries replaced 2004) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-1&amp;amp;var-Interval=30m)&lt;br /&gt;
* mc-3015-h7-ups-2.cs.uwaterloo.ca (unknown) (https://metrics.cscf.uwaterloo.ca/grafana/dashboard/db/ups-statistics?orgId=1&amp;amp;var-UPS=mc-3015-h7-ups-2&amp;amp;var-Interval=30m)&lt;br /&gt;
&lt;br /&gt;
We will receive email alerts for any issues with the UPS. Their status can be monitored via [[SNMP]].&lt;br /&gt;
&lt;br /&gt;
TODO: Fix labels &amp;amp; verify info is correct &amp;amp; figure out why we can&#039;t talk to cacti.&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5356</id>
		<title>Ntp</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5356"/>
		<updated>2025-05-18T06:15:28Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC Servers require timing services, for a lot things. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yerba-mate use ntpd. Anyways our ntpd config looks like &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# Use the University of Waterloo&#039;s NTP server&lt;br /&gt;
server 129.97.129.9 iburst&lt;br /&gt;
&lt;br /&gt;
# Fallback to the Debian NTP pool servers&lt;br /&gt;
server 0.debian.pool.ntp.org iburst&lt;br /&gt;
server 1.debian.pool.ntp.org iburst&lt;br /&gt;
server 2.debian.pool.ntp.org iburst&lt;br /&gt;
server 3.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
# Access control restrictions (optional but recommended)&lt;br /&gt;
restrict default nomodify nopeer noquery limited&lt;br /&gt;
restrict 127.0.0.1&lt;br /&gt;
restrict ::1&lt;br /&gt;
&lt;br /&gt;
# Drift file&lt;br /&gt;
driftfile /var/lib/ntp/ntp.drift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Neotame, corn-syrup, high-fructose-corn-syrup, carbonated-water, sorbitol, manitol uses timesyncd, Our timesyncd config looks like&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[Time]&lt;br /&gt;
# ntp.uwaterloo.ca&lt;br /&gt;
NTP=129.97.129.9&lt;br /&gt;
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5355</id>
		<title>Ntp</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5355"/>
		<updated>2025-05-18T05:53:44Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Updated configs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC Servers require timing services, for a lot things. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
yerba-mate use ntpd. Anyways our ntpd config looks like &amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
# Use the University of Waterloo&#039;s NTP server&lt;br /&gt;
server 129.97.129.9 iburst&lt;br /&gt;
&lt;br /&gt;
# Fallback to the Debian NTP pool servers&lt;br /&gt;
server 0.debian.pool.ntp.org iburst&lt;br /&gt;
server 1.debian.pool.ntp.org iburst&lt;br /&gt;
server 2.debian.pool.ntp.org iburst&lt;br /&gt;
server 3.debian.pool.ntp.org iburst&lt;br /&gt;
&lt;br /&gt;
# Access control restrictions (optional but recommended)&lt;br /&gt;
restrict default nomodify nopeer noquery limited&lt;br /&gt;
restrict 127.0.0.1&lt;br /&gt;
restrict ::1&lt;br /&gt;
&lt;br /&gt;
# Drift file&lt;br /&gt;
driftfile /var/lib/ntp/ntp.drift&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Neotame uses timesyncd, Our timesyncd config looks like&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
[Time]&lt;br /&gt;
# ntp.uwaterloo.ca&lt;br /&gt;
NTP=129.97.129.9&lt;br /&gt;
FallbackNTP=0.debian.pool.ntp.org 1.debian.pool.ntp.org 2.debian.pool.ntp.org 3.debian.pool.ntp.org&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Keys_and_Fobs&amp;diff=5349</id>
		<title>Keys and Fobs</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Keys_and_Fobs&amp;diff=5349"/>
		<updated>2025-04-13T22:41:59Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== History of Keys/Fobs ==&lt;br /&gt;
* Before Spring 2017, the CSC office can only be accessed using keys provided by the School of Computer Science ([[SCS Guide|SCS]]). As the lock is never changed, people keep their keys forever and the exec team has no way of tracking those keys or getting the keys back. &lt;br /&gt;
* In order to improve the key situation, the execs from Winter and Spring 2017 have made an agreement with Math Dean&#039;s office to install the fob system on the door. And power of managing the fobs is transferred from SCS to the Math Dean&#039;s office&lt;br /&gt;
&lt;br /&gt;
== Memorandum of Understanding with Math Dean&#039;s office ==&lt;br /&gt;
In Fall 2018, a Memorandum of Understanding (MOU) has been signed between the Computer Science Club, the Mathematics Society, and The Math Dean&#039;s Office. A hard copy of the MOU can be found on the top cabinet, and a PDF copy should be available in the exec email archive.&lt;br /&gt;
&lt;br /&gt;
There should be about keys in total, 10 fobs, 2 physical keys. MathSoc president also has a key that opens CSC. &lt;br /&gt;
&lt;br /&gt;
== Recommended Distribution of Keys and Fobs ==&lt;br /&gt;
* As agreed with Math Dean&#039;s Office, The President and System Administrator would each get a key.&lt;br /&gt;
* For the sake of continuity of service, the System Administrator should also receive a fob that extends into the upcoming term&lt;br /&gt;
* All other Officers should each receive a fob (if president decides so), total of six not including the one for System Administrator.&lt;br /&gt;
* If the exec team found the number of fobs are inadequate to keep the office open for extended time, they can request up to 5 more fobs from Math Dean&#039;s office and distribute them to office staffs.&lt;br /&gt;
&lt;br /&gt;
[[Category:Office]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5347</id>
		<title>Meeting:Orgcom Updates/President 2025 Winter</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5347"/>
		<updated>2025-04-03T02:08:56Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many people call the President Siracha, his name is actually Sourojeet&lt;br /&gt;
&lt;br /&gt;
Notable things done this term&lt;br /&gt;
&lt;br /&gt;
* 40k from SLEF for servers, deadline is late December&lt;br /&gt;
* 18k from MEF for servers, deadline is late December&lt;br /&gt;
* Will attempt to get 96 core, 1tb for general use&lt;br /&gt;
* 128 core, 1.5tb for cloud&lt;br /&gt;
* In continued talks with mathSoc to sort out to figure out what to do with the servers long term in terms of maintenance, and usage&lt;br /&gt;
* Figuring out what will happen to our servers when M4 comes along&lt;br /&gt;
** So far our servers will be moved&lt;br /&gt;
** we will get rack space&lt;br /&gt;
** and we should be using the room&#039;s UPS&lt;br /&gt;
** No idea how the UPS stuff will work tho ;-;&lt;br /&gt;
* Began doing Exec take overs of insta again, and internal socials, and bought some books (riscv, and rust book)&lt;br /&gt;
* &#039;Borrowed&#039; a couch from EngSoc as a prank, and their Emblem&lt;br /&gt;
* Celcius (energy drink) are like, super popular LOL&lt;br /&gt;
* Started CSC Flash again&lt;br /&gt;
* As of S24, we use Vault Warden for our passwords&lt;br /&gt;
* Mirror upgrade parts have been bought, hopfully I remember to put in when they&#039;re installed&lt;br /&gt;
* Started reaching out to Alumni to do Talks about their work and stuff&lt;br /&gt;
* I have heard via the great vine... that the wall may fall..........&lt;br /&gt;
* Started to prepare to buy another round of plushies&lt;br /&gt;
* New Thunderbolt 3/USB-4 docks (we only relised after buying that some of our laptops cant charge/use display at the same time LOL)&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Past_Executive&amp;diff=5344</id>
		<title>Past Executive</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Past_Executive&amp;diff=5344"/>
		<updated>2025-03-26T04:57:42Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* Fall */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Data sources for this exec list have been: CSC records, MathNEWS.&lt;br /&gt;
According to the warrior wiki dudes, there was an article about the CSC being founded in the chevron: &#039;&#039;This week on campus&#039;&#039;. The Chevron. January 5 1968. Page 16. -- somebody should get a copy of that.&lt;br /&gt;
&lt;br /&gt;
= Definitions =&lt;br /&gt;
 #define PR President&lt;br /&gt;
 #define VP Vice-president&lt;br /&gt;
 #define TR Treasurer&lt;br /&gt;
 #define SE Secretary&lt;br /&gt;
 #define AV Assistant Vice-president&lt;br /&gt;
 #define SA Sysadmin&lt;br /&gt;
 #define OF Office Manager&lt;br /&gt;
 #define LI Librarian&lt;br /&gt;
 #define WW Webmaster&lt;br /&gt;
&lt;br /&gt;
 #ifdef __HISTORICAL__&lt;br /&gt;
 #define FL Flasher&lt;br /&gt;
 #define DE Deity&lt;br /&gt;
 #define SE-TR Secretary-Treasurer (Position was split)&lt;br /&gt;
 #define FR Fridge Regent (IMAPd)&lt;br /&gt;
 #endif /* __HISTORICAL__ */&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div style=&amp;quot;float:right;margin-left: 1em;&amp;quot;&amp;gt;__TOC__&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Founding 1967=&lt;br /&gt;
&lt;br /&gt;
 Sponsor - J. Peter Sprung&lt;br /&gt;
 PR: K. Rugger&lt;br /&gt;
 VP: R. Jaques&lt;br /&gt;
 SE-TR: G. Sutherland&lt;br /&gt;
&lt;br /&gt;
 Founding Members:&lt;br /&gt;
 B. Kindree&lt;br /&gt;
 R. Melen&lt;br /&gt;
 V. Neglia&lt;br /&gt;
 R. Charney&lt;br /&gt;
 R. Truman&lt;br /&gt;
 Glenn Berry&lt;br /&gt;
 D. Meek&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Bill Kindred&lt;br /&gt;
 VP: Rick Jacques&lt;br /&gt;
 SE-TR: Graham Sutherland&lt;br /&gt;
&lt;br /&gt;
Committee members: R. Stallwerthy, C. de Vries&lt;br /&gt;
&lt;br /&gt;
=1968=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Bill Kindred&lt;br /&gt;
 VP: Rick Jacques&lt;br /&gt;
 SE-TR: Graham Sutherland&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 SE-TR: Glenn Berry&lt;br /&gt;
&lt;br /&gt;
=1969=&lt;br /&gt;
&lt;br /&gt;
Unknown, only one letter found in the folder &#039;ACM History&#039; addressed to Glenn Berry, which makes it likely that he was SE-TR once again. May be indicated in membership lists. The club appears to have died this academic year.&lt;br /&gt;
&lt;br /&gt;
=1970=&lt;br /&gt;
&lt;br /&gt;
===A note on ACM affiliation===&lt;br /&gt;
&lt;br /&gt;
The first attempt at joining the ACM was started with an informal inquiry Dec 5, 1967. This lead to a series of constitution edits (working towards affiliation) in Winter 1968. There was a break for the spring (no correspondence found, I presume we were waiting on a reply). In the fall records indicate that our constitution and chartering was rejected, further correspondence was sent in Fall 1968 by Glenn Berry. A new inquiry, seemingly unaware of the first was sent Dec 7, 1970&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Rick Beach&lt;br /&gt;
 VP: Lee Santon&lt;br /&gt;
 TR: Randy Melen&lt;br /&gt;
 SE: Vic Neglia&lt;br /&gt;
&lt;br /&gt;
=1971=&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 VP: James H. &amp;quot;Jim&amp;quot; Finch and James W. Welch both signed letters as VP.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 VP: James W. Welch&lt;br /&gt;
&lt;br /&gt;
=1972=&lt;br /&gt;
&lt;br /&gt;
It appears we visited Western and Western visited us this year (there is some reference to a similar occurrence the year previous). Documents from 1973 indicate a termly exec structure, this probably goes back to 1972.&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Mike Campbell&lt;br /&gt;
 VP: Edgar Hew&lt;br /&gt;
 SE-TR: Doug Lacy&lt;br /&gt;
&lt;br /&gt;
There is also stuff from James W. Welch without a position.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Ian McIntosh&lt;br /&gt;
&lt;br /&gt;
=1973=&lt;br /&gt;
&lt;br /&gt;
 Faculty Sponsor: Morven Gentleman&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 SE: Douglas E. Lacy&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Parry&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Parry&lt;br /&gt;
 VP: Ray Walden&lt;br /&gt;
 TR: Slavko Stemberger&lt;br /&gt;
 SE: Mario Festival&lt;br /&gt;
&lt;br /&gt;
=1974=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Russell Crook&lt;br /&gt;
&lt;br /&gt;
=1975-1977=&lt;br /&gt;
&lt;br /&gt;
 Faculty Sponsor: Morven Gentleman??&lt;br /&gt;
&lt;br /&gt;
 Peter Raynham reports (first hand account): president for at least 2 or 3 terms in this period.&lt;br /&gt;
 Sylvia Eng: 1975/6 as some position.&lt;br /&gt;
 Dave Buckingham: a VP at some point&lt;br /&gt;
 Allison Nolan: 1977 time&lt;br /&gt;
 Peter Stevens: 1977&lt;br /&gt;
 Russel Crook???&lt;br /&gt;
&lt;br /&gt;
Dennis Ritchie came. So did Jeffrey D. Ullman.&lt;br /&gt;
&lt;br /&gt;
=1976=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 &amp;lt;code&amp;gt;Progcom: Peter Stevens&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=1977=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
===Spring=== &lt;br /&gt;
&lt;br /&gt;
 PR: Peter Stevens&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Andrzej Jan Taramina&lt;br /&gt;
 Progcom: Allison Nowlan&lt;br /&gt;
&lt;br /&gt;
=1978=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Peter Stevens&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 TR: K.G. Dykes&lt;br /&gt;
 SE: Kandry Mutheardy&lt;br /&gt;
&lt;br /&gt;
Brian Kernighan gave a talk this term. So did Ken Thompson.&lt;br /&gt;
&lt;br /&gt;
=1979=&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Robert Biddle&lt;br /&gt;
=1987=&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Boritz&lt;br /&gt;
 VP: Ted Timar&lt;br /&gt;
 TR: Gayla Boritz&lt;br /&gt;
 SE: Edwin Hoogerbeets&lt;br /&gt;
&lt;br /&gt;
=1988=&lt;br /&gt;
&lt;br /&gt;
Tim Timar - cc&#039;d on memos/mentioned on mathsoc minutes in 1987/88.&lt;br /&gt;
The Sysadmin and Office Manager positions seem to have been created somewhere in here. The &#039;Record Management Profile&#039; that Rob*n Stewart did as an assignment in 1991-1992 for some class at UBC&lt;br /&gt;
indicates the existence of both positions. We acquired an HP-9000 in the summer of 1988 and as this was our first &amp;quot;real&amp;quot; computer (previously we had an IBM PC and terminal), the sysadmin position was created, starting with the Fall 1988 term.&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Jim Boritz&lt;br /&gt;
(Source: https://csclub.uwaterloo.ca/misc/procedure.pdf)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 SA: Wade Richards&lt;br /&gt;
&lt;br /&gt;
=1989=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
https://mirror.csclub.uwaterloo.ca/csclub/bill-gates-1989-big.jpg&lt;br /&gt;
&lt;br /&gt;
Left to right:  Jim Boritz (bottom), Wade Richards (top), Ted Timar, ???, Keven Smith, Bill Gates (not exec), Angela Chambers, Ross Ridge (top), Sean Goggin (bottom), ??? &lt;br /&gt;
&lt;br /&gt;
 PR: Barry W. Smith&lt;br /&gt;
 VP: Angela Chambers&lt;br /&gt;
 SE: Sean Goggin&lt;br /&gt;
 SA: Wade Richards / Ross Ridge&lt;br /&gt;
&lt;br /&gt;
(President Kevin Smith confirmed: https://csclub.uwaterloo.ca/misc/procedure.pdf)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Jim Thornton&lt;br /&gt;
 VP: Gayla Boritz&lt;br /&gt;
 TR: David Fenger&lt;br /&gt;
 SE: Kivi Shapiro&lt;br /&gt;
 SA: Reid Pinchback&lt;br /&gt;
&lt;br /&gt;
Assistance to sysadmin: Jim Boritz.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: James Boritz&lt;br /&gt;
 VP: Edmond Bourne&lt;br /&gt;
 SA: Ross Ridge&lt;br /&gt;
&lt;br /&gt;
=1990=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 TR: Jim Thornton&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 TR: Karen Smith&lt;br /&gt;
 SE: Rob*n Stewart&lt;br /&gt;
Robyn/Robin signed her emails as Rob*n and requested to be listed as such on this page.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Wade Richards&lt;br /&gt;
 TR: Carolyn Duke&lt;br /&gt;
 SE: Rob*n Stewart - attended mathsoc meeting on our behalf.&lt;br /&gt;
 Kivi Shapiro - attended mathsoc meeting on our behalf.&lt;br /&gt;
              - Censured by mathsoc for his actions during the election.&lt;br /&gt;
 Shannon Mann - attended mathsoc meeting on our behalf.&lt;br /&gt;
&lt;br /&gt;
=1991=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 VP: Edmond Bourne&lt;br /&gt;
 TR: Carolyn Duke&lt;br /&gt;
 SE: Rob*n Stewart&lt;br /&gt;
 Shannon Mann - attended mathsoc meeting on our behalf.&lt;br /&gt;
&lt;br /&gt;
John McCarthy came this term.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 Jason Knell - attended mathsoc meeting on our and PMC&#039;s behalf.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 TR: Mike Van Lingen&lt;br /&gt;
 Wiktor Wiewiorowski - attended mathsoc meeting on our behalf this term.&lt;br /&gt;
=1992=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Norm Ross&lt;br /&gt;
 SE: Brent Williams&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Dale Wick&lt;br /&gt;
 TR: Stephen A. Mills&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 TR: Mark Plumb&lt;br /&gt;
=1993=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 VP: Tim Prime&lt;br /&gt;
 OF: Dave Ebbo&lt;br /&gt;
 LI: Norm Ross&lt;br /&gt;
&lt;br /&gt;
Other exec for this term: Ellen Hsiang, Sam Coulombe, Peter Gray&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Mark Tompsett &lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Ian Goldberg&lt;br /&gt;
&lt;br /&gt;
=1994=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Ian Goldberg&lt;br /&gt;
 TR: Mark Tompsett&lt;br /&gt;
 SE: Tom Rathbourne&lt;br /&gt;
 LI: Michael Van Biesbrouck&lt;br /&gt;
Norm Ross assisted with finances.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Dale Wick (?)&lt;br /&gt;
 TR: Steve Mills&lt;br /&gt;
 SA: Ian Goldberg (?)&lt;br /&gt;
Norm Ross assisted with finances.&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Ross Ridge&lt;br /&gt;
 VP: Tom Rathbourne (?)&lt;br /&gt;
 TR: Rob Leitman&lt;br /&gt;
 SA: Zygo Blaxell&lt;br /&gt;
 LI: Michael Van Biesbrouck&lt;br /&gt;
=1995=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 TR: Sharlene Schmeichel&lt;br /&gt;
 Amy Brown and Rob Ridge purchased books.&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 TR: Steve Mills&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Amy Brown (arbrown) &lt;br /&gt;
 VP: Christina Norman (cbnorman)&lt;br /&gt;
 TR: Steven Mills (samills)&lt;br /&gt;
 SE: Allyson Graham (akgraham)&lt;br /&gt;
 SA: Gavin Peters&lt;br /&gt;
=1996=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Nikita Borisov (nborisov)&lt;br /&gt;
 VP: Joseph Deu Ngoc (dtdeungo) &lt;br /&gt;
 TR: Stephen Mills (samills)&lt;br /&gt;
 SE: Sharlene Schmeichel (saschmei)&lt;br /&gt;
 SA: Dave Brown (dagbrown)&lt;br /&gt;
 OF: Somsack Tsai (stsai)&lt;br /&gt;
 LI: Devin Carless (dccarles)&lt;br /&gt;
 FL: Allyson Graham (akgraham)&lt;br /&gt;
 DE: Ian Goldberg (iagoldbe)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Blake Winton (bwinton)&lt;br /&gt;
 VP: Nick Harvey (njaharve)&lt;br /&gt;
 TR: Nikita Borisov (nborisov)&lt;br /&gt;
 SE: Viet-Trung Luu (vluu)&lt;br /&gt;
 SA: Drew Hamilton (awhamilt)&lt;br /&gt;
 OF: Jillian Arnott (jarnott)&lt;br /&gt;
 LI: Ross Ridge (rridge)&lt;br /&gt;
 FL: Devin Carless (dccarles)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Shannon Mann (sjbmann) &lt;br /&gt;
 VP: Joe &amp;quot;Frosh&amp;quot; Deu Ngoc (jtdeungo)    resigned (heavy workload)&lt;br /&gt;
 TR: Michal Van Biesbrouck (mlvanbie) &lt;br /&gt;
 SE: Nikita Borisov (nborisov) &lt;br /&gt;
 SA: Chris Rovers &lt;br /&gt;
 OF: Dax Hutcheon (ddhutche)            became VP upon jtduengo&#039;s resignation&lt;br /&gt;
 LI: Aliz Csenki (acsenki) &lt;br /&gt;
 FL: Aaron Chmielowiec (archmiel) &lt;br /&gt;
 DE: Skuld (no uwuserid yet...)&lt;br /&gt;
=1997=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Dima Brodsky &lt;br /&gt;
 VP: Nikita Borisov (nborisov)&lt;br /&gt;
 TR: Stephen Mills (samills)&lt;br /&gt;
 SE: Evan Jones (ejones)&lt;br /&gt;
 SA: Alex Brodsky&lt;br /&gt;
 OF: Chris Doherty&lt;br /&gt;
 LI: Matt Corks &lt;br /&gt;
 FL: Paul Prescod&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Chris Rovers (cdrovers) &lt;br /&gt;
 VP: Michael van Biesbrouck (mlvanbie) &lt;br /&gt;
 TR: Somsack Tsai (stsai) &lt;br /&gt;
 SE: Matt Corks (mvcorks)&lt;br /&gt;
 SA: Lennart Sorensen (lsorense) &lt;br /&gt;
 LI: Chmielowiec (archmiel) &lt;br /&gt;
 OF: Devin Carless (dccarles) &lt;br /&gt;
 FL: Aaron Chmielowiec (archmiel)&lt;br /&gt;
= 1998 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Suresh Naidu  &lt;br /&gt;
 VP: Viet-Trung Luu &lt;br /&gt;
 TR: Tim Coleman &lt;br /&gt;
 SE: Dax Hutcheon &lt;br /&gt;
 LI: Dax Hutcheon &lt;br /&gt;
 Flasher: Dax Hutcheon &lt;br /&gt;
 WW: Dax Hutcheon &lt;br /&gt;
 SA: Robin Powell&lt;br /&gt;
 OF: Aaron Chmielowiec&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 Position	Name	You might call them...&lt;br /&gt;
 President	roconnor	Russell O&#039;Connor&lt;br /&gt;
 Vice-president	trwcolem	Tim Coleman&lt;br /&gt;
 Treasurer	knzarysk	Karl Zaryski&lt;br /&gt;
 Secretary	(bwinton)	(Blake Winton)&lt;br /&gt;
 Sysadmin	wbiggs	Billy Biggs&lt;br /&gt;
 Librarian	snaidu	Suresh Naidu&lt;br /&gt;
 Flasher	pechrysl	Paul Chrysler&lt;br /&gt;
 Office Manager	dccarles	Devin Carless&lt;br /&gt;
 WWWW	trwcolem	Tim Coleman&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 President	Joe Deu Ngoc	jtdeungo&lt;br /&gt;
 Vice-President	Wai Ling Yee	wlyee&lt;br /&gt;
 Treasurer	Fjord	j2lynn&lt;br /&gt;
 Secretary	Matt Corks	mvcorks&lt;br /&gt;
 Sysadmin	Andrew Hamilton	awhamilt&lt;br /&gt;
&lt;br /&gt;
 World Wide Web Wench	Dax Hutcheon	ddhutche&lt;br /&gt;
 Office Manager	Richard Bell	rlbell&lt;br /&gt;
 Librarian	Damian Gryski	dgryski&lt;br /&gt;
 Flasher	Paul Chrysler	pechrysl&lt;br /&gt;
 Official Deity	Ian Goldberg	iagoldbe&lt;br /&gt;
 Official Chairbeing	Calum T. Dalek	calum&lt;br /&gt;
=1999=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
=2000=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Will Chartrand (wgchartr)&lt;br /&gt;
 VP: Gavin Duggan (geduggan)&lt;br /&gt;
 SA: Lennart Sorensen (lsorense)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
 SA: bioster&lt;br /&gt;
=2001=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: geduggan&lt;br /&gt;
&lt;br /&gt;
=2002=&lt;br /&gt;
&lt;br /&gt;
https://web.archive.org/web/20130715012002/http://www.mathnews.uwaterloo.ca/Issues/mn8902/cscflash.php&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Billy Biggs&lt;br /&gt;
 VP: Stefanus Du Toit&lt;br /&gt;
 TR: Melissa Basinger&lt;br /&gt;
 SE: James Perry&lt;br /&gt;
 SA: Barry Genova&lt;br /&gt;
 LI: Ryan Golbeck&lt;br /&gt;
 WW: Jonathan Beverley&lt;br /&gt;
 Office Manager: Sayan Li&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Alex Pop&lt;br /&gt;
 VP: Melissa Basinger&lt;br /&gt;
 TR: Siyan Li&lt;br /&gt;
 SE: James A Morrison&lt;br /&gt;
 SA: Jonathan Beverley&lt;br /&gt;
 WW: Stefanus Du Toit&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: James A. Morrison&lt;br /&gt;
 VP: Stefanus Du Toit&lt;br /&gt;
 TR: James Perry&lt;br /&gt;
 SE: Michael Biggs&lt;br /&gt;
 SA: Ryan Golbeck&lt;br /&gt;
 LI: Mark Sherry, Cassandra Schopf&lt;br /&gt;
 WW: Stefanus Du Toit&lt;br /&gt;
=2003=&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Kannan Vijayan (kvijayan)&lt;br /&gt;
 VP: Meg Darragh (m2darrag)&lt;br /&gt;
 TR: James Perry (jeperry)&lt;br /&gt;
 SE: Wojciech Kosnik (wkosnik)&lt;br /&gt;
 SA: Stefanus Du Toit (sjdutoit)&lt;br /&gt;
 LI: Simon Law (sfllaw)&lt;br /&gt;
 WM: Julie Lavoie (jlavoie)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Stefanus Du Toit (sjdutoit)&lt;br /&gt;
 VP: Meg Darragh (m2darrag)&lt;br /&gt;
 TR: Tor Myklebust (tmyklebu)&lt;br /&gt;
 SE: James Perry (jeperry)&lt;br /&gt;
 SA: Simon Law (sfllaw)&lt;br /&gt;
=2004=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Simon Law (sfllaw)&lt;br /&gt;
 VP: fspacek&lt;br /&gt;
 TR: ljain&lt;br /&gt;
 SE: Julie Lavoie (jlavoie)&lt;br /&gt;
 SA: Tor Myklebust(tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: dnmorton ?&lt;br /&gt;
 VP: Tim Loach (tloach)&lt;br /&gt;
 TR: Michael Biggs (mbiggs)&lt;br /&gt;
 SE: Lesley Northam (lanortha)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: jeperry&lt;br /&gt;
 VP: mtsay&lt;br /&gt;
 TR: Mark Sherry (mdsherry)&lt;br /&gt;
 SE: Tor Myklebust (tmyklebu)&lt;br /&gt;
 SA: jlavoie&lt;br /&gt;
=2005=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: mtsay&lt;br /&gt;
 VP: Lesley Northam (lanortha)&lt;br /&gt;
 TR: Holden Karau (hkarau)&lt;br /&gt;
 SE: domorton&lt;br /&gt;
 SA: Tor Myklebust (tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
&lt;br /&gt;
 PR: Mark Sherry (mdsherry)&lt;br /&gt;
 VP: Martin Kess (mdkess)&lt;br /&gt;
 TR: Ali Piccioni (apiccion)&lt;br /&gt;
 SE: Michael Biggs (mbiggs)&lt;br /&gt;
 SA: Tor Myklebust (tmyklebu)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Tim Loach (tloach)&lt;br /&gt;
 VP: Lesley Northam (lanortha)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: The Professor&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
=2006=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
&lt;br /&gt;
 PR: Tor Myklebust (tmyklebu)&lt;br /&gt;
 VP: Michael Druker (mdruker)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: Mark Sherry (mdsherry)&lt;br /&gt;
 SA: William O&#039;Connor (woconnor)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: David Bartley (dtbartle)&lt;br /&gt;
 VP: David Belanger (dbelange)&lt;br /&gt;
 TR: David Tenty (daltenty)&lt;br /&gt;
 SE: Chris Evensen (cevensen)&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
&lt;br /&gt;
 PR: Martin Kess (mdkess)&lt;br /&gt;
 VP: Mark Sherry (mdsherry)&lt;br /&gt;
 TR: Sylvan L. Mably (slmably)&lt;br /&gt;
 SE: Caelyn McAulay (cmcaulay) &lt;br /&gt;
 SA: William O&#039;Connor (woconnor)&lt;br /&gt;
=2007=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: David Bartley (dtbartle)&lt;br /&gt;
 VP: David Belanger (dbelange)&lt;br /&gt;
 TR: Caelyn McAulay (cmcaulay)&lt;br /&gt;
 SE: David Tenty (daltenty)&lt;br /&gt;
 SA: Holden Karau (hkarau)&lt;br /&gt;
 WW: jnopporn&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Gaelan D&#039;costa (gdcosta)&lt;br /&gt;
 VP: Kyle Larose (kmlarose)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Erik Louie (elouie)&lt;br /&gt;
 SA: Michael Spang (mspang)&lt;br /&gt;
 LI: David Tenty (daltenty)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: Holden Karau (hkarau)&lt;br /&gt;
 VP: Alex McCausland (amccausl)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Sean Cumming (sgcummin)&lt;br /&gt;
 SA: David Tenty (daltenty)&lt;br /&gt;
 WW: dtbartle / jnopporn&lt;br /&gt;
=2008=&lt;br /&gt;
&lt;br /&gt;
===Winter ===&lt;br /&gt;
 PR: Sean Cumming (sgcummin)&lt;br /&gt;
 VP: Matt Lawrence (m3lawren)&lt;br /&gt;
 TR: Mateusz Tarkowski (mtarkows)&lt;br /&gt;
 SE: Edgar Bering (ebering)&lt;br /&gt;
 SA: Jordan Saunders (jmsaunde)&lt;br /&gt;
&lt;br /&gt;
===Summer ===&lt;br /&gt;
 PR: Brennan Taylor (b4taylor)&lt;br /&gt;
 VP: Qifan Xi (qxi)&lt;br /&gt;
 TR: Matt Lawrence (m3lawren)&lt;br /&gt;
 SE: Nick Guenther (nguenthe)&lt;br /&gt;
&lt;br /&gt;
===Fall ===&lt;br /&gt;
 PR: Matthew Lawrence (m3lawren)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Michael Gregson (mgregson)&lt;br /&gt;
 SE: James Simpson (j2simpso) resigned for medical reasons, replaced by Dominik &#039;Domo&#039; Chłobowski&lt;br /&gt;
 SA: Kyle Spaans (kspaans)&lt;br /&gt;
=2009=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Michael Gregson (mgregson)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Brennan Taylor (b4taylor)&lt;br /&gt;
 SE: James Simpson (j2simpso)  resigned for business reasons, replaced by Rebecca Putinski (rjputins) &lt;br /&gt;
 SA: Jacob Parker (j3parker) &lt;br /&gt;
 OF: XinChi Yang / Sapphyre Gervais (x23yang / sagervai) (both)&lt;br /&gt;
&lt;br /&gt;
===Spring ===&lt;br /&gt;
 PR: Michael Spang (mspang)&lt;br /&gt;
 VP: Jacob Parker (j3parker)&lt;br /&gt;
 TR: Sapphyre Gervais (sagervai)&lt;br /&gt;
 SE: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SA: Anthony Brennan (a2brenna)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Jacob Parker (j3parker)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Michael Spang (mspang)&lt;br /&gt;
 SE: Brennan Taylor (b4taylor)&lt;br /&gt;
 SA: Michael Ellis (m2ellis)&lt;br /&gt;
 OF: Rebecca Putinski (rjputins)&lt;br /&gt;
=2010=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Kyle Spaans (kspaans)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Sapphyre Gervais (sagervai)&lt;br /&gt;
 SE: Ajnu Jacob (ajacob)&lt;br /&gt;
 SA: Matthew Thiffault (mthiffau)&lt;br /&gt;
 OF: Jacob Parker (j3parker)&lt;br /&gt;
Keyed office staffers: j3camero, jdonland, m2ellis, mimcpher, nsasherr&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Jeff Cameron (j3camero)&lt;br /&gt;
 VP: Brennan Taylor (b4taylor)&lt;br /&gt;
 TR: Vardhan Mudunuru (vmudunur)&lt;br /&gt;
 SE: Matthew Lawrence (m3lawren)&lt;br /&gt;
 SA: Michael Ellis (m2ellis)&lt;br /&gt;
 OF: Edgar Bering (ebering)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Jacob Parker (j3parker)&lt;br /&gt;
 VP: Edgar Bering (ebering)&lt;br /&gt;
 TR: Rebecca Putinski (rjputins)&lt;br /&gt;
 SE: Kyle Spaans (kspaans)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Amir Sayed Khader (askhader)&lt;br /&gt;
=2011=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Edgar Bering (ebering)&lt;br /&gt;
 VP: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Elana &amp;quot;Alana&amp;quot; Hashman (ehashman)&lt;br /&gt;
 SA: Peter &amp;quot;Bofh&amp;quot; Barfuss (pbarfuss)&lt;br /&gt;
 OF: Marc Burns (Marc Burns)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Matthew Thiffault (mthiffau)&lt;br /&gt;
 VP: Matthew McPherrin (mimcpher)&lt;br /&gt;
 TR: Kyle Spaans (kspaans)&lt;br /&gt;
 SE: Kwame Andrew Ansong (kansong)&lt;br /&gt;
 SA: Jeremy Brandon Roman (jbroman)&lt;br /&gt;
 OF: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Katharine Hyatt (kshyatt)&lt;br /&gt;
 TR: Jacob Parker (j3parker)&lt;br /&gt;
 SE: Elana Hashman (ehashman)&lt;br /&gt;
 SA: Anthony &amp;quot;hatguy/hotgay&amp;quot; Brennan (a2brenna)&lt;br /&gt;
 OF: Kyle Spaans (kspaans)&lt;br /&gt;
 LI: Edgar Bering (ebering)&lt;br /&gt;
=2012=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Elana Hashman (ehashman)&lt;br /&gt;
 TR: Jacob Parker (j3parker)&lt;br /&gt;
 SE: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Luqman Aden (laden)&lt;br /&gt;
 LI: Jennifer &amp;quot;Emily&amp;quot; Wong (jy2wong)&lt;br /&gt;
&lt;br /&gt;
===Summer===&lt;br /&gt;
 PR: Anthony Brennan (a2brenna)&lt;br /&gt;
 VP: Luqman Aden (laden)&lt;br /&gt;
 TR: Matthew McPherrin (mimcpher)&lt;br /&gt;
 SE: Elana Hashman (ehashman)&lt;br /&gt;
 SA: Sarah Harvey (sharvey)&lt;br /&gt;
 OF: Marc Burns (m4burns)&lt;br /&gt;
 LI: John Ladan (jladan)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Marc Burns (m4burns)&lt;br /&gt;
 VP: Salem Talha (satalha)&lt;br /&gt;
 TR: Jennifer Wong (jy2wong)&lt;br /&gt;
 SE: Elana Hashman (ehashman), resigned&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Luqman Aden (laden)&lt;br /&gt;
 LI: John Ladan (jladan)&lt;br /&gt;
=2013=&lt;br /&gt;
&lt;br /&gt;
===Winter===&lt;br /&gt;
 PR: Anthony Brennan (a2brenna)&lt;br /&gt;
 VP: Marc Burns (m4burns)&lt;br /&gt;
 TR: John Mumford (jsmumfor)&lt;br /&gt;
 SE: Matt Olechnowicz (mgolechn)&lt;br /&gt;
 SA: Sarah Harvey (sharvey)&lt;br /&gt;
 OF: Bryan Coutts (b2coutts)&lt;br /&gt;
 LI: Matthew McPherrin (mimcpher)&lt;br /&gt;
&lt;br /&gt;
===Spring===&lt;br /&gt;
 PR: Shane Robert Creighton-Young (srcreigh)&lt;br /&gt;
 VP: Visishta Vijayanand (vvijayan)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Youn Jin Kim (yj7kim)&lt;br /&gt;
 SA: Anthony Brennan (a2brenna)&lt;br /&gt;
 OF: Marc Burns (m4burns)&lt;br /&gt;
 FR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
&lt;br /&gt;
===Fall===&lt;br /&gt;
 PR: Elana Hashman (ehashman)&lt;br /&gt;
 VP: Marc Burns (m4burns)&lt;br /&gt;
 TR: Dominik Chlobowski (dchlobow)&lt;br /&gt;
 SE: Edward Lee (e45lee)&lt;br /&gt;
 SA: Jeremy Roman (jbroman)&lt;br /&gt;
 OF: Alexis Hunt (aechunt)&lt;br /&gt;
= 2014 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Bryan Coutts (b2coutts)&lt;br /&gt;
 VP: Visishta Vijayanand (vvijayan)&lt;br /&gt;
 TR: Marc Burns (m4burns)&lt;br /&gt;
 SE: Mark Farrell (m4farrel)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Nicholas Black (nablack)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Youn Jin Kim (yj7kim)&lt;br /&gt;
 VP: Luke Franceschini (l3france)&lt;br /&gt;
 TR: Joseph Chouinard (jchouina)&lt;br /&gt;
 SE: Ifaz Kabir (ikabir)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Matthew Thiffault (mthiffau)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Youn Jin Kim (yj7kim)&lt;br /&gt;
 VP: Theodor Belaire (tbelaire)&lt;br /&gt;
 TR: Jonathan Jerel Bailey (jj2baile)&lt;br /&gt;
 SE: Shane Robert Creighton-Young (srcreigh)&lt;br /&gt;
 SA: Alexis Hunt (aechunt)&lt;br /&gt;
 OF: Mark Farrell (m4farrel)&lt;br /&gt;
 LI: Gianni Leonardo Gambetti (glgambet)&lt;br /&gt;
&lt;br /&gt;
= 2015 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Gianni Leonardo Gambetti (glgambet)&lt;br /&gt;
 VP: Luke Franceschini (l3france)&lt;br /&gt;
 TR: Edward Lee (e45lee)&lt;br /&gt;
 SE: Patrick James Melanson (pj2melan)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Shikhar Singh (s285sing)&lt;br /&gt;
 LI: Aishwarya Gupta (a72gupta)&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Luqman Aden (laden)&lt;br /&gt;
 VP: Patrick Melanson (pj2melan)&lt;br /&gt;
 TR: Jonathan Bailey (jj2baile)&lt;br /&gt;
 SE: Keri Warr (kpwarr)&lt;br /&gt;
 SA: Nik Black (nablack)&lt;br /&gt;
 OF: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
 LI: Yomna Nasser (ynasser)&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Simone Hu (ss2hu)&lt;br /&gt;
 VP: Theo Belaire (tbelaire)&lt;br /&gt;
 TR: Jordan Taylore Upiter (jtupiter)&lt;br /&gt;
 SE: Daniel Marin (dmarin)&lt;br /&gt;
 SA: Jordan Xavier Pryde (jxpryde)&lt;br /&gt;
 OF: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
= 2016 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Patrick Melanson (pj2melan)&lt;br /&gt;
 VP: Patrick Melanson (pj2melan)&lt;br /&gt;
 Acting VP, progcom chair: Theo Belaire (tbelaire)&lt;br /&gt;
 TR: Luqman Aden (laden)&lt;br /&gt;
 SE: Naomi Koo (m3koo)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Reila Zheng (wy2zheng)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Luqman Aden (laden)&lt;br /&gt;
 VP: Melissa Angelica Mary Tedesco (matedesc)&lt;br /&gt;
 TR: Jonathan Jerel Bailey (jj2baile)&lt;br /&gt;
 SE: Aditya Shivam Kothari (askothar)&lt;br /&gt;
 SA: Jordan Xavier Pryde (jxpryde)&lt;br /&gt;
 OF: Zachary Seguin (ztseguin)&lt;br /&gt;
 LI: Charlie Wang (s455wang)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
 PR: Charlie Wang (s455wang)&lt;br /&gt;
 VP: Bryan Coutts (b2coutts)&lt;br /&gt;
 TR: Laura Song (lhsong)&lt;br /&gt;
 SE: Uday Barar (ubarar)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Jamie Sinn (j2sinn)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Ilia Chtcherbakov (ischtche)&lt;br /&gt;
&lt;br /&gt;
= 2017 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Wilson Cheang (wyschean)&lt;br /&gt;
 VP: Tristan Hume (tghume)&lt;br /&gt;
 TR: Jordan Pryde (jxpryde)&lt;br /&gt;
 SE: Amir Fata (aafata)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Felix Bauckholt (fbaukcho)&lt;br /&gt;
 LI: Connor Murphy (cfmurph)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Felix Bauckholt (fbauckho)&lt;br /&gt;
 VP: Zichuan Wei (z34wei)&lt;br /&gt;
 TR: Laura Song (lhsong)&lt;br /&gt;
 SE: Bo Mo (bzmo)&lt;br /&gt;
 SA: Zachary Seguin (ztseguin)&lt;br /&gt;
 OF: Uday Barar (ubarar)&lt;br /&gt;
 LI: Patrick Melanson (pj2melan)&lt;br /&gt;
 FR: Uday Barar (ubarar)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Melissa Tedesco (matedesc)&lt;br /&gt;
 VP: Victor Brestoiu (vabresto)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 SE: Marc Mailhot (mnmailho)&lt;br /&gt;
 SA: Jordan Pryde (jxpryde)&lt;br /&gt;
 OF: Zoë Laing (zlaing)&lt;br /&gt;
 LI: Felix Bauckholt (fbauckho)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
= 2018 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Patrick Melanson (pj2melan)&lt;br /&gt;
 VP: Charlie Wang (s455wang)&lt;br /&gt;
 TR: Ashley Dewiputri Pranajaya (adpranaj)&lt;br /&gt;
 SE: Arshia Mufti (a2mufti)&lt;br /&gt;
 SA: Jordan Pryde (jxpryde)&lt;br /&gt;
 OF: Zoë Laing (zlaing)&lt;br /&gt;
 LI: Zichuan Wei (z34wei)&lt;br /&gt;
 FR: Uday Barar (ubarar)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Melissa Tedesco (matedesc)&lt;br /&gt;
 VP: Dhruv Jauhar (djauhar)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 AV: Marc Mailhot (mnmailho)&lt;br /&gt;
 SA: Jennifer Zhou (c7zou)&lt;br /&gt;
 OF: Aditya Thakral (a3thakra)&lt;br /&gt;
 LI: Archer Zhang (z577zhan)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Zichuan Wei (z34wei)&lt;br /&gt;
 VP: Uday Barar (ubarar)&lt;br /&gt;
 TR: Alex Tomala (actomala)&lt;br /&gt;
 AV: Neil Parikh (n3parikh)&lt;br /&gt;
 SA: Jennifer Zhou (c7zou)&lt;br /&gt;
 OF: Alexander Zvorygin (azvorygi)&lt;br /&gt;
 LI: Neil Parikh (n3parikh)&lt;br /&gt;
 FR:&lt;br /&gt;
&lt;br /&gt;
= 2019 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Marc Mailhot (mnmailho)&lt;br /&gt;
 VP: Victor Brestoiu (vabresto)&lt;br /&gt;
 TR: Tristan Hume (tghume)&lt;br /&gt;
 AV: Aditya Thakral (a3thakra)&lt;br /&gt;
 SA: Charlie Wang (s455wang)&lt;br /&gt;
 OF: Archer Zhang (z577zhan)&lt;br /&gt;
 LI: Rishabh Minocha (rkminoch)&lt;br /&gt;
 FR: Marc Mailhot (mnmailho)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Uday Barar (ubarar)&lt;br /&gt;
 VP: Rajat Malhotra (r24malho)&lt;br /&gt;
 TR: Raghav Sethi (r5sethi)&lt;br /&gt;
 AV: Bo Mo (bzmo)&lt;br /&gt;
 SA: Charlie Wang (s455wang)&lt;br /&gt;
 OF: Hannah Wong (sm7wong)&lt;br /&gt;
 LI: Nolan Munce (nmmunce)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Dhruv Jauhar (djauhar)&lt;br /&gt;
 VP: Aditya Thakral (a3thakra)&lt;br /&gt;
 TR: Rishabh Minocha (rkminoch)&lt;br /&gt;
 AV: Tammy Khalaf (tekhalaf)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
 OF: Zihan Zhang (z577zhan)&lt;br /&gt;
 LI: Raghav Sethi (r5sethi)&lt;br /&gt;
&lt;br /&gt;
= 2020 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
The office was closed midway through this term due to the COVID-19 pandemic.&lt;br /&gt;
&lt;br /&gt;
The pandemic that threw the University and rest of the world into disarray drove all CSC activity virtual. Though everyone thought the pandemic would quickly be over, the Alpha, then Delta, then Omicron variants resulted in the majority of classes being held online until February 2022.&lt;br /&gt;
&lt;br /&gt;
As a result, the office would stay closed for a full 5 terms, and only reopen in W2022.&lt;br /&gt;
&lt;br /&gt;
 PR: Richard Shi (r27shi)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 TR: Alex Tomala (actomala)&lt;br /&gt;
 AV: Neil Parikh (n3parikh)&lt;br /&gt;
 SA: Amin Bandali (abandali)&lt;br /&gt;
 OF: Alexander Zvorygin (azvorygi)&lt;br /&gt;
 LI: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 FR: Richard Shi (r27shi)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Neil Parikh (n3parikh)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova)&lt;br /&gt;
 SA: Amin Bandali (abandali)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Mokai Xu (m92xu)&lt;br /&gt;
 VP: Anastassia Gaikovaia (agaikova) (stepped down as of 2020-11-30)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Edwin Yang (e37yang)&lt;br /&gt;
 SA: Murphy Berzish (mtrberzi)&lt;br /&gt;
&lt;br /&gt;
= 2021 =&lt;br /&gt;
In 2021, CSC rapidly expanded the Program Committee, introducing subcommittees including Design, Events, Marketing, Photography, Reps, Discord mods, and Discord bot developers. The website committee also expanded, and the terminal committee was officially repurposed to serve a syscom-in-training role (since the office remained closed and the terminals powered off).&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Kallen Tu (k4tu)&lt;br /&gt;
 VP: Gordon Le (g2le)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Nakul Vijhani (nvijhani)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Kallen Tu (k4tu)&lt;br /&gt;
 VP: Gordon Le (g2le)&lt;br /&gt;
 TR: Neil Parikh (n3parikh)&lt;br /&gt;
 AV: Ravindu Angammana (rbangamm)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Dora Su (d43su)&lt;br /&gt;
 VP: Jason Sang (jzsang)&lt;br /&gt;
 TR: Yanni Wang (y3859wan)&lt;br /&gt;
 AV: Anjing Li (a348li)&lt;br /&gt;
 SA: Max Erenberg (merenber)&lt;br /&gt;
 Advising: Neil Parikh (n3parikh)&lt;br /&gt;
&lt;br /&gt;
= 2022 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Juthika Hoque (j3hoque)&lt;br /&gt;
 VP: Eric Huang (e48huang)&lt;br /&gt;
 TR: Eden Chan (e223chan)&lt;br /&gt;
 AV: Dina Orucevic (dmorucev)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Amy Wang (a258wang)&lt;br /&gt;
 OF: Neil Parikh (n3parikh)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Eden Chan (e223chan)&lt;br /&gt;
 VP: Bonnie Peng (b38peng)&lt;br /&gt;
 TR: Sat Arora (s97arora)&lt;br /&gt;
 AV: Haley Song (h79song)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Amy Wang (a258wang)&lt;br /&gt;
 OF: Sat Arora (s97arora)&lt;br /&gt;
 LI: Santiago Montemayor (smontema) (appointed 2022-06-02)&lt;br /&gt;
 FR: Sat Arora (s97arora) (appointed 2022-06-23)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Amy Wang (a258wang)&lt;br /&gt;
 VP: Anna Wang (aj2wang)&lt;br /&gt;
 TR: Simon Zeng (s33zeng)&lt;br /&gt;
 AV: Mabel Kwok (m23kwok)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Mark Chen (m375chen) (appointed 2022-09-21)&lt;br /&gt;
 LI: John Oss (joss) (appointed 2022-10-06)&lt;br /&gt;
 FR: Mark Chen (m375chen) and Simon Zeng (s33zeng) (appointed 2022-09-21)&lt;br /&gt;
&lt;br /&gt;
= 2023 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
&lt;br /&gt;
 PR: Sat Arora (s97arora)&lt;br /&gt;
 VP: Ivy Lei (ihlei)&lt;br /&gt;
 TR: Laura Nguyen (l69nguye)&lt;br /&gt;
 AV: Adele Chen (a332chen)&lt;br /&gt;
 SA: Leo Shen (y266shen)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Young Wang (y3285wan)&lt;br /&gt;
 LI: John Oss (joss)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
&lt;br /&gt;
 PR: Sat Arora (s97arora)&lt;br /&gt;
 VP: Joshua Kim (j649kim)&lt;br /&gt;
 TR: Amy Wang (a258wang)&lt;br /&gt;
 AV: Andrea Ma (a49ma)&lt;br /&gt;
 SA: Raymond Li (r389li)&lt;br /&gt;
 WW: Shahan Nedadahandeh (snedadah)&lt;br /&gt;
 OF: Sean Zhang (q434zhan)&lt;br /&gt;
&lt;br /&gt;
=== Fall ===&lt;br /&gt;
&lt;br /&gt;
 PR: Laura Nguyen (l69nguye)&lt;br /&gt;
 VP: Amol Venkataraman (avenkata)&lt;br /&gt;
 TR: Bryan Chen (b28chen)&lt;br /&gt;
 AV: Amy Wang (a258wang)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Darren Lo (dlslo), Richard Shuai (r2shuai)&lt;br /&gt;
 OF: Ivy Lei (ihlei), Kevin Cui (k8cui)&lt;br /&gt;
&lt;br /&gt;
= 2024 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
 PR: Ivy Lei (ihlei)&lt;br /&gt;
 VP: Gordon Lin (g3lin)&lt;br /&gt;
 TR: Andrea Ma (a49ma)&lt;br /&gt;
 AV: Saurin Patel (sa23pate)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Darren Lo (dlslo), Richard Shuai (r2shuai)&lt;br /&gt;
 OF: Tiger Ding (t27ding)&lt;br /&gt;
&lt;br /&gt;
=== Spring ===&lt;br /&gt;
 PR: Gordon Lin (g3lin)&lt;br /&gt;
 VP: Justin Wang (yw2wang)&lt;br /&gt;
 TR: Andrea Ma (a49ma)&lt;br /&gt;
 AV: Sean Zhang (q434zhan)&lt;br /&gt;
 SA: Nathan Chung (n4chung)&lt;br /&gt;
 WW: Tejas Srikanth (tcsrikan)&lt;br /&gt;
 OF: Bryan Wang (b397wang)&lt;br /&gt;
=== Fall ===&lt;br /&gt;
Nathan Chung resigned half way through the term, and an election was held to elect Ohm Patel as the new sysadmin.&lt;br /&gt;
&lt;br /&gt;
Ivy Fan-Chiang also resigned half way through the term, and Tiger Ding was appointed as the new Office Manager.&lt;br /&gt;
 PR: Iris Liao (a23liao)&lt;br /&gt;
 VP: Siimar Leen Kaur (s32kaur)&lt;br /&gt;
 TR: Grace Feng (g27feng)&lt;br /&gt;
 AV: Ray Cao (r44cao)&lt;br /&gt;
 SA: Nathan Chung (n4chung) resigned, replaced by Ohm Patel (o32patel)&lt;br /&gt;
 WW: Tejas Srikanth (tcsrikan)&lt;br /&gt;
 OF: Ivy Fan-Chiang (qkfanchi) resigned, replaced by Tiger Ding (t27ding)&lt;br /&gt;
&lt;br /&gt;
= 2025 =&lt;br /&gt;
&lt;br /&gt;
=== Winter ===&lt;br /&gt;
Alexandru-Andrei Stan resigned early in the term as the Office Manager, and Dundee Zhang was appointed as the new Office Manager.&lt;br /&gt;
&lt;br /&gt;
Sourojeet Adhikari resigned late into the term as Club President. Enming Yang became Acting President. &lt;br /&gt;
 PR: Sourojeet Adhikari (s23adhik) resigned 2025-03-23, replaced by Enming Yang (emyang) (Acting as of 2025-03-24)&lt;br /&gt;
 VP: Enming Yang (emyang)&lt;br /&gt;
 TR: Samir Sharma (s576shar)&lt;br /&gt;
 AV: Alexandru-Andrei Stan (a2stan)&lt;br /&gt;
 SA: Ohm Patel (o32patel)&lt;br /&gt;
 WW: Ryan Zhu (ry3zhu)&lt;br /&gt;
 OF: Dundee Zhang (dh2zhang) (appointed 2025-01-30)&lt;br /&gt;
 FL: Dundee Zhang (dh2zhang)&lt;br /&gt;
 FR: Alexandru-Andrei Stan (a2stan) (appointed 2025-01-30)&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5342</id>
		<title>Meeting:Orgcom Updates/President 2025 Winter</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5342"/>
		<updated>2025-03-22T19:54:48Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many people call the President Siracha, his name is actually Sourojeet&lt;br /&gt;
&lt;br /&gt;
Notable things done this term&lt;br /&gt;
&lt;br /&gt;
* 40k from SLEF for servers, deadline is late December&lt;br /&gt;
* 18k from MEF for servers, deadline is late December&lt;br /&gt;
* In continued talks with mathSoc to sort out to figure out what to do with the servers long term in terms of maintenance, and usage&lt;br /&gt;
* Figuring out what will happen to our servers when M4 comes along&lt;br /&gt;
** So far our servers will be moved&lt;br /&gt;
** we will get rack space&lt;br /&gt;
** and we should be using the room&#039;s UPS&lt;br /&gt;
** No idea how the UPS stuff will work tho ;-;&lt;br /&gt;
* Began doing Exec take overs of insta again, and internal socials, and bought some books (riscv, and rust book)&lt;br /&gt;
* &#039;Borrowed&#039; a couch from EngSoc as a prank, and their Emblem&lt;br /&gt;
* Celcius (energy drink) are like, super popular LOL&lt;br /&gt;
* Started CSC Flash again&lt;br /&gt;
* As of S24, we use Vault Warden for our passwords&lt;br /&gt;
* Mirror upgrade parts have been bought, hopfully I remember to put in when they&#039;re installed&lt;br /&gt;
* Started reaching out to Alumni to do Talks about their work and stuff&lt;br /&gt;
* I have heard via the great vine... that the wall may fall..........&lt;br /&gt;
* Started to prepare to buy another round of plushies&lt;br /&gt;
* New Thunderbolt 3/USB-4 docks (we only relised after buying that some of our laptops cant charge/use display at the same time LOL)&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5333</id>
		<title>Meeting:Orgcom Updates/President 2025 Winter</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5333"/>
		<updated>2025-02-27T03:58:27Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many people call the President Siracha, his name is actually Sourojeet&lt;br /&gt;
&lt;br /&gt;
Notable things done this term&lt;br /&gt;
&lt;br /&gt;
* 40k from SLEF for servers, deadline is late December&lt;br /&gt;
* In continued talks with mathSoc to sort out to figure out what to do with the servers long term in terms of maintenance, and usage&lt;br /&gt;
* Figuring out what will happen to our servers when M4 comes along&lt;br /&gt;
** So far our servers will be moved&lt;br /&gt;
** we will get rack space&lt;br /&gt;
** and we should be using the room&#039;s UPS&lt;br /&gt;
** No idea how the UPS stuff will work tho ;-;&lt;br /&gt;
* Began doing Exec take overs of insta again, and internal socials, and bought some books (riscv, and rust book)&lt;br /&gt;
* &#039;Borrowed&#039; a couch from EngSoc as a prank, and their Emblem&lt;br /&gt;
* Celcius (energy drink) are like, super popular LOL&lt;br /&gt;
* Started CSC Flash again&lt;br /&gt;
* As of S24, we use Vault Warden for our passwords&lt;br /&gt;
* Mirror upgrade parts have been bought, hopfully I remember to put in when they&#039;re installed&lt;br /&gt;
* Started reaching out to Alumni to do Talks about their work and stuff&lt;br /&gt;
* I have heard via the great vine... that the wall may fall..........&lt;br /&gt;
* Started to prepare to buy another round of plushies&lt;br /&gt;
* New Thunderbolt 3/USB-4 docks (we only relised after buying that some of our laptops cant charge/use display at the same time LOL)&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5332</id>
		<title>Meeting:Orgcom Updates/President 2025 Winter</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/President_2025_Winter&amp;diff=5332"/>
		<updated>2025-02-24T02:28:11Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: added the new info lol&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Many people call the President Siracha, his name is actually Sourojeet&lt;br /&gt;
&lt;br /&gt;
Notable things done this term&lt;br /&gt;
&lt;br /&gt;
* 40k from SLEF for servers, deadline is late December&lt;br /&gt;
* In continued talks with mathSoc to sort out to figure out what to do with the servers long term in terms of maintenance, and usage&lt;br /&gt;
* Figuring out what will happen to our servers when M4 comes along&lt;br /&gt;
** So far our servers will be moved&lt;br /&gt;
** we will get rack space&lt;br /&gt;
** and we should be using the room&#039;s UPS&lt;br /&gt;
** No idea how the UPS stuff will work tho ;-;&lt;br /&gt;
* Began doing Exec take overs of insta again, and internal socials, and bought some books (riscv, and rust book)&lt;br /&gt;
* &#039;Borrowed&#039; a couch from EngSoc as a prank, and their Emblem&lt;br /&gt;
* Celcius (energy drink) are like, super popular LOL&lt;br /&gt;
* Started CSC Flash again&lt;br /&gt;
* As of S24, we use Vault Warden for our passwords&lt;br /&gt;
* Mirror upgrade parts have been bought, hopfully I remember to put in when they&#039;re installed&lt;br /&gt;
* Started reaching out to Alumni to do Talks about their work and stuff&lt;br /&gt;
* I have heard via the great vine... that the wall may fall..........&lt;br /&gt;
* Started to prepare to buy another round of plushies&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/&amp;diff=5331</id>
		<title>Meeting:Orgcom Updates/</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/&amp;diff=5331"/>
		<updated>2025-02-24T02:14:38Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updates in OrgCom&lt;br /&gt;
&lt;br /&gt;
https://wiki.csclub.uwaterloo.ca/Orgcom_Updates/Assistant_Vice-President_2023_Fall&lt;br /&gt;
&lt;br /&gt;
[[Orgcom Updates/President 2025 Winter]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/&amp;diff=5330</id>
		<title>Meeting:Orgcom Updates/</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Orgcom_Updates/&amp;diff=5330"/>
		<updated>2025-02-24T02:13:47Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;Updates in OrgCom  https://wiki.csclub.uwaterloo.ca/Orgcom_Updates/Assistant_Vice-President_2023_Fall&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Updates in OrgCom&lt;br /&gt;
&lt;br /&gt;
https://wiki.csclub.uwaterloo.ca/Orgcom_Updates/Assistant_Vice-President_2023_Fall&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Acronyms&amp;diff=5316</id>
		<title>Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Acronyms&amp;diff=5316"/>
		<updated>2025-01-14T01:28:43Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Over the F22, W23, S23, W24, and S24 terms, many members within the office speculated what CSC stands for. Here are their postulations (in alphabetical order):&lt;br /&gt;
&lt;br /&gt;
* Caffeinated Students Club&lt;br /&gt;
* Calculator Slaves Club&lt;br /&gt;
* Calcium-deficient Students Club&lt;br /&gt;
* Camera-Shy Club&lt;br /&gt;
* Canadian Sussy Club&lt;br /&gt;
* Can&#039;t Sleep Club&lt;br /&gt;
* Can&#039;t Stop CSC&lt;br /&gt;
* Can&#039;t Succeed Club&lt;br /&gt;
* Card Skills Club&lt;br /&gt;
* Cascading Style Club&lt;br /&gt;
* Celeste Strawberry Collection&lt;br /&gt;
* Celeste Speedrunning Club&lt;br /&gt;
* Celeste Streaming Club&lt;br /&gt;
* Chair Sleeping Club&lt;br /&gt;
* Charge Smartphone Club&lt;br /&gt;
* Chess Studies Club&lt;br /&gt;
* Chopin Studies Club&lt;br /&gt;
* City Skylines Club&lt;br /&gt;
* Clown Syndicate Club&lt;br /&gt;
* Coffee Supply Club&lt;br /&gt;
* Collecting Strawberries Club&lt;br /&gt;
* Come Seethe and Cope&lt;br /&gt;
* Comic Sans Club&lt;br /&gt;
* Committee Sacking Club&lt;br /&gt;
* Communal Shoe Club&lt;br /&gt;
* Communal Shower Club&lt;br /&gt;
* Complimentary Slackness Condition&lt;br /&gt;
* Compulsory Sadness Condition&lt;br /&gt;
* Compulsory Sleep Club&lt;br /&gt;
* Computer Stop-working Club&lt;br /&gt;
* Confidential Secrets Club&lt;br /&gt;
* Connection Sucks Club&lt;br /&gt;
* Constant Sacrificing Club&lt;br /&gt;
* Cooking Spaghetti Club&lt;br /&gt;
* Cool Shit Club&lt;br /&gt;
* Cool Students Club&lt;br /&gt;
* Copyright Safeguarding Club&lt;br /&gt;
* Cosecant&lt;br /&gt;
* Co-op Suckers Club&lt;br /&gt;
* Crazy Superglue Club&lt;br /&gt;
* Creature Saving Club&lt;br /&gt;
* Crying Students Club&lt;br /&gt;
* CSC Scribbling Club&lt;br /&gt;
* CSC Sussy Committee&lt;br /&gt;
* CSC Systems Committee&lt;br /&gt;
* Cutting Sticker Club&lt;br /&gt;
* Culinary Students Club&lt;br /&gt;
* Capital &amp;amp; Securities Club&lt;br /&gt;
* CSC Safety Committee&lt;br /&gt;
* Committees Sleeping Club &lt;br /&gt;
* Consistently Sleeping club &lt;br /&gt;
* Cartwheel Stumbling Club &lt;br /&gt;
* Camera Success Club &lt;br /&gt;
* in-Class Sleeping Club&lt;br /&gt;
* Cooked Servers Club&lt;br /&gt;
* Crumbling servers club&lt;br /&gt;
* Coup SciSoc Club&lt;br /&gt;
* Club of Siracha Commandeering&lt;br /&gt;
* Cycling Students Club&lt;br /&gt;
* Counter Strike club&lt;br /&gt;
* Cancerous Spreadsheets Club &lt;br /&gt;
* Camera Sawing Club&lt;br /&gt;
* Cannabinoid Sales Club&lt;br /&gt;
* Cat smuggling Club&lt;br /&gt;
* Collecting Sponsorships Club&lt;br /&gt;
* concerning security club&lt;br /&gt;
* Ctf Team Stealing Club&lt;br /&gt;
* Computer Shopping Club&lt;br /&gt;
* Consuming Steroids Club &lt;br /&gt;
* cuddly shark club&lt;br /&gt;
* Communist State Club&lt;br /&gt;
* Come Stab Club&lt;br /&gt;
* Can&#039;t Stream Club&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5315</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5315"/>
		<updated>2025-01-04T00:10:14Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* The PMC intervention */ fix date&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creation Date ==&lt;br /&gt;
&lt;br /&gt;
The Computer Science Club has been in existence since 1931.  The club was not officially part of the University of Waterloo, rather was a general interest club formed by a collection of interested individuals who read Kleene, Church, and Turing&#039;s work that formed the basis of Computer Science.  The club joined the University of Waterloo shortly after the founding of the University in 1957.  Much of the history prior to the creation of the University is unclear, as documents dating back this far have only recently been recovered.&lt;br /&gt;
&lt;br /&gt;
== The CSC Fire ==&lt;br /&gt;
&lt;br /&gt;
It is believed that many of the documents describing the original club were destroyed when the original office destroyed by a fire at the then Waterloo University (now Wilfred Laurier University).&lt;br /&gt;
&lt;br /&gt;
== The PMC intervention ==&lt;br /&gt;
&lt;br /&gt;
At some point between 2000-2010, CSC had devloved into a bunch of very stinky nerds just playing nethack all day on the computers. The Pure Math Club (who was 2 doors down) had become appaled with the state of the club, and thus; decided to try and fix the situation. This was by Rallying together at the CSC election, electing one of their own as president, and changing the office rules to include &#039;No Gaming&#039; in the office. &lt;br /&gt;
&lt;br /&gt;
And thus, the people playing only NetHack 24/7 had finally left. &lt;br /&gt;
&lt;br /&gt;
This rule was kept all the way till mid-way through till Winter 2022. &lt;br /&gt;
&lt;br /&gt;
== CSC on Probation ==&lt;br /&gt;
&lt;br /&gt;
Due to a lack of information about this event, we may be missing information about this event. &lt;br /&gt;
&lt;br /&gt;
According to Winter 2022 mathsoc meeting-minutes CSC was breaking a lot of policies, and doing sketchy things like;&lt;br /&gt;
&lt;br /&gt;
# Virtual gambling prizes was a red flag that could interfer with WUSA&#039;s non-profit status. They were going to get more clarification on this, but then idk.&lt;br /&gt;
# CSC had a paypal account, which was NOT allowed under mathsoc policy. We used a screenshot of a successful Paypal transfer as proof of payment. We refused to consider using shop.wusa.ca, because we were scared of photoshopping&lt;br /&gt;
# Thus the VPA motioned to (quoting from the meeting minutes);&lt;br /&gt;
## Whereas CSC has been using an unauthorized PayPal account; then Be it resolved that MathSoc Council directs CSC to transfer all money in their PayPal account to MathSoc; and  Be it further resolved that MathSoc Council directs CSC to give the Paypal account login details to   the VPF; and Be it further resolved that if CSC does not comply by 11:59 PM on February 28th, 2022, then they shall be placed under probation as outlined in MathSoc Policy 6 &amp;quot;Clubs Policy&amp;quot;.&lt;br /&gt;
# Then it was revealed that CSC has a lot of other infractions like at least 3 notices this term by the VPI, the only thing mentioned in the notes was; not following the mathsoc policies (not showing the logo)&lt;br /&gt;
&lt;br /&gt;
Putting CSC on probation was reasonable here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then on June 10th CSC was taken off of probation&lt;br /&gt;
&lt;br /&gt;
But MathSoc is uh... notorious for lack of continunity... So they forgot we were taken off of probation.&lt;br /&gt;
&lt;br /&gt;
October 10th our probation was extended to the end of W22. &lt;br /&gt;
&lt;br /&gt;
For reasons that shall never be known&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After consulting some alumni, and members of CSC who were around this entire fiasco. Allegedly CSC had an agreement with MathSoc that allowed us to use Paypal instead of WUSA. If you ever become treasurer, you&#039;ll know why this is favourable. &lt;br /&gt;
&lt;br /&gt;
But during a MathSoc transition, it was forgotten about.&lt;br /&gt;
[[Category:About]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5314</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5314"/>
		<updated>2025-01-03T23:41:15Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creation Date ==&lt;br /&gt;
&lt;br /&gt;
The Computer Science Club has been in existence since 1931.  The club was not officially part of the University of Waterloo, rather was a general interest club formed by a collection of interested individuals who read Kleene, Church, and Turing&#039;s work that formed the basis of Computer Science.  The club joined the University of Waterloo shortly after the founding of the University in 1957.  Much of the history prior to the creation of the University is unclear, as documents dating back this far have only recently been recovered.&lt;br /&gt;
&lt;br /&gt;
== The CSC Fire ==&lt;br /&gt;
&lt;br /&gt;
It is believed that many of the documents describing the original club were destroyed when the original office destroyed by a fire at the then Waterloo University (now Wilfred Laurier University).&lt;br /&gt;
&lt;br /&gt;
== The PMC intervention ==&lt;br /&gt;
&lt;br /&gt;
At some point between 2000-2010, CSC had devloved into a bunch of very stinky nerds just playing nethack all day on the computers. The Pure Math Club (who was 2 doors down) had become appaled with the state of the club, and thus; decided to try and fix the situation. This was by Rallying together at the CSC election, electing one of their own as president, and changing the office rules to include &#039;No Gaming&#039; in the office. &lt;br /&gt;
&lt;br /&gt;
And thus, the people playing only NetHack 24/7 had finally left. &lt;br /&gt;
&lt;br /&gt;
This rule was kept all the way till mid-way through Fall 2024, where the office rules were rewritten to reflect an increasingly complicated environment, that the office has become. &lt;br /&gt;
&lt;br /&gt;
== CSC on Probation ==&lt;br /&gt;
&lt;br /&gt;
Due to a lack of information about this event, we may be missing information about this event. &lt;br /&gt;
&lt;br /&gt;
According to Winter 2022 mathsoc meeting-minutes CSC was breaking a lot of policies, and doing sketchy things like;&lt;br /&gt;
&lt;br /&gt;
# Virtual gambling prizes was a red flag that could interfer with WUSA&#039;s non-profit status. They were going to get more clarification on this, but then idk.&lt;br /&gt;
# CSC had a paypal account, which was NOT allowed under mathsoc policy. We used a screenshot of a successful Paypal transfer as proof of payment. We refused to consider using shop.wusa.ca, because we were scared of photoshopping&lt;br /&gt;
# Thus the VPA motioned to (quoting from the meeting minutes);&lt;br /&gt;
## Whereas CSC has been using an unauthorized PayPal account; then Be it resolved that MathSoc Council directs CSC to transfer all money in their PayPal account to MathSoc; and  Be it further resolved that MathSoc Council directs CSC to give the Paypal account login details to   the VPF; and Be it further resolved that if CSC does not comply by 11:59 PM on February 28th, 2022, then they shall be placed under probation as outlined in MathSoc Policy 6 &amp;quot;Clubs Policy&amp;quot;.&lt;br /&gt;
# Then it was revealed that CSC has a lot of other infractions like at least 3 notices this term by the VPI, the only thing mentioned in the notes was; not following the mathsoc policies (not showing the logo)&lt;br /&gt;
&lt;br /&gt;
Putting CSC on probation was reasonable here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then on June 10th CSC was taken off of probation&lt;br /&gt;
&lt;br /&gt;
But MathSoc is uh... notorious for lack of continunity... So they forgot we were taken off of probation.&lt;br /&gt;
&lt;br /&gt;
October 10th our probation was extended to the end of W22. &lt;br /&gt;
&lt;br /&gt;
For reasons that shall never be known&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After consulting some alumni, and members of CSC who were around this entire fiasco. Allegedly CSC had an agreement with MathSoc that allowed us to use Paypal instead of WUSA. If you ever become treasurer, you&#039;ll know why this is favourable. &lt;br /&gt;
&lt;br /&gt;
But during a MathSoc transition, it was forgotten about.&lt;br /&gt;
[[Category:About]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5313</id>
		<title>History</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=History&amp;diff=5313"/>
		<updated>2025-01-03T23:31:02Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: /* CSC on Probation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Creation Date ==&lt;br /&gt;
&lt;br /&gt;
The Computer Science Club has been in existence since 1931.  The club was not officially part of the University of Waterloo, rather was a general interest club formed by a collection of interested individuals who read Kleene, Church, and Turing&#039;s work that formed the basis of Computer Science.  The club joined the University of Waterloo shortly after the founding of the University in 1957.  Much of the history prior to the creation of the University is unclear, as documents dating back this far have only recently been recovered.&lt;br /&gt;
&lt;br /&gt;
== The CSC Fire ==&lt;br /&gt;
&lt;br /&gt;
It is believed that many of the documents describing the original club were destroyed when the original office destroyed by a fire at the then Waterloo University (now Wilfred Laurier University).&lt;br /&gt;
&lt;br /&gt;
== CSC on Probation ==&lt;br /&gt;
&lt;br /&gt;
Due to a lack of information about this event, we may be missing information about this event. &lt;br /&gt;
&lt;br /&gt;
According to Winter 2022 mathsoc meeting-minutes CSC was breaking a lot of policies, and doing sketchy things like;&lt;br /&gt;
&lt;br /&gt;
# Virtual gambling prizes was a red flag that could interfer with WUSA&#039;s non-profit status. They were going to get more clarification on this, but then idk.&lt;br /&gt;
# CSC had a paypal account, which was NOT allowed under mathsoc policy. We used a screenshot of a successful Paypal transfer as proof of payment. We refused to consider using shop.wusa.ca, because we were scared of photoshopping&lt;br /&gt;
# Thus the VPA motioned to (quoting from the meeting minutes);&lt;br /&gt;
## Whereas CSC has been using an unauthorized PayPal account; then Be it resolved that MathSoc Council directs CSC to transfer all money in their PayPal account to MathSoc; and  Be it further resolved that MathSoc Council directs CSC to give the Paypal account login details to   the VPF; and Be it further resolved that if CSC does not comply by 11:59 PM on February 28th, 2022, then they shall be placed under probation as outlined in MathSoc Policy 6 &amp;quot;Clubs Policy&amp;quot;.&lt;br /&gt;
# Then it was revealed that CSC has a lot of other infractions like at least 3 notices this term by the VPI, the only thing mentioned in the notes was; not following the mathsoc policies (not showing the logo)&lt;br /&gt;
&lt;br /&gt;
Putting CSC on probation was reasonable here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then on June 10th CSC was taken off of probation&lt;br /&gt;
&lt;br /&gt;
But MathSoc is uh... notorious for lack of continunity... So they forgot we were taken off of probation.&lt;br /&gt;
&lt;br /&gt;
October 10th our probation was extended to the end of W22. &lt;br /&gt;
&lt;br /&gt;
For reasons that shall never be known&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After consulting some alumni, and members of CSC who were around this entire fiasco. Allegedly CSC had an agreement with MathSoc that allowed us to use Paypal instead of WUSA. If you ever become treasurer, you&#039;ll know why this is favourable. &lt;br /&gt;
&lt;br /&gt;
But during a MathSoc transition, it was forgotten about.&lt;br /&gt;
[[Category:About]]&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=LDAP&amp;diff=5309</id>
		<title>LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=LDAP&amp;diff=5309"/>
		<updated>2024-12-18T07:45:04Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;We use [http://www.openldap.org/ OpenLDAP] for directory services. Our primary LDAP server is [[Machine_List#auth1|auth1]] and our secondary LDAP server is [[Machine_List#auth2|auth2]].&lt;br /&gt;
&lt;br /&gt;
=== ehashman&#039;s Guide to Setting up OpenLDAP on Debian ===&lt;br /&gt;
&lt;br /&gt;
Welcome to my nightmare.&lt;br /&gt;
&lt;br /&gt;
==== What is LDAP? ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;&#039;&#039;&#039;LDAP:&#039;&#039;&#039; Lightweight Directory Access Protocol&lt;br /&gt;
&lt;br /&gt;
An open, vendor-neutral, industry standard application protocol for accessing and maintaining distributed directory information services over an Internet Protocol (IP) network. — [https://en.wikipedia.org/wiki/Lightweight_Directory_Access_Protocol Wikipedia: LDAP]&lt;br /&gt;
&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
In this case, &amp;amp;quot;directory&amp;amp;quot; refers to the user directory, like on an old-school Rolodex. Many groups use LDAP to maintain their user directory, including the University (the &amp;amp;quot;WatIAM&amp;amp;quot; identity management system), the Computer Science Club, and even the UW Amateur Radio Club.&lt;br /&gt;
&lt;br /&gt;
This is a guide documenting how to set up LDAP on a Debian Linux system.&lt;br /&gt;
&lt;br /&gt;
==== First steps ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Ensure that openldap is installed on the machine:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# apt-get install slapd ldap-utils&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Debian will do a lot of magic and set up a skeleton LDAP server and get it running. We need to configure that further.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Let&#039;s set up logging before we forget. Create the following files in &amp;lt;code&amp;gt;/var/log&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# mkdir /var/log/ldap&lt;br /&gt;
# touch /var/log/ldap.log&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Set ownership correctly:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# chown openldap:openldap /var/log/ldap&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Set up rsyslog to dump the LDAP logs into &amp;lt;code&amp;gt;/var/log/ldap.log&amp;lt;/code&amp;gt; by adding the following lines:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# vim /etc/rsyslog.conf&lt;br /&gt;
...&lt;br /&gt;
# Grab ldap logs, don&#039;t duplicate in syslog&lt;br /&gt;
local4.*                        /var/log/ldap.log&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Set up log rotation for these by creating the file [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/logrotate.d.ldap &amp;lt;code&amp;gt;/etc/logrotate.d/ldap&amp;lt;/code&amp;gt;] with the following contents:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;/var/log/ldap/*log {&lt;br /&gt;
    weekly&lt;br /&gt;
    missingok&lt;br /&gt;
    rotate 1000&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    notifempty&lt;br /&gt;
    create 0640 openldap adm&lt;br /&gt;
    postrotate&lt;br /&gt;
        if [ -f /var/run/slapd/slapd.pid ]; then&lt;br /&gt;
            /etc/init.d/slapd restart &amp;amp;gt;/dev/null 2&amp;amp;gt;&amp;amp;amp;1&lt;br /&gt;
        fi&lt;br /&gt;
    endscript&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
/var/log/ldap.log {&lt;br /&gt;
    weekly&lt;br /&gt;
    missingok&lt;br /&gt;
    rotate 24&lt;br /&gt;
    compress&lt;br /&gt;
    delaycompress&lt;br /&gt;
    notifempty&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;As of OpenLDAP 2.4, it doesn&#039;t actually create a config file for us. Apparently, this is a &amp;amp;quot;feature&amp;amp;quot;: LDAP maintainers think we should want to set this up via dynamic queries. We don&#039;t, so the first thing we need is our [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/slapd.conf &amp;lt;code&amp;gt;slapd.conf&amp;lt;/code&amp;gt;] file.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Building &amp;lt;code&amp;gt;slapd.conf&amp;lt;/code&amp;gt; from scratch =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Get a copy to work with:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# scp uid@auth1.csclub.uwaterloo.ca:/etc/ldap/slapd.conf /etc/ldap/  ## you need CSC root for this&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;You&#039;ll want to comment out the TLS lines, and anything referring to Kerberos and access for now. You&#039;ll also want to comment out lines specifically referring to syscom and office staff.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Make sure you remove the reference to &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; as an index, as we&#039;re going to remove this field.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;You&#039;ll also need to generate a root password for the LDAP to bootstrap auth, like so:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# slappasswd&lt;br /&gt;
New password: &lt;br /&gt;
Re-enter new password:&lt;br /&gt;
{SSHA}longhash&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Add this line below &amp;lt;code&amp;gt;rootdn&amp;lt;/code&amp;gt; in the &amp;lt;code&amp;gt;slapd.conf&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;rootpw          {SSHA}longhash&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now we want to edit all instances of &amp;amp;quot;csclub&amp;amp;quot; to be &amp;amp;quot;wics&amp;amp;quot; instead, e.g.:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;suffix     &amp;amp;quot;dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
rootdn     &amp;amp;quot;cn=root,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, we need to grab all the relevant schemas:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;scp -r uid@auth1.csclub.uwaterloo.ca:/etc/ldap/schema/ /tmp/schemas&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Use the include directives to help you find the ones you need. I noticed we were missing &amp;lt;code&amp;gt;sudo.schema&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;csc.schema&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;rfc2307bis.schema&amp;lt;/code&amp;gt;.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;Open up the [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/csc.schema &amp;lt;code&amp;gt;csc.schema&amp;lt;/code&amp;gt;] for editing; we&#039;re not using it verbatim. Remove the attributes &amp;lt;code&amp;gt;studentid&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;nonMemberTerm&amp;lt;/code&amp;gt; and the objectclass &amp;lt;code&amp;gt;club&amp;lt;/code&amp;gt;. Also make sure you change the OID so we don&#039;t clash with the CSC. Because we didn&#039;t want to go through the process of requesting a [http://pen.iana.org/pen/PenApplication.page PEN number], we chose arbitrarily to use 26338, which belongs to IWICS Inc.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We also need to can the auto-generated config files, so do that:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# rm -rf /etc/openldap/slapd.d/*&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Also nuke the auto-generated database:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# rm /var/lib/ldap/__db.*&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Configure the database:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# cp /usr/share/slapd/DB_CONFIG /var/lib/ldap/&lt;br /&gt;
# chown openldap:openldap /var/lib/ldap/DB_CONFIG &amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now we can generate the new configuration files:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;And ensure that the permissions are all set correctly, lest this break something:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# chown -R openldap:openldap /etc/ldap/slapd.d&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;If at this point you get a nasty error, such as&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;5657d4db hdb_db_open: database &amp;amp;quot;dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;: db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).&lt;br /&gt;
5657d4db backend_startup_one (type=hdb, suffix=&amp;amp;quot;dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;): bi_db_open failed! (2)&lt;br /&gt;
slap_startup failed (test would succeed using the -u switch)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Just try restarting slapd, and see if that fixes the problem:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# service slapd stop&lt;br /&gt;
# service slapd start&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Congratulations! Your LDAP service is now configured and running.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Getting TLS Up and Running ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now that we have our LDAP service, we&#039;ll want to be able to serve encrypted traffic. This is especially important for any remote access, since binding to LDAP (i.e. sending it a password for auth) occurs over plaintext, and we don&#039;t want to leak our admin password.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Our first step is to copy our SSL certificates into the correct places. Public ones go into &amp;lt;code&amp;gt;/etc/ssl/certs/&amp;lt;/code&amp;gt; and private ones go into &amp;lt;code&amp;gt;/etc/ssl/private/&amp;lt;/code&amp;gt;.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Since the LDAP daemon needs to be able to read our private cert, we need to grant LDAP access to the private folder:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# chgrp openldap /etc/ssl/private &lt;br /&gt;
# chmod g+x /etc/ssl/private&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, uncomment the TLS-related settings in &amp;lt;code&amp;gt;slapd.conf&amp;lt;/code&amp;gt;. These are &amp;lt;code&amp;gt;TLSCertificateFile&amp;lt;/code&amp;gt; (the public cert), &amp;lt;code&amp;gt;TLSCertificateKeyFile&amp;lt;/code&amp;gt; (the private key), &amp;lt;code&amp;gt;TLSCACertificateFile&amp;lt;/code&amp;gt; (the intermediate CA cert), and &amp;lt;code&amp;gt;TLSVerifyClient&amp;lt;/code&amp;gt; (set to &amp;amp;quot;allow&amp;amp;quot;).&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# enable TLS connections&lt;br /&gt;
TLSCertificateFile      /etc/ssl/certs/wics-wildcard.crt&lt;br /&gt;
TLSCertificateKeyFile   /etc/ssl/private/wics-wildcard.key&lt;br /&gt;
&lt;br /&gt;
# enable TLS client authentication&lt;br /&gt;
TLSCACertificateFile    /etc/ssl/certs/GlobalSign_Intermediate_Root_SHA256_G2.pem&lt;br /&gt;
TLSVerifyClient         allow&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Update all your LDAP settings:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# rm -rf /etc/openldap/slapd.d/*&lt;br /&gt;
# slaptest -f /etc/ldap/slapd.conf -F /etc/ldap/slapd.d/&lt;br /&gt;
# chown -R openldap:openldap /etc/ldap/slapd.d&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;And last, ensure that LDAP will actually serve &amp;lt;code&amp;gt;ldaps://&amp;lt;/code&amp;gt; by modifying the init script variables in &amp;lt;code&amp;gt;/etc/default/&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# vim /etc/default/slapd&lt;br /&gt;
...&lt;br /&gt;
SLAPD_SERVICES=&amp;amp;quot;ldap:/// ldapi:/// ldaps:///&amp;amp;quot;&lt;br /&gt;
...&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now you can restart the LDAP server:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# service slapd restart&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;And assuming this is successful, test to ensure LDAP is serving on port 636 for &amp;lt;code&amp;gt;ldaps://&amp;lt;/code&amp;gt;:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# netstat -ntaup&lt;br /&gt;
Active Internet connections (servers and established)&lt;br /&gt;
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name&lt;br /&gt;
tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      22847/slapd     &lt;br /&gt;
tcp        0      0 0.0.0.0:636             0.0.0.0:*               LISTEN      22847/slapd &amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Populating the Database ====&lt;br /&gt;
&lt;br /&gt;
Now you&#039;ll need to start adding objects to the database. While we&#039;ll want to mostly do this programmatically, there are a few entries we&#039;ll need to bootstrap.&lt;br /&gt;
&lt;br /&gt;
===== Root Entries =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Start by creating a file [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/tree.ldif &amp;lt;code&amp;gt;tree.ldif&amp;lt;/code&amp;gt;] to create a few necessary &amp;amp;quot;roots&amp;amp;quot; in our LDAP tree, with the contents:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dn: dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: Women in Computer Science&lt;br /&gt;
dc: wics&lt;br /&gt;
&lt;br /&gt;
dn: ou=People,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: People&lt;br /&gt;
&lt;br /&gt;
dn: ou=Group,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: Group&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now attempt an LDAP add, using the password you set earlier:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ldapadd -cxWD cn=root,dc=wics,dc=uwaterloo,dc=ca -f tree.ldif&lt;br /&gt;
Enter LDAP Password:&lt;br /&gt;
adding new entry &amp;amp;quot;dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;ou=People,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;ou=Group,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Test that everything turned out okay, by performing a query of the entire database:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ldapsearch -x -h localhost&lt;br /&gt;
# extended LDIF&lt;br /&gt;
#&lt;br /&gt;
# LDAPv3&lt;br /&gt;
# base &amp;amp;lt;dc=wics,dc=uwaterloo,dc=ca&amp;amp;gt; (default) with scope subtree&lt;br /&gt;
# filter: (objectclass=*)&lt;br /&gt;
# requesting: ALL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# wics.uwaterloo.ca&lt;br /&gt;
dn: dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: dcObject&lt;br /&gt;
objectClass: organization&lt;br /&gt;
o: Women in Computer Science&lt;br /&gt;
dc: wics&lt;br /&gt;
&lt;br /&gt;
# People, wics.uwaterloo.ca&lt;br /&gt;
dn: ou=People,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: People&lt;br /&gt;
&lt;br /&gt;
# Group, wics.uwaterloo.ca&lt;br /&gt;
dn: ou=Group,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: Group&lt;br /&gt;
&lt;br /&gt;
# search result&lt;br /&gt;
search: 2&lt;br /&gt;
result: 0 Success&lt;br /&gt;
&lt;br /&gt;
# numResponses: 4&lt;br /&gt;
# numEntries: 3&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Users and Groups =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Next, add users to track the current GID and UID. This will save us from querying the entire database every time we make a new user or group. Create this file, [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/nextxid.ldif &amp;lt;code&amp;gt;nextxid.ldif&amp;lt;/code&amp;gt;]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dn: uid=nextuid,ou=People,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
cn: nextuid&lt;br /&gt;
objectClass: account&lt;br /&gt;
objectClass: posixAccount&lt;br /&gt;
objectClass: top&lt;br /&gt;
uidNumber: 20000&lt;br /&gt;
gidNumber: 20000&lt;br /&gt;
homeDirectory: /dev/null&lt;br /&gt;
&lt;br /&gt;
dn: cn=nextgid,ou=Group,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: group&lt;br /&gt;
objectClass: posixGroup&lt;br /&gt;
objectClass: top&lt;br /&gt;
gidNumber: 10000&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;You&#039;ll see here that our first GID is 10000 and our first UID is 20000.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now add them, like you did with the roots of the tree:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ldapadd -cxWD cn=root,dc=wics,dc=uwaterloo,dc=ca -f nextxid.ldif&lt;br /&gt;
Enter LDAP Password:&lt;br /&gt;
adding new entry &amp;amp;quot;uid=nextuid,ou=People,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;cn=nextgid,ou=Group,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===== Special &amp;lt;code&amp;gt;sudo&amp;lt;/code&amp;gt; Entries =====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;ul&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;We also need to add a sudoers OU with a defaults object for default sudo settings. We also need entries for syscom, such that members of the syscom group can use sudo on all hosts, and for termcom, whose members can use sudo on only the office terminals. Call this one [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/sudoers.ldif &amp;lt;code&amp;gt;sudoers.ldif&amp;lt;/code&amp;gt;]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;dn: ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: organizationalUnit&lt;br /&gt;
ou: SUDOers&lt;br /&gt;
&lt;br /&gt;
dn: cn=defaults,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: sudoRole&lt;br /&gt;
cn: defaults&lt;br /&gt;
sudoOption: !lecture&lt;br /&gt;
sudoOption: env_reset&lt;br /&gt;
sudoOption: listpw=never&lt;br /&gt;
sudoOption: mailto=&amp;amp;quot;wics-sys@lists.uwaterloo.ca&amp;amp;quot;&lt;br /&gt;
sudoOption: shell_noargs&lt;br /&gt;
&lt;br /&gt;
dn: cn=%syscom,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: sudoRole&lt;br /&gt;
cn: %syscom&lt;br /&gt;
sudoUser: %syscom&lt;br /&gt;
sudoHost: ALL&lt;br /&gt;
sudoCommand: ALL&lt;br /&gt;
sudoRunAsUser: ALL&lt;br /&gt;
&lt;br /&gt;
dn: cn=%termcom,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&lt;br /&gt;
objectClass: top&lt;br /&gt;
objectClass: sudoRole&lt;br /&gt;
cn: %termcom&lt;br /&gt;
sudoUser: %termcom&lt;br /&gt;
sudoHost: honk&lt;br /&gt;
sudoHost: hiss&lt;br /&gt;
sudoHost: gosling&lt;br /&gt;
sudoCommand: ALL&lt;br /&gt;
sudoRunAsUser: ALL&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Now add them:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ldapadd -cxWD cn=root,dc=wics,dc=uwaterloo,dc=ca -f sudoers.ldif&lt;br /&gt;
Enter LDAP Password:&lt;br /&gt;
adding new entry &amp;amp;quot;ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;cn=defaults,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;cn=%syscom,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&lt;br /&gt;
&lt;br /&gt;
adding new entry &amp;amp;quot;cn=%termcom,ou=SUDOers,dc=wics,dc=uwaterloo,dc=ca&amp;amp;quot;&amp;lt;/pre&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;Last, add some special local groups via [https://git.uwaterloo.ca/wics/documentation/blob/master/ldap/local-groups.ldif &amp;lt;code&amp;gt;local-groups.ldif&amp;lt;/code&amp;gt;]:&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;# ldapadd -cxWD cn=root,dc=wics,dc=uwaterloo,dc=ca -f local-groups.ldif&amp;lt;/pre&amp;gt;&lt;br /&gt;
The local groups are special because they usually are present on all systems, but we want to be able to add users to them at the LDAP level. For instance, the audio group controls access to sound equipment, and the adm group controls log read access.&amp;lt;/li&amp;gt;&lt;br /&gt;
&amp;lt;li&amp;gt;&amp;lt;p&amp;gt;That&#039;s all the entries we have to add manually! Now we can use software for the rest. See [[weo|&amp;lt;code&amp;gt;ceo&amp;lt;/code&amp;gt;]] for more details.&amp;lt;/p&amp;gt;&amp;lt;/li&amp;gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Querying LDAP ===&lt;br /&gt;
&lt;br /&gt;
There are many tools available for issuing LDAP queries. Queries should be issued to &amp;lt;tt&amp;gt;ldap1.csclub.uwaterloo.ca&amp;lt;/tt&amp;gt;. The search base you almost certainly want is &amp;lt;tt&amp;gt;dc=csclub,dc=uwaterloo,dc=ca&amp;lt;/tt&amp;gt;. Read access is available without authentication; [[Kerberos]] is used to authenticate commands which require it.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 ldapsearch -x -h ldap1.csclub.uwaterloo.ca -b dc=csclub,dc=uwaterloo,dc=ca uid=ctdalek&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;-x&amp;lt;/tt&amp;gt; option causes &amp;lt;tt&amp;gt;ldapsearch&amp;lt;/tt&amp;gt; to switch to simple authentication rather than trying to authenticate via SASL (which will fail if you do not have a Kerberos ticket).&lt;br /&gt;
&lt;br /&gt;
The University LDAP server (uwldap.uwaterloo.ca) can also be queried like this. Again, use &amp;quot;simple authentication&amp;quot; as read access is available (from on campus) without authentication. SASL authentication will fail without additional parameters.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
 ldapsearch -x -h uwldap.uwaterloo.ca -b dc=uwaterloo,dc=ca &amp;quot;cn=Prabhakar Ragde&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== Replication ===&lt;br /&gt;
&lt;br /&gt;
While &amp;lt;tt&amp;gt;ldap1.csclub.uwaterloo.ca&amp;lt;/tt&amp;gt; ([[Machine_List#auth1|auth1]]) is the LDAP master, an up-to-date replica is available on &amp;lt;tt&amp;gt;ldap2.csclub.uwaterloo.ca&amp;lt;/tt&amp;gt; ([[Machine_List#auth2|auth2]]).&lt;br /&gt;
&lt;br /&gt;
In order to replicate changes from the master, the slave maintains an authenticated connection to the master which provides it with full read access to all changes.&lt;br /&gt;
&lt;br /&gt;
Specifically, &amp;lt;tt&amp;gt;/etc/systemd/system/k5start-slapd.service&amp;lt;/tt&amp;gt; maintains an active Kerberos ticket for &amp;lt;tt&amp;gt;ldap/auth2.csclub.uwaterloo.ca@CSCLUB.UWATERLOO.CA&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;/var/run/slapd/krb5cc&amp;lt;/tt&amp;gt;. This is then used to authenticate the slave to the server, who maps this principal to &amp;lt;tt&amp;gt;cn=ldap-slave,dc=csclub,dc=uwaterloo,dc=ca&amp;lt;/tt&amp;gt;, which in turn has full read privileges.&lt;br /&gt;
&lt;br /&gt;
In the event of master failure, all hosts should fail LDAP reads seamlessly over to the slave.&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Modifying LDAP entry ===&lt;br /&gt;
&lt;br /&gt;
Editing entries can be easily done with &amp;lt;code&amp;gt;ldapvi&amp;lt;/code&amp;gt;. First search for the entry using &amp;lt;code&amp;gt;ldapsearch&amp;lt;/code&amp;gt; like above, and change &amp;lt;code&amp;gt;ldapsearch -x&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ldapvi -Y GSSAPI&amp;lt;/code&amp;gt; to make your edits.&lt;br /&gt;
&lt;br /&gt;
Note that if your &amp;lt;tt&amp;gt;EDITOR&amp;lt;/tt&amp;gt; enviroment is set to something not avaliable it will give out errors like&lt;br /&gt;
&lt;br /&gt;
 error (misc.c line 180): No such file or directory&lt;br /&gt;
 editor died&lt;br /&gt;
 error (ldapvi.c line 83): No such file or directory&lt;br /&gt;
&lt;br /&gt;
This can be fixed by something like&lt;br /&gt;
&lt;br /&gt;
 EDITOR=vi ldapvi ******&lt;br /&gt;
&lt;br /&gt;
==== Changing a user&#039;s username ====&lt;br /&gt;
&lt;br /&gt;
Only a member of the Systems Committee can change a user&#039;s username. &#039;&#039;&#039;At all times, a user&#039;s username must match the user&#039;s username in WatIAM.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
All changes to an account MUST be done in person so that identity can be confirmed. If a member cannot attend in person, then an alternate method of identity verification may be chosen by the Systems Administrator.&lt;br /&gt;
&lt;br /&gt;
# Edit entries in LDAP (&amp;lt;code&amp;gt;ldapvi -Y GSSAPI&amp;lt;/code&amp;gt;)&lt;br /&gt;
#* Find and replace the user&#039;s old username with the new one (&amp;lt;code&amp;gt;%s/$OLD/$NEW/g&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Change the user&#039;s Kerberos principal (on auth1, &amp;lt;code&amp;gt;renprinc $OLD $NEW&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Move the user&#039;s home directory (on aspartame, &amp;lt;code&amp;gt;mv /users/$OLD /users/$NEW&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Change the user&#039;s csc-general (and csc-industry, if subscribed) email address for &amp;lt;code&amp;gt;$OLD@csclub.uwaterloo.ca&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;$NEW@csclub.uwaterloo.ca&amp;lt;/code&amp;gt;&lt;br /&gt;
#* https://mailman.csclub.uwaterloo.ca/admin/csc-general&lt;br /&gt;
# If the user has vhosts on caffeine, update them to point to their new username&lt;br /&gt;
&lt;br /&gt;
If the user&#039;s account has been around for a while, and they request it, forward email from their old username to their new one.&lt;br /&gt;
&lt;br /&gt;
# Edit &amp;lt;code&amp;gt;/etc/aliases&amp;lt;/code&amp;gt; on mail. &amp;lt;code&amp;gt;$OLD: $NEW&amp;lt;/code&amp;gt;&lt;br /&gt;
# Run &amp;lt;code&amp;gt;newaliases&amp;lt;/code&amp;gt;&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5308</id>
		<title>Ntp</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ntp&amp;diff=5308"/>
		<updated>2024-12-18T07:39:43Z</updated>

		<summary type="html">&lt;p&gt;S23adhik: Created page with &amp;quot;CSC Runs an NTP server at ntp.csclub.uwaterloo.ca, however at the time of writting, IST has been saying weird things to CSCF, which have been told to us. We&amp;#039;ve been told that keeping it up might be slightly sketchy???&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;CSC Runs an NTP server at ntp.csclub.uwaterloo.ca, however at the time of writting, IST has been saying weird things to CSCF, which have been told to us. We&#039;ve been told that keeping it up might be slightly sketchy???&lt;/div&gt;</summary>
		<author><name>S23adhik</name></author>
	</entry>
</feed>