munki & puppet @ finmacadmin 2014
TRANSCRIPT
munki, puppet ja koneiden hallintaJussi Uosukainen, tekninen johtaja
mcare oy•Apple Premium Service Provider •Toimintaa maanlaajuisesti
•Helsinki •Tampere •Lappeenranta •Oulu
•Mac- ja iOS huolto •16 huoltoteknikkoa
Helsinki Tampere
Oulu Lappeenranta
mcare pro oy•Suomen suurin Apple-tuotteisiin
erikoistunut palveluyritys •Toiminta alkaa täysipainoisesti
1.4.2014 •14 asiantuntijaa •Helsinki, Tampere ja Lahti
PRO
mac-ylläpito•Perinteisesti tuntipohjaista,
reaktiivista toimintaa •hyvin toimiessaan kaikki ovat
tyytyväisiä •sisäänrakennetut valuviat • rahaa vain kun on ongelmia •pitkäjänteinen suunnittelu
hankalampaa • tehdään paljon töitä käsin, jotka
voisi automatisoida
mac-hallinta•kaupallisia vaihtoehtoja •300 koneen kohdalla hintalaput
käyttöönottoineen 15000-20000e !
!
•Uudet Open Source vaihtoehdot •Ei lisenssimaksuja -> skaalautuu • loistava tukiverkosto •OSS FTW!
munki - mutta miten•Linux palvelimet !
•Pilvipalveluna !
•Puppet !
• Integraatiokokemus: Hannes Juutilainen / Jyväskylän yliopisto
munki•pakettien hallintatyökalu •alkuperäinen ajatus: Greg Neagle,
Walt Disney Studios •palvelin-asiakas rakenne:
•palvelimella säilytetään paketteja ja ohjaustiedostoja •koneella root-tunnuksilla
pyörivä asiakasohjelmisto !
•ei standardia GUI:ta palvelimella
munki - palvelin•palvelimella repositoryssa:
•asennettavat ohjelmistopaketit (pkgs) •ohjelmistopakettien määrittelyt
(pkgsinfo) •ohjelmistokokoelmat (catalogs) •asiakaskonemäärittelyt
(manifests)
munki - asiakas•python-scripti, joka väliajoin käy
kysymässä palvelimelta manifestin sisällön • lataa tarvittaessa paketit
palvelimelta •asentaa paketit joko hiljaisesti, tai
tarjoaa käyttäjälle asennettavaksi •Managed Software Update.app
mahdollistaa itsepalvelun !
munki - paketit•paljon mahdollisuuksia asetuksille: •ajastetut asennukset •asennuksen poisto •preflight/postflight skriptit •pakotetut asennukset •hiljaiset asennukset
•epästandardit asentajat saattavat olla ongelma -> erilaiset download, loginhook-viritelmät
munki - hallinta•munki itsessään on puhdas
komentorivityökalu •hallintatyökaluja •munkiwebadmin •munkiadmin •SAL
•yhdistetty raportointiominaisuuksia (postflight-skriptejä) •versiointi, hallinta -> Git
puppet!
• linux-palvelinten hallintaan kehitetty alusta •vahvasti Ruby-painotteinen •määritellään tavoitetila
puppet - facter•yksinkertainen tiedon kerääjä • tulee vakiofaktojen kanssa joka
alustalle • laajennettavissa omilla skripteillä • tiedot tallennetaan puppetdb-
tietokantaan
puppet - facter - faktojamac_crashplan_destination_0_date 2014-03-20 17:26:10
mac_crashplan_destination_0_name server02
mac_crashplan_enabled True
mac_last_kernel_panic_date 2014-03-08 09:57:11
mac_startupdisk_busprotocol PCI
mac_startupdisk_content Apple_HFS
mac_startupdisk_deviceblocksize 512
mac_startupdisk_deviceidentifier disk1
mac_startupdisk_devicenode /dev/disk1
mac_startupdisk_filesystemname Journaled HFS+
mac_startupdisk_filesystemtype hfs
mac_startupdisk_freespace 316.3 GB
mac_startupdisk_freespace_bytes 316299956224
architecture x86_64
clientcert 7831c1b851f6
clientnoop false
clientversion 3.4.3
facterversion 1.7.5
hardwareisa i386
hardwaremodel x86_64
hostname retinacore
id root
interfaces lo0,gif0,stf0,en0,en1,en2
ipaddress 10.0.1.71
ipaddress_en0 10.0.1.71
ipaddress_lo0 127.0.0.1
mcare - ympäristö•asiakaskohtainen asentaja
asentaa puppetin, facterin, munki-työkalut ja oman curlin •puppet avaa yhteydet palvelimelle,
munki käyttää samaa SSL-certiä • jokainen kone käyttää omaa
munki-manifestia •apache-säädöillä koneelle
tarjoillaan joko kone- tai asiakaskohtainen manifesti
mcare - ympäristö•kaikille yhteinen common-
repository •sisältää selaimet ja laajennukset,
kaikille yhteiset ohjelmat • liitetään manifesteillä kaikkiin
ympäristöihin •autopkg-automaatio hoitaa
ohjelmistojen päivittämisen mahdollisimman helposti
mcare_base
munki_base puppet_base software_base
asiakaskohtainen manifesti
konekohtainen manifesti
mcare - ympäristö•kaikki asetukset menevät github-
repositoryn kautta •muutokset seurattavissa,
jaettavissa •paketit paikoilleen esim rsync-
skriptillä • repositoryn editointi esim.
MunkiAdminin avulla
Munkireport
Munkireport
mcare - ympäristön kehityskohteet•Dashboardin vaihtaminen -> SAL •Puppetin hyödyntäminen myös
hallintaan •uuden OS X version parempi
testaus • integraatio sisäisiin järjestelmiin
(inventaario, tiketöinti)
Lähteet, tuotteet, linkit•Puppet •Esittely, perusteet: •http://docs.macsysadmin.se/2011/pdfs/Puppet-Automation_Matters.pdf
•http://puppetlabs.com/ •http://puppetlabs.com/facter !
!
•http://fi.upcloud.com/ •https://github.com/
Lähteet, tuotteet, linkit•Munki: •Esittely, perusteet @gneagle: •http://docs.macsysadmin.se/2011/pdfs/
Pushing_Packages_with_Munki.pdf •https://code.google.com/p/munki/ •https://github.com/autopkg/autopkg •https://github.com/hjuutilainen/munkiadmin •https://github.com/munkireport/munkireport-php •http://grahamgilbert.com/blog/2014/01/17/sal-the-munki-puppet/
•Jussi Uosukainen+358500968036 • [email protected] •https://twitter.com/juosukai
Kontakti
Kiitos!