24
Konfigurasjonsstyring, automatisering, endringskontroll og overvåking Jarle Bjørgeengen University of Oslo / USIT November 9, 2011

Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Konfigurasjonsstyring, automatisering,endringskontroll og overvåking

Jarle BjørgeengenUniversity of Oslo / USIT

November 9, 2011

Page 2: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Agenda

Om USIT

Motivasjon / bakgrunn

Automatisering

Tilordning av roller til maskiner

Overvåking

Page 3: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 4: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 5: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 6: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 7: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 8: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 9: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 10: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 11: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 12: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Cfengine - konfigurasjonsstyring

Page 13: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Cfengine - konfigurasjonsstyring

Page 14: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. 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

Page 15: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.

Page 16: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Oversiktsbilde

Page 17: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Demo-video

Page 18: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 19: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

KOJI tags / targets

Page 20: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 21: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 22: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

Roller illustrert

Page 23: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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

Page 24: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring

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.