Upload
others
View
10
Download
0
Embed Size (px)
Citation preview
Konfigurasjonsstyring, automatisering,endringskontroll og overvåking
Jarle BjørgeengenUniversity of Oslo / USIT
November 9, 2011
Agenda
Om USIT
Motivasjon / bakgrunn
Automatisering
Tilordning av roller til maskiner
Overvåking
Nøkkelopplysninger om USIT
I Tjenesteleverandør for Universitet og Høgskolesektor.I Tett samarbeid med Uninett om nasjonale oppgaver.I Ca. 50 000 fil, print, e-post og web-app brukere ved UiO,
med forskjellige privilegier .I Utv. og drift av FS/Studentweb: benyttes Universiteter og
Høgskoler.I Utv. og drift av Cerebrum: gruppemedlemskap, DNS,
autorisering, import. og eksport.
Nøkkelopplysninger om USIT
I Utv og drift av den nasjonale autentiseringstjenesten"Moria".
I Drift av DB, file og e-post for Classfronter i Norden.I Tier 1 lagring for LHC i Cern.I Drift av flere HPC-klynger til forskning og tallknusing.I Preferanse for fri programvare og åpne standarder
Motivasjon / bakgrunn / perspektiv
I Vi leverer infrastruktur.I Maskiner, nett, lagring, redundans, skalering = infrastrukturI Hvorfor trenger vi dette ?I For å kjøre tjenester / applikasjoner for brukere.I Applikasjoner trenger ressurser for å virke.I Brukeropplevelsen blir dårlig hvis applikasjoner ikke virker.I For bedrifter: tap på bunnlinjen: tapt tid er tapte penger.
Motivasjon / bakgrunn / perspektiv
I Kost/nytte vurdering:I skalering, redundans, kompleksitetI ...vs...I viktighet
I Systemadministrasjon involverer mange forskjelligeoppgaver.
I Det er mange innfallsvinkler til oppgavene.I Vår er å automatisere så mye som mulig
Hvorfor automatisere ?
I Manuell drift har noen ulemper
I KJEDELIG - Hvorfor ikke la maskiner gjørede kjedelige oppgavene
I Høy sannsynlighet for feilI Skalerer ikkeI Lang leveransetid på endringer.
I Automatisering krever
I Tid til å utvikle fremfor å slukke branner.I Langsiktig satsningI Større kostnad i starten.I Eneste mulighet for oppnå stabilitet og skalering når miljøet
vokser.
Hvorfor automatisere ?
I Manuell drift har noen ulemperI KJEDELIG - Hvorfor ikke la maskiner gjøre
de kjedelige oppgaveneI Høy sannsynlighet for feilI Skalerer ikkeI Lang leveransetid på endringer.
I Automatisering krever
I Tid til å utvikle fremfor å slukke branner.I Langsiktig satsningI Større kostnad i starten.I Eneste mulighet for oppnå stabilitet og skalering når miljøet
vokser.
Hvorfor automatisere ?
I Manuell drift har noen ulemperI KJEDELIG - Hvorfor ikke la maskiner gjøre
de kjedelige oppgaveneI Høy sannsynlighet for feilI Skalerer ikkeI Lang leveransetid på endringer.
I Automatisering kreverI Tid til å utvikle fremfor å slukke branner.I Langsiktig satsningI Større kostnad i starten.I Eneste mulighet for oppnå stabilitet og skalering når miljøet
vokser.
Verktøy vi bruker ifm. automatisering
I Cfengine - Modell-drevet konfigurasjonsstyringI Script - shell / perlI PXE-boot - Pre-boot eXecution EnvironmentI Kickstart - Automatisert installasjon av RedHat ELI Git / svn - RevisjonskontrollI Gerrit - Endringskontroll og kode-vurdering (Cfengine)I Koji - byggesystem for rpm-pakker.I Jenkins - Automatisk testing av ny kode (Cfengine).I Kommer: Host-policy / roller i Cerebrum.
Cfengine - konfigurasjonsstyring
I Eget språk som uttrykker løfter om tilstand (policy)I Cfengine-komponenter leser løftene ...I .. og beholder systemet i beskrevet tilstand.I Hvert løfte verifiseres og repareres om nødvendig.I Sjekkes default hvert 5 minutt.I Veldig lav ressursbruk ved sjekking.I Community = fri. Nova = komersielle utvidelser
Cfengine - konfigurasjonsstyring
Cfengine - konfigurasjonsstyring
PXE / Kickstart
I Boot stack innebygget i nett-kortets firmwareI Maskin får IP fra DHCPI Kjerne og initiell ramdisk lastes over tftpI Kjerne booter og får IP på nytt fra DHCP.I Installer starter og leser kickstart-fil.I Maskinen installeres med bl. a. Cfengine bootstrapI Cfengine laster ned resten av konfigen
og konvergerer maskinen til beskrevet tilstand.I Maskin er klar til bruk
Endringskontroll / git / gerrit / jenkins
I Cfengine-kode vedlikeholdes i GerritI Gerrit:
I Kommer fra Android-prosjektetI Lar ikke-overlappende endringer flyte parallelt uavhengig.I Egen ssh-server, web-server, og git-implementasjonI git clone ssh://cfengine-scm.uio.no:29418/cfengine/UnixI git push origin ref HEAD:refs/for/masterI Endring testes automatisk av jenkinsI Vurdering av endring med kommentar i web-gui.I Publisering og produksjonssetting av endring.
Oversiktsbilde
Demo-video
Egen programvare: KOJI
I Brukes til å bygge Fedora og RHELI Bygging og release-håndtering av rpm-pakker.I Utrulling av pakker til yum-repo.I Cfengine sørger for at pakker er installert ...I .. gitt at de er tilgjengelig via yumI KOJI sørger for at de er tilgjengelig via yum
KOJI tags / targets
KOJI tags / targets
I kilde-filder og .spec-fil vedlikeholdes i git-repoI Tilgang til git-rep administreres vha. gitosisI Autentisering med ssh-nøklerI Bygging av nye versjoner med koji kommandoerI Koji autentiserer med ssl (x509) sertifikater.I koji build <build-target>
git://<git-server>/<repo-navn><commit-id>I koji koji move-pkg uio-el6-free-testing uio-el6-free
uio-thunderbird-3.1-3.el6
Host-policy modul i cerebrum
I Vi har allerede et maskinregister for registrering avdns-navn.
I Ny modul for å knytte maskinroller (policy) kommer snart.I Eksempelvis:
I web-serverI samba-serverI fysikk-maskinI oracle-server
I Atomer definer hva som skal gjøresI Roller inkluderer atomer og andre rollerI Roller defineres ut fra hvor de er relevant.I Roller knyttes til maskiner i cerebrum.I Roller blir til klasser i CfengineI Automatisk generert dokumentasjon for policy
Roller illustrert
Overvåking: Nagios
I Gir beskjed hvis noe ikke er som det skalI Kjører aktiv sjekk-kommando hvert 5 minuttI Hvilke sjekker som kjøres detekteres automatiskI Cfengine genererer roller som definerer om en maskin skal
overvåkes og hvordan.I Eksempler:
I hw-overvåking (forskjellig avhengig av leverandør)I kritiske prosesesserI Fyllingsgrad av filsystemerI Filsystem-kvoterI Nettverksinterface (bonding)I Cluster statusI Manglende backup
Overvåking: Collectd
I Samler inn ytelsesdata og lagrer i rrd-filer og csv-filerI Forskjellige grafe-verktøy for å visualisere data
I collectd-webI graphiteI visage-appI rrdtool graph
I Cfengine konfigurerer collectd hvis de er registrert itjenesteregisteret.