Til nye ITKere

Dette er en guide som opprinnelig ble skrevet høsten 2005 i mangel av skikkelig «introduksjonsdokumentasjon» for nye ITKere. Etter at man seint i 2003 begynte med en wiki for dokumentasjon, har man etter hvert fått relativt brukbare mengder referansedokumentasjon som er nyttig for folk som allerede kan systemene godt og vet hvordan ITK fungerer, men heller lite informasjon for folk som er helt nye som ITKere. Dette dokumentet prøver å fylle litt av det hullet.

Dokumentet er delt i to deler; en generell og en spesifikk teknisk. Den første delen, den generelle delen, snakker litt om vanlige feil som gjøres og generelle «kjøreregler» som gjelder det meste av tekniske ting i ITK – den andre delen er en generell «rundtur» av det meste av ITK-relaterte systemer. Sistnevnte er mest av alt ment for folk som allerede har jobbet en del med UNIX- og Linux-systemer som vil komme «up to speed» raskt; ikke vær bekymret om du ikke får så mye mening av den med en gang.

Guiden dekker ingen av de mange _ikke_-tekniske delene som er nødvendig for å overleve på Samfundet (inkludert kommunikasjonen mot andre gjenger); det ville rett og slett blitt for mye å dekke, og mye av dette gis allerede i form av diverse muntlige og skriftlige meddelelser fra gjengsjef og andre. Ikke vær redd; etter et halvt år eller så er plutselig ikke gangene på Samfundet så forvirrende, og du begynner å finne fram i jungelen av gjenger og underorganisasjoner :-)

Generelt

En del «kjøreregler» er nyttige å ha for alle ITKere, omtrent uansett hva de driver med teknisk. Legg merke til at dette ikke er noe lovverk per se – til det har man Samfundets lover samt evt. ITKs instruks. Uansett:

  1. Vær flink til å kommunisere. 90% av de største brølerne (og en god god bunke av de mindre) som er blitt gjort i ITKs historie kunne temmelig sikkert vært unngått om folk hadde vært flinkere til å kommunisere med hverandre. Det ligger enormt mye kompetanse i «eldre» gjengmedlemmer og pangsjonister (ja, de staves med «ang» på Samfundet), og du har etter hvert temmelig sikkert en del å dele med andre også. Hvis du lurer på noe, for all del, spør. Hvis du har gjort noe nytt, si ifra! (En epost til en av de interne epostlistene eller dokumentasjon i wikien er som regel på sin plass.) Hvis noen viser eller forklarer noe, og du ikke helt skjønner det, spør. Hvis det er noe du er usikker på og som kan ødelegge noe, spør før du gjør det. Det hender at folk gir et litt stresset eller surt svar – som regel er det ikke av ond vilje, men at folk er opptatt med noe annet eller litt stresset. Det er bare å prøve igjen litt seinere – kommunikasjon er kjempeviktig. :-)
  2. Ta deg tid, og tenk over hva du gjør. Hvis noe går ned eller brekker, er det ytterst sjelden at det blir verre av å vente en time på at man setter seg ned og tenker hvordan man best mulig kan løse det hele. Overilt fiksing kan ofte gjøre vondt mye, mye verre. Litt venting gir også god mulighet til å spørre andre – se forrige punkt.
  3. Tør å gjøre feil. (Nesten det motsatte av forrige punkt til tider – det å få balansen riktig er en kunst :-) ) Stort sett alle ITKere (og i hvert fall de som er eldst, bråker mest og har gjort mest) har gått rimelig hardt på trynet et par ganger. Folk gjør feil, og svært ofte er det verste som skjer at ting er nede litt eller at man må rulle tilbake fra backup. Tenk over hva du gjør (forrige punkt – det å leke med dørsystemet midt under UKA bare fordi du har lyst er kanskje ikke en kjempeidé :-) ), men ikke la være å gjøre noe du faktisk mener er (semi-)fornuftig bare fordi du er redd for at noe skal gå galt. Hvis du er usikker, få noen til å hjelpe eller rett og slett bare se på og passe på at du ikke gjør noe som er helt på tur.

Teknisk rundtur

