<?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=O32patel</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=O32patel"/>
	<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/Special:Contributions/O32patel"/>
	<updated>2026-04-05T18:11:25Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.44.0</generator>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5483</id>
		<title>Ceo</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Ceo&amp;diff=5483"/>
		<updated>2026-01-22T03:58:49Z</updated>

		<summary type="html">&lt;p&gt;O32patel: fix Uploading Changes to Mirror&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_&amp;lt;major&amp;gt;.&amp;lt;minor&amp;gt;.&amp;lt;patch&amp;gt;.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;
This may try to auto-sign with whatever your first GPG key is, you can safely exist and debsign yourself.&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&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
dput -c /path/to/dput.cf ceo_&amp;lt;major&amp;gt;.&amp;lt;minor&amp;gt;.&amp;lt;patch&amp;gt;-&amp;lt;distribution&amp;gt;1_amd64.changes&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Here is a sample dput.cf&amp;lt;syntaxhighlight lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
[DEFAULT]&lt;br /&gt;
default_host_main = debian.csclub&lt;br /&gt;
&lt;br /&gt;
[debian.csclub]&lt;br /&gt;
fqdn = potassium-benzoate.csclub.uwaterloo.ca&lt;br /&gt;
method = scp&lt;br /&gt;
incoming = /srv/debian/incoming&lt;br /&gt;
run_install = 1&lt;br /&gt;
pre_upload_command = /bin/true&lt;br /&gt;
login = o32patel&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;Then ssh to mirror and run&lt;br /&gt;
 reprepro --confdir /srv/debian/conf/ processincoming basic # use --ignore=longkeyid if you uploaded a long GPG id&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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5482</id>
		<title>SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5482"/>
		<updated>2026-01-22T03:45:07Z</updated>

		<summary type="html">&lt;p&gt;O32patel: add ranch ssl&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&lt;br /&gt;
* ranch:/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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Acronyms&amp;diff=5480</id>
		<title>Acronyms</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Acronyms&amp;diff=5480"/>
		<updated>2025-12-13T15:33:35Z</updated>

		<summary type="html">&lt;p&gt;O32patel: cat&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;br /&gt;
* Cat Supremacy Club&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5473</id>
		<title>SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5473"/>
		<updated>2025-11-11T17:00:56Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Cert location list update&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;
* &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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5470</id>
		<title>SSL</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=SSL&amp;diff=5470"/>
		<updated>2025-11-09T16:53:16Z</updated>

		<summary type="html">&lt;p&gt;O32patel: remove old cert locations (rip biloba and citric-acid)&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;
* caffeine:/etc/ssl/private/csclub-wildcard.crt (for Apache)&lt;br /&gt;
* coffee:/etc/ssl/private/csclub.uwaterloo.ca (for PostgreSQL and MariaDB)&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;
* mailman:/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;
* phosphoric-acid:/etc/ssl/private/csclub-wildcard-chain.crt (for ceod)&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;
* mattermost:/etc/ssl/private/csclub-wildcard.crt (for nginx)&lt;br /&gt;
* load-balancer-0(1|2):/etc/ssl/private/csclub.uwaterloo.ca (for haproxy) [temporarily down 2020]&lt;br /&gt;
* chat:/etc/ssl/private/csclub-wildcard-chain.crt (for nginx)&lt;br /&gt;
* prometheus:/etc/ssl/private/csclub-wildcard-chain.crt (for Apache)&lt;br /&gt;
* bigbluebutton:/etc/nginx/ssl/csclub-wildcard-chain.crt (podman container on xylitol)&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;
&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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Saturday_29_June_2025&amp;diff=5379</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=5379"/>
		<updated>2025-06-29T19:00:09Z</updated>

		<summary type="html">&lt;p&gt;O32patel: &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, Dundee&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Debian_12_Transition&amp;diff=5348</id>
		<title>Debian 12 Transition</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Debian_12_Transition&amp;diff=5348"/>
		<updated>2025-04-13T01:21:25Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Add a Kerberos section for potential libk5crypto3 issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Upgrade steps ==&lt;br /&gt;
