Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av...
Transcript of Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av...
![Page 1: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/1.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/2.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/3.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/4.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/5.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/6.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/7.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/8.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/9.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/10.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/11.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/12.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/13.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/14.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/15.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/16.jpg)
Oversiktsbilde
![Page 17: Konfigurasjonsstyring, automatisering, endringskontroll og … · I Jenkins - Automatisk testing av ny kode (Cfengine). I Kommer: Host-policy / roller i Cerebrum. Cfengine - konfigurasjonsstyring](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/17.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/18.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/19.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/20.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/21.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/22.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/23.jpg)
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](https://reader035.fdocument.pub/reader035/viewer/2022071214/60435a521951185e7052ede6/html5/thumbnails/24.jpg)
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.