Denne delen er som sagt mest av alt beregnet på folk som allerede har en del teknisk kunnskap; det er ikke forventet at nyere ITKere skal vite hva alle mulige rare buzzwords er. Det er stort sett hele veien forsøkt å linke videre til relevante steder i referansedokumentasjonen.

ITKs systemer kan deles opp i tre hoveddeler (eller flere eller færre, avhengig av dagsform): Nettverk, serversystemer og annet rask.

Nettverk

Nettverk er kanskje den greieste og mest oversiktlige delen av det ITK driver med kompleksitetsmessig – og kanskje den mest kaotiske fysisk sett. Samfundet har gigabit TP-nett stort sett overalt på Huset (man har ikke lenger noen coax-sløyfer) ofte gjennom ymse kriker og kroker. Det trekkes alltid doble kabler (som kommer på ruller, og vi terminerer selv) ut til gjengene, som så ender opp i telematikkrommet (som bærer navnet Anette) utenfor ITK i gangen på nordre sideloft. Her ender de stort sett i en god bunke HP- og Cisco-switcher (stort sett Cisco 2960-S/2960-X), som igjen hver 2x1Gbit til Cisco-switchen merete. merete har 10gig-linen vår til UNINETT via singlemode fiber og står for annonsering av Samfundets IP-adresser m.m. opp mot UNINETT, samt gigabitlink over til Trafon, der man har et tilsvarende nettoppsett med 100Mbit TP og en grenswitch. Svitsjenes navnerom er for øvrig de forskjellige utgaver av TV-produksjonen Svisj på NRK (med unntak av merete, som er oppkalt etter Merete, og PoE-switchene james og nikola som er oppkalt etter James og Nikola).

I tillegg har Samfundet et trådløsnett (se WLAN) som er åpent for alle medlemmer. Dette er stort sett basert på å ha så lite logikk som mulig i selve basestasjonene, og heller ha en beskyttelse lenger bak. Vi har ca. 30 basestasjoner som er koblet i james og nikola, spesielle switcher som kan gi strøm over TP-kabelen (PoE), som igjen er koblet videre i WLAN-kontrolleren merkdem og tjeneren altersex. Vi har to forskjellige trådløsnett, «Samfundet» og «Samfundet.1x». Sistnevnte er kryptert og autentiserer automatisk ved tilkobling (via FreeRADIUS) men krever en del oppsett på klientsiden. De fleste bruker derfor «Samfundet». På «Samfundet»-nettet kjører vi ingen form for kryptering eller aksess-sperre på selve trådløsnettet. I stedet må man gjennom en såkalt «captive portal» – første gang man prøver å aksessere en vilkårlig nettressurs vil man bli videresendt videre til et webgrensesnitt på altersex (se under), som krever brukernavn og passord (som autentiseres mot medlemsdatabasen) og deretter åpner den gitte MAC-adressen i 24 timer. (Dette er helt klart sårbart mot MAC-spoofing, men det er en risiko man er villig til å ta.)

Serversystemer

Serversystemer dekker over et ganske bredt spekter av det ITK gjør, inkludert omtrent alt av programvaredrift. Man har gjerne én serveransvarlig med overordnet ansvar for serverdriften, men de aller fleste ITKere vil få en eller annen kontakt med serverdrift på et eller annet tidspunkt. Samtlige servere står i Anette, i rack. De mest kritiske, samt switchene, står også på UPS.

Vi har standardisert på to plattformer: Debian GNU/Linux og Microsoft Windows. De aller fleste tjenester kjører på Debian, men det er også en del som krever Windows, så ITK er nødt til å ha kompetanse på begge.

En av de viktigste tjenestene ITK har ansvaret for, er filtjeneren cassarossa (de fleste serverne er oppkalt etter UKEnavn – «Cassa Rossa» var UKA 1929), som kjører Debian. Denne deler ut filer via NFS (til Linux- og evt. andre UNIX-klienter) og Samba (til Windows og Mac OS X). cassarossa har også ansvar for et relativt bredt spekter av tilhørende tjenester – den er sentral printtjener (via CUPS og igjen Samba), den er tidstjener (via NTP og Samba), den leverer epost (via Exim, med clamav, SpamAssassin og greylisting – se MailIntern) og lar folk lese den (over IMAP, via dovecot), den er innloggingstjener for folk som ønsker å lese epost via pine/mutt eller bruke andre UNIX-tjenester, og den er sentral host for puppet. Som epost-maskin huser den også logisk systemene for epostlister, derunder AMSIT (Administrasjon av Mailinglister for Studentersamfundet I Trondhjem, vårt eget lettvekts-epostlistesystem) og Mailman (for litt «tyngre» lister, med mer funksjonalitet som f.eks. listearkiver og postebegrensninger).

cassarossa er også webserver for noen ytterst få andre tjenester, som Request Tracker (systemet ITK, MG-web (Markedsføringsgjengen – de som lager Samfundets websider o.l.) og KK (Kontrollkontoret, de som besvarer henvendelser i luka o.l.) bruker for å holde orden på innkommende saker på epost) og for loginscriptene for Samba (som genereres automatisk ved innlogging). cassarossa har en god bunke disker i RAID-5 (noe 15000rpm SAS, noe 7200rpm SATA), og hver av gjengene har sin egen partisjon via LVM2, med fellesfiler for gjengen, webområde og private filer for hvert enkelt gjengmedlem. cassarossa er sammen med cirkus definitivt den viktigste produksjonstjeneren i ITKs tjenermiljø, og man har en policy på at alle synlige endringer for brukere (som f.eks. omstarter) skal varsles minst et døgn i forveien (helst to) via epost til listen info@samfundet.no; se Serverrutiner.

Det meste av produksjonstjenester som ikke ligger på cassarossa, ligger på cirkus, en annen Debian-boks. En av cirkus' hovedoppgaver er å være webserver – de fleste stedene hentes via NFS fra cassarossa, men noen få kritiske (som www.samfundet.no og billig.samfundet.no) ligger lokalt på maskinen slik at ikke kritiske websider skulle gå ned selv om cassarossa skulle gjøre det. Som webserver brukes Apache, med mpm-itk, et egenlaget system for å sørge for at hver webside kjøres som forskjellige brukere (slik at ikke hvilken som helst brukers hjemmeside har tilgang til database-passordene for f.eks. www.samfundet.no), og Varnish foran slik at ting går kjapt. cirkus er innloggingsbegrenset (via en ITKACL – se noen avsnitt lenger ned for mer informasjon), slik at kun de som faktisk har bruk for tilgang på den (dvs. ITK, MG-web samt noen andre) får logge inn. cirkus er også databasetjener, med PostgreSQL. Fascinerende mange av ITKs tjenester er avhengige av databaser. cirkus er òg DNS-tjener for samfundet.no, uka.no og en del andre soner, samt DHCP-tjener for hele Samfundets lokalnett og trådløsnett. Legg merke til at ITK ikke har noe med innholdet på www.samfundet.no å gjøre; det er det MG-web som har.

Den tredje viktige produksjonstjeneren er voff, som er AD DC (Active Directory-domenekontroller, som kjører Samba 4). voff kan kun logges inn på fra cirkus og cassarossa, og skal av sikkerhetsårsaker kun være DC. Nesten alle tjenester på Samfundet som krever autentisering eller bruker-/gruppeinformasjon er etter hvert faset over på AD, og KDCen er da et naturlig veldig viktig å holde orden på. voff er den eneste tjeneren som ikke er oppkalt etter UKEr, men etter Kerberos' rolle i gresk mytologi (AD bruker Kerberos-protokollen til autentisering).

En tjener som ikke er produksjonstjener på samme måte (men fortsatt kjører Debian) er altersex (igjen oppkalt etter et UKEnavn). altersex huser Samfundets sentrale musikkarkiv og programvaredistribusjon. (Det hoster også egentlig et lokalt Debian-speil, men dette er tatt over av en privatboks for tiden.) altersex er en tjener som er vesentlig mindre viktig enn cassarossa, cirkus og voff (se under), og er derfor et utmerket sted å prøve ut nye og mer eksperimentelle tjenester før de eventuelt fases over på cirkus og cassarossa. (Det er fremdeles ikke veldig populært om du brekker boksen, men hvis du skal brekke en boks, brekk for all del altersex og ikke en annen. Kommunikasjon er dog som alltid anbefalt :-) ) altersex er WLAN-router for det trådløse nettet (se delen om nettverk) og IPv6-router for de som skulle ønske å route et IPv6-nett hjem e.l., da primært via kvadratsky, en hjemmelaget tunnelbroker med redundans og alt.

Boksen okkupasjon (oppkalt etter det som i listen over UKEnavn var UKA i -43 og -45) er ansvarlig for å ta imot kredittkortinformasjon og kommunisere med betalingsformidleren vår. Den har et eget og særlig sikkerhetsregime, og er sertifisert iht. PCI DSS-sertifisering. okkupasjon er kun nødvendig for Billig, billettsystemet, men regnes likevel for å være en viktig server.

(Denne delen er utdatert, noen med Windows-fu får skrive noe lurt om fandango.) Den siste viktige tjeneren er skrue. skrue kjører Windows, ettersom dette er påkrevet for Visma (regnskapssystemet man bruker på Samfundet) og Mandarin (kassesystemet i barene). skrue kjører Microsoft SQL Server (siden Visma krever det) og er dessuten terminaltjener for gjengene på Samfundet som har behov for å kjøre Visma (det er ofte den greieste løsningen, framfor å installere Visma lokalt på maskinen).

ITK har dessuten én tjener som ikke står på Samfundet, nemlig backupboksen kolje. Denne står på Trafon, slik at man skulle ha backup også dersom Samfundet skulle brenne ned e.l.. kolje tar backup via et egenutviklet minimalt script som ssh-er seg inn til hver maskin (den har SSH-nøkkel til root på alle bokser som trenger backup) og lager enkle .tar.gz-filer (fullbackup hver måned, inkrementell backup hver natt, og lagring av data tre måneder tilbake). kolje har SATA-disker i bøtter og spann i RAID-6, og har litt over 21 TB effektiv diskplass. kolje tar også backup av noen andre servere, samt at den tar kryptert backup av voff og okkupasjon (den har ikke root-tilgang til disse, kun tilgang til en spesiell konto som kan starte et script via sudo; dette scriptet dytter ut en backup av sikkert som er kryptert til noen få ITKeres GPG-nøkler). kolje tar dessuten backup av skrue (via et annet backupscript).

Under serverdrift kommer også tildels diverse systemer ITK har ansvar for. Et av de aller viktigste er Samfundets medlemsdatabase, til vanlig bare kalt MedlemsDB eller MDB. (Den referes også til som MDB2, som er noe misvisende all den tid den egentlig er tredje- eller fjerdegenerasjons medlemsdatabase på Samfundet.) Denne er i bunn en PostgreSQL-database med et PHP-grensesnitt. Medlemsdatabasen huser alle Samfundets medlemmer, gjengmedlemmer såvel som ordinære medlemmer. Gjengsjefene legger selv inn hvilke personer de har tatt opp i sin gjeng, og ut fra dette gis det automatisk nøkkelkorttilgang via noen Perl-script (aka Kortsys), som eksporterer data til et Windows-basert system som heter ARX, og kjører på boksen deke-du, virtualisert på maskinen domino. MDB er også ansvarlig for ting som å sende ut informasjon til alle Samfundets medlemmer, holde orden på hvem som har stemt ved valg i Storsalen (der ITK opererer valgsystemet) og synkroniserer Active Directory-gruppetilhørighet (på voff) med faktisk gjengtilhørighet.

Samfundet har også sitt egenutviklede billettsystem, Billig. Det er delt i fire (eller flere) deler: En database som kjører på cirkus, med egnet administrasjonsgrensesnitt (på billig.samfundet.no) der man bl.a. kan legge til nye arrangementer og selge papirbilletter (via egne billettskrivere), en brukerfrontend (del av www.samfundet.no, laget av MG-web) som selger billetter rett til folk, en tjener for å snakke med betalingsløsningen vår (på billettsalg.samfundet.no, på maskinen okkupasjon) og en innslippsdel i form av billettmaskiner som står ved inngangene når det er konsert og scanner folks billetter og medlemskort (ettersom man kan legge billetter på kort om man skulle ønske).

Et litt mer perifert, men allikevel viktig system, er RoBoKop, rombookingssystemet for Samfundet. Dette opereres primært av Kontrollkontoret og en del andre utvalgte personer, og brukes til å sørge for at man ikke dobbeltbooker rom e.l..

I bunn for nesten all autentisering har man utviklet et eget system som heter ITKACL – dette består enkelt sagt av AD/Kerberos (for å verifisere brukernavn og passord på en sikker og enhetlig måte) og et minimalt system for aksesslister. Nesten alt av websystemer blir etter hvert faset inn på ITKACL – dette sørger for at brukere bare trenger å huske ett passord, gir muligheter for «single sign-on» (brukere trenger bare å skrive inn passord én gang og får så automatisk tilgang til alle systemer han/hun har tilgang til) og gjør det mye enklere å vedlikeholde passordlister o.l. over tid. ITKACL brukes også til å begrense tilgang til innloggingstjenere, til all tilgangskontroll i medlemsdatabasen og en del andre systemer.

Under serversystemer kommer i tillegg som tidligere nevnt Request Tracker, et kombinert epost/web-system for å håndtere inn- og utgående epost og saker. Dessuten har du ITKs wiki, som du antageligvis sitter og leser nå, som sørger for å dekke ITKs dokumentasjonsbehov; det er over seksti slike wikier i drift, derunder Samfundets wiki. Ellers finnes kuriositeter som Traske og mer interne systemer som Munin og Windowsinstallasjonssystemet SUWI7.

Andre tjenester

Selv om fysisk nett og servertjenester er de delene som får mest oppmerksomhet og tar mest ressurser, er det mange andre tjenester som også er viktige. Den definitivt synligste delen av dette er at ITK driver support ut mot gjengene, både på egnes og gjengenes systemer.

Gjengene har overveiende Windows-arbeidsstasjoner som de har ansvaret for selv, som oftest med en egen IT-ansvarlig per gjeng. Nesten alle arbeidsstasjoner på Samfundet står på Samba-domenet ad.samfundet.no (også kalt SAMFUNDET), hvilket gjør at hvem som helst med Samfundet-konto automatisk får tilgang til å logge inn og aksessere filene sine (samt gjengens fellesfiler o.l.). Hvis gjengene trenger teknisk support, reinstallasjon eller annen hjelp med en av arbeidsstasjonene sine, kan de kontakte ITK, som så hjelper til etter beste evne – ofte ved reinstallere maskinen ved hjelp av SUWI7, et egenutviklet autoinstallasjonssystem og oppdatere programvare på dem (via WPKG). ITK har også ofte en del hardware liggende til utplassering der det er nødvendig.

ITK har også noen egne egne arbeidsstasjoner, som står i 4. etasje. Disse kjører Debian, og har et etter hvert relativt standardisert ITK-oppsett (se ArbeidsstasjonsInstallasjon). Alle maskinene henter konfigurasjon og en del andre filer via puppet.

ITK setter også ut musikkmaskiner i barene til gjenger som måtte ønske dette – disse er også Debian-baserte, og som oftest basert på gammel hardware man ikke har bruk for noe annet sted. Det er omsider utviklet et enhetlig system for utrulling og administrering av musikkmaskiner.

Oppsummering

Som du ser, driver ITK med mye forskjellig, og det er absolutt ikke forventet at du skal kunne alt etter en uke. Den enkleste måten å lære noe på er som regel å hoppe i det; se deg litt rundt i systemene du er interessert i, lek litt med dem, sett evt. opp et «skyggesystem» så du kan gjøre endringer i et system som ikke er så farlig, spør folk som har jobbet mye med systemet o.l.. De som er eldre enn deg er der ikke for alltid, og kanskje den nyttigste ressursen du noensinne vil ha. Og husk: Det å være aktiv i en gjeng på Samfundet, er mye jobb, men allikevel først og fremst moro! :-)

Lenker: Start

Mail: itk@samfundet.no | Telefon: 992 15 925 | Sist endret: 2017-06-11 11:42 | Revisjon: 32 (historie, blame) | Totalt: 1469 kB | Rediger