1. Create the /etc/apt/keyrings folder.&lt;br /&gt;
&lt;br /&gt;
2. Download the CSC keyring into it:&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;
3. Make sure that the CSC keyring is the only one in /etc/apt/trusted.gpg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
gpg --no-options --show-keys /etc/apt/trusted.gpg&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. Delete /etc/apt/trusted.gpg and its backup file:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f /etc/apt/trusted.gpg /etc/apt/trusted.gpg~&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
5. Replace the old-style /etc/apt/sources.list and /etc/apt/sources.list.d/*.list files with the new Deb822 &amp;quot;sources&amp;quot; style (see /etc/apt/sources.list.d/*.sources on sorbitol; don&#039;t copy the one for the Dell repo). Add a helpful note in /etc/apt/sources.list for other syscom members:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# See /etc/apt/sources.list.d/*.sources&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
6. apt update &amp;amp;&amp;amp; apt dist-upgrade&lt;br /&gt;
&lt;br /&gt;
7. apt autoremove --purge&lt;br /&gt;
&lt;br /&gt;
8. During the upgrade, accept the new configuration files (choose the &#039;Y&#039; option)&lt;br /&gt;
for the following files:&lt;br /&gt;
* /etc/fail2ban/fail2ban.conf&lt;br /&gt;
* /etc/fail2ban/jail.conf&lt;br /&gt;
* /etc/fail2ban/filter.d/sshd.conf&lt;br /&gt;
Everything else should keep the old file.&lt;br /&gt;
&lt;br /&gt;
9. Copy the following files from sorbitol:&lt;br /&gt;
* /etc/fail2ban/fail2ban.local&lt;br /&gt;
* /etc/fail2ban/jail.local&lt;br /&gt;
* /etc/fail2ban/filter.d/sshd.local&lt;br /&gt;
Then restart fail2ban.&lt;br /&gt;
&lt;br /&gt;
10. If the &#039;ntp&#039; package is installed, purge it and install systemd-timesyncd instead. Enable the systemd-timesyncd service and copy /etc/systemd/timesyncd.conf.d/csclub.conf from sorbitol. Start the service and make sure it&#039;s working.&lt;br /&gt;
&lt;br /&gt;
11. Get rid of python2 if it&#039;s still installed:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt purge python2.7-minimal&lt;br /&gt;
apt autoremove --purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kerberos ===&lt;br /&gt;
If Kerberos and consequently, the NFS mount breaks, see [[New CSC Machine#apt|the new machine apt guide]] and make sure that &amp;lt;code&amp;gt;/etc/apt/preferences.d/99-csclub&amp;lt;/code&amp;gt; exists and run &amp;lt;code&amp;gt;apt install --reinstall libk5crypto3&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Here are some places to look and sample errors for the &amp;lt;code&amp;gt;libk5crypto3&amp;lt;/code&amp;gt; issue:&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;mount.nfs: access denied by server while mounting fs00[...]:/users&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;journalctl -u rpc-svcgssd.service&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;ERROR: GSS-API: [...] GSS_S_FAILURE [...] - No key table entry found matching nfs/[...]&amp;lt;/code&amp;gt;&lt;br /&gt;
* (Auth1) &amp;lt;code&amp;gt;journalctl -u krb5-kdc.service -r&amp;lt;/code&amp;gt;: &amp;lt;code&amp;gt;BAD_ENCRYPTION_TYPE: authtime 0 [...] KDC has no support for encryption type&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pending machines ==&lt;br /&gt;
Machines/containers that have yet to upgrade to Debian 12. Remove entry when upgrade is done.&lt;br /&gt;
&lt;br /&gt;
=== Syscom Only ===&lt;br /&gt;
&lt;br /&gt;
* xylitol: later?&lt;br /&gt;
** xylitol runs all sort of critical services&lt;br /&gt;
* phosphoric-acid: later?&lt;br /&gt;
** phosphoric-acid runs web&lt;br /&gt;
* yerba-mate&lt;br /&gt;
* cobalamin&lt;br /&gt;
* potassium-benzoate: ugh ubuntu and we can&#039;t shut down the mirror&lt;br /&gt;
&lt;br /&gt;
=== Cloud ===&lt;br /&gt;
&lt;br /&gt;
Everything. We will need to wait until ceph supports bookworm.&lt;br /&gt;
&lt;br /&gt;
=== Containers ===&lt;br /&gt;
&lt;br /&gt;
* on xylitol&lt;br /&gt;
** auth1&lt;br /&gt;
** mail&lt;br /&gt;
** chat&lt;br /&gt;
* on phosphoric-acid&lt;br /&gt;
** caffeine&lt;br /&gt;
** coffee&lt;br /&gt;
** prometheus&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=LDAP&amp;diff=5322</id>
		<title>LDAP</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=LDAP&amp;diff=5322"/>
		<updated>2025-01-20T02:30:04Z</updated>

		<summary type="html">&lt;p&gt;O32patel: &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 using &amp;lt;code&amp;gt;kadmin&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;renprinc $OLD $NEW&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Move the user&#039;s home directory (on phosphoric-acid, &amp;lt;code&amp;gt;mv /users/$OLD /users/$NEW&amp;lt;/code&amp;gt;)&lt;br /&gt;
# Modify the user&#039;s ~/.forward file if their old username is in it.&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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Office_Policies&amp;diff=5295</id>
		<title>Office Policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Office_Policies&amp;diff=5295"/>
		<updated>2024-11-17T22:56:02Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Link criminal code&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are the day-to-day policies for running the CSC Office. They are set down by the Office Manager or, should there not be a current Office Manager, by the AVP.&lt;br /&gt;
&lt;br /&gt;
[[Category:Policy]]&lt;br /&gt;
[[Category:Office]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Respect Other People&lt;br /&gt;
:#Don&#039;t be rude towards other members, even if someone is causing issues. Office Staff are expected to handle any such situations maturely.&lt;br /&gt;
:#Respect people&#039;s boundaries and try to avoid making people uncomfortable. If someone asks you to stop, be respectful. Office Staff have the final say.&lt;br /&gt;
:##Be considerate when discussing or making jokes about sensitive topics such as sex, suicide /self-harm, or politics.&lt;br /&gt;
:#Respect others&#039; privacy. Don&#039;t touch others&#039; devices or other property without permission.&lt;br /&gt;
:#Keep the noise level in the office at a reasonable volume, especially during business hours.&lt;br /&gt;
;Respect the Space&lt;br /&gt;
:#The space is for people, not bags. If you leave your bag on a chair or table and someone needs the space, they take priority over your bag.&lt;br /&gt;
:#CSC/Office Staff are not responsible for any loss or theft of property. If you choose to leave things here, you do so at your own risk.&lt;br /&gt;
:#Do not leave food in the office and clean up your garbage when you leave.&lt;br /&gt;
:#The stapler is only to be used inside the office or outside of the office for club business.&lt;br /&gt;
:#Disconnect from the music queue before you leave the office (otherwise people in the office will hear audio distortion from your device attempting to stay connected). Share the queue and keep music at a reasonable volume.&lt;br /&gt;
;Strictly Banned Behavior&lt;br /&gt;
:#No sleeping in the office.&lt;br /&gt;
:#No sex in the office. [https://laws-lois.justice.gc.ca/eng/acts/c-46/section-173.html (R.S.C., 1985, c. C-46, s. 173 (1))]&lt;br /&gt;
:#No illegal activities in the office.&lt;br /&gt;
;Office Moderation and Operations&lt;br /&gt;
:#There must be an Office Staff present at all times while the office is open.&lt;br /&gt;
:#Office Staff are expected to moderate the office environment. Office Staff should deal with issues professionally and not make situations worse.&lt;br /&gt;
:#Any significant incidents, such as harassment and repeated infractions of more minor rules, must be reported to the Office Manager, even if resolved.&lt;br /&gt;
:#If there are people in the office, the doors should be open. Office doors must remain unblocked for safety reasons.&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Office_Policies&amp;diff=5294</id>
		<title>Office Policies</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Office_Policies&amp;diff=5294"/>
		<updated>2024-11-17T22:52:16Z</updated>

		<summary type="html">&lt;p&gt;O32patel: F24 policy update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following are the day-to-day policies for running the CSC Office. They are set down by the Office Manager or, should there not be a current Office Manager, by the AVP.&lt;br /&gt;
&lt;br /&gt;
[[Category:Policy]]&lt;br /&gt;
[[Category:Office]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
;Respect Other People&lt;br /&gt;
:#Don&#039;t be rude towards other members, even if someone is causing issues. Office Staff are expected to handle any such situations maturely.&lt;br /&gt;
:#Respect people&#039;s boundaries and try to avoid making people uncomfortable. If someone asks you to stop, be respectful. Office Staff have the final say.&lt;br /&gt;
:##Be considerate when discussing or making jokes about sensitive topics such as sex, suicide /self-harm, or politics.&lt;br /&gt;
:#Respect others&#039; privacy. Don&#039;t touch others&#039; devices or other property without permission.&lt;br /&gt;
:#Keep the noise level in the office at a reasonable volume, especially during business hours.&lt;br /&gt;
;Respect the Space&lt;br /&gt;
:#The space is for people, not bags. If you leave your bag on a chair or table and someone needs the space, they take priority over your bag.&lt;br /&gt;
:#CSC/Office Staff are not responsible for any loss or theft of property. If you choose to leave things here, you do so at your own risk.&lt;br /&gt;
:#Do not leave food in the office and clean up your garbage when you leave.&lt;br /&gt;
:#The stapler is only to be used inside the office or outside of the office for club business.&lt;br /&gt;
:#Disconnect from the music queue before you leave the office (otherwise people in the office will hear audio distortion from your device attempting to stay connected). Share the queue and keep music at a reasonable volume.&lt;br /&gt;
;Strictly Banned Behavior&lt;br /&gt;
:#No sleeping in the office.&lt;br /&gt;
:#No sex in the office. (R.S.C., 1985, c. C-46, s. 173 (1))&lt;br /&gt;
:#No illegal activities in the office.&lt;br /&gt;
;Office Moderation and Operations&lt;br /&gt;
:#There must be an Office Staff present at all times while the office is open.&lt;br /&gt;
:#Office Staff are expected to moderate the office environment. Office Staff should deal with issues professionally and not make situations worse.&lt;br /&gt;
:#Any significant incidents, such as harassment and repeated infractions of more minor rules, must be reported to the Office Manager, even if resolved.&lt;br /&gt;
:#If there are people in the office, the doors should be open. Office doors must remain unblocked for safety reasons.&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Shlink&amp;diff=5293</id>
		<title>Shlink</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Shlink&amp;diff=5293"/>
		<updated>2024-11-16T04:13:36Z</updated>

		<summary type="html">&lt;p&gt;O32patel: change shlink group&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[https://shlink.io/ Shlink] is a self-hosted URL shortener. We run an instance on [[Machine List#caffeine|caffeine]], currently for exec-use only.&lt;br /&gt;
&lt;br /&gt;
== Installation Details ==&lt;br /&gt;
Shlink was installed manually (as of F2022 there is currently no Debian package for it). Its files are in &amp;lt;code&amp;gt;/usr/local/lib/shlink&amp;lt;/code&amp;gt; on caffeine, with a symlink of &amp;lt;code&amp;gt;bin/cli&amp;lt;/code&amp;gt; (the Shlink CLI) to &amp;lt;code&amp;gt;/usr/local/bin/shlink&amp;lt;/code&amp;gt; as recommended by Shlink&#039;s docs. Due to Shlink only supporting PHP 8.2, which is in debian-unstable at the moment, the installation and CLI scripts were modified to use the &amp;lt;code&amp;gt;php8.2&amp;lt;/code&amp;gt; binary installed from &amp;lt;code&amp;gt;packages.sury.org&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
The web client (used to manage shortlinks graphically, the other option being the CLI) sources are located in &amp;lt;code&amp;gt;/usr/local/bin/shlink/web-client/&amp;lt;/code&amp;gt;. Apache is configured (through &amp;lt;code&amp;gt;sites-available/csc-links.conf&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;sites-real/csc-links&amp;lt;/code&amp;gt;) to serve actual shortlinks through [https://csclub.ca csclub.ca] (which itself redirects to the CSC homepage) and the web client through [https://links.csclub.uwaterloo.ca links.csclub.uwaterloo.ca].&lt;br /&gt;
&lt;br /&gt;
== Usage ==&lt;br /&gt;
Links can be managed at [https://links.csclub.uwaterloo.ca links.csclub.uwaterloo.ca], or through the CLI (currently restricted to the &amp;lt;code&amp;gt;exec&amp;lt;/code&amp;gt; group).&lt;br /&gt;
[[File:Shlink1.png|none|thumb|When you open it for the first time, you will see an interface that looks like this. Click &#039;&#039;&#039;Add a server&#039;&#039;&#039;.]]&lt;br /&gt;
[[File:Shlink2.png|none|thumb|Enter the details as follows. Name: &amp;lt;code&amp;gt;csclub.ca&amp;lt;/code&amp;gt; URL: &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;https://csclub.ca&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; API key: The exec API key (in the usual exec passwords location, or ask an exec for it if you aren&#039;t one)]]&lt;br /&gt;
On the next interface, &#039;&#039;&#039;custom slug&#039;&#039;&#039; is the part of the URL that can be customized. If it is left blank, a random 4-character slug will be generated.&lt;br /&gt;
&lt;br /&gt;
Use the &amp;lt;code&amp;gt;csctest&amp;lt;/code&amp;gt; parameter to disable tracking on test requests.&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5285</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5285"/>
		<updated>2024-10-22T00:00:12Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Add SSDs for PA&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.&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;
&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;
= 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;
&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;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC 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;
==== 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;
==&#039;&#039;biloba&#039;&#039;==&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;
= 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;
==&#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;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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5282</id>
		<title>IPMI101</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=IPMI101&amp;diff=5282"/>
		<updated>2024-10-16T09:16:17Z</updated>

		<summary type="html">&lt;p&gt;O32patel: riboflavin ipmi config detail&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;
= 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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5246</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5246"/>
		<updated>2024-04-04T06:26:24Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Sorbitol is back online&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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected. (Require new patch cable)&#039;&#039;&#039;&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.&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;
&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;
= 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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected. (Require new patch cable)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&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. Will act as a backup server for many things. TODO: should replace with another Syscom server...&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...)&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;
&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;
&lt;br /&gt;
* For some reason, the keyboard is shit. Try to avoid having to use it. It&#039;s doable, but painful. IPMI works now, and then we don&#039;t need to bug about physical access so it&#039;s better anyway.&lt;br /&gt;
** We don&#039;t have &amp;quot;physical&amp;quot; access to the PHYS server rooms.&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;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC 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;
==== 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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected. (Require new patch cable)&#039;&#039;&#039;&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;
==&#039;&#039;biloba&#039;&#039;==&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;
= 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;
==&#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;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>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Sunday_11_February_2024&amp;diff=5217</id>
		<title>Meeting:Termcom/Sunday 11 February 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Meeting:Termcom/Sunday_11_February_2024&amp;diff=5217"/>
		<updated>2024-02-16T07:18:18Z</updated>

		<summary type="html">&lt;p&gt;O32patel: Task assignments&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;&#039;Updates&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- CEO updates&lt;br /&gt;
&lt;br /&gt;
- Netapp migration&lt;br /&gt;
&lt;br /&gt;
- Hardware acquisition&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Tasks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
- repurposing citric-acid (Ohm)&lt;br /&gt;
&lt;br /&gt;
- mirror checker deployment (Jonathan)&lt;br /&gt;
&lt;br /&gt;
- hardware acquisition (Nathan)&lt;br /&gt;
&lt;br /&gt;
- CSC Cloud migration (Frank)&lt;br /&gt;
&lt;br /&gt;
- hardware inventory (Nathan, Frank)&lt;br /&gt;
&lt;br /&gt;
- Netapp migration (Leon)&lt;br /&gt;
&lt;br /&gt;
- librarian api (postponed/Ohm)&lt;/div&gt;</summary>
		<author><name>O32patel</name></author>
	</entry>
	<entry>
		<id>https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5215</id>
		<title>Machine List</title>
		<link rel="alternate" type="text/html" href="https://wiki.csclub.uwaterloo.ca/index.php?title=Machine_List&amp;diff=5215"/>
		<updated>2024-02-12T03:00:46Z</updated>

		<summary type="html">&lt;p&gt;O32patel: citric-acid has 2 sockets&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;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* currently a virtual machine hosted on 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 [[Apache]]&lt;br /&gt;
* [[MySQL]] databases&lt;br /&gt;
* [[PostgreSQL]] databases&lt;br /&gt;
* [[ceo]] daemon&lt;br /&gt;
* mail was migrated to [[#mail|mail]]&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. 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.&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;corn-syrup&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
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;
* has ipmi on corn-syrup-ipmi.csclub.uwaterloo.ca.&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;
&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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected.&#039;&#039;&#039;&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;
We discourage running computationally-intensive jobs 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;
* 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;
&lt;br /&gt;
== &#039;&#039;mannitol&#039;&#039; ==&lt;br /&gt;
&lt;br /&gt;
mannitol 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;
&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;
(Work in progress)&lt;br /&gt;
&lt;br /&gt;
cyanide is a Mac Mini&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;
&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;
* 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;
= Syscom Only =&lt;br /&gt;
&lt;br /&gt;
The following systems may 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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected.&#039;&#039;&#039;&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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Specs ====&lt;br /&gt;
&lt;br /&gt;
* (clone of Xylitol)&lt;br /&gt;
&lt;br /&gt;
==== Services ====&lt;br /&gt;
&lt;br /&gt;
*[[#caffeine|caffeine]]&lt;br /&gt;
*[[#coffee|coffee]]&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. Will act as a backup server for many things.&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]]&lt;br /&gt;
&lt;br /&gt;
==== Notes ====&lt;br /&gt;
&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;
&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;
&lt;br /&gt;
* For some reason, the keyboard is shit. Try to avoid having to use it. It&#039;s doable, but painful. IPMI works now, and then we don&#039;t need to bug about physical access so it&#039;s better anyway.&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;
==== 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;
==&#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;
* 1 x Intel Xeon E5-2630 v3 (8 cores, 2.40 GHz)&lt;br /&gt;
* 64 GB (4 x 16GB) of DDR4 (2133Mhz)  ECC 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;
==== 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;
==&#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;
* shibboleth (under development)&lt;br /&gt;
&lt;br /&gt;
Also used for experimenting new CSC services.&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;citric-acid&#039;&#039;==&lt;br /&gt;
A Dell PowerEdge 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;
* Being 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) users&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;
* OpenStack primary controller services for csclub.cloud&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;
&lt;br /&gt;
&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;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;
Currently being used to set up NextCloud.&lt;br /&gt;
&lt;br /&gt;
Was used to experiment the following then-new CSC services:&lt;br /&gt;
&lt;br /&gt;
* logstash (testing of logstash)&lt;br /&gt;
* load-balancer-01&lt;br /&gt;
* cifs (for booting ginkgo from CD)&lt;br /&gt;
* caffeine-01 (testing of multi-node caffeine)&lt;br /&gt;
* block1.cloud&lt;br /&gt;
* object1.cloud&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;
&#039;&#039;&#039;01/19/23: IPMI (temporarily) disconnected.&#039;&#039;&#039;&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;biloba&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
Supermicro server funded by SLEF for CSC web hosting. Located in DC 3558.&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;
&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;
= Storage =&lt;br /&gt;
&lt;br /&gt;
==&#039;&#039;fs00&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs00 is a NetApp FAS3040 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;
==&#039;&#039;fs01&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
fs01 is a NetApp FAS3040 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;
= Other =&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;
==&#039;&#039;digital cutter&#039;&#039;==&lt;br /&gt;
&lt;br /&gt;
See [[Digital Cutter|here]].&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;
= Decommissioned =&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;
= 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>O32patel</name></author>
	</entry>
</feed>