a virtualizáció esete a puppettal

35
@janoszen www.janoszen.com @neticle_hu www.neticle.hu A Puppet és a Virtualizáció

Upload: janos-pasztor

Post on 25-Dec-2014

372 views

Category:

Technology


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

A Puppet és a Virtualizáció

Page 2: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Mit csinál a Neticle?

Page 3: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Szövegelemzés

Page 4: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Trendfigyelés

Page 5: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Partnereink

Page 6: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Miről lesz ma szó?

● A virtualizálás problémája?

● Miben segít a konfiguráció-menedzsment?

● Mit tud a Puppet?

● A Puppet alapjai

● Puppet üzemeltetés

● Bónusz

Page 7: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Régen

Page 8: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Most

Page 9: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Az automatizáció segít

Page 10: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Röviden a Puppetről

● Saját nyelv (DSL)

● Több féle üzemeltetési módot támogat

● Kiváló dokumentáció

● Multiplatform (Windows is)

● Open Source, support a PuppetLabs

Page 11: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Tipusok

● File erőforrás:

file { "/etc/sudoers": ensure => present, mode => 0644, source => "puppet:///modules/sudo/sudoers"; }

Page 12: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Tipusok

● User erőforrás létrehozása:

user { "janoszen": ensure => present, password => "*", uid => 1000, gid => 1000, shell => "/bin/bash"; }

Page 13: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Tipusok

● Csomag telepítése:

package { "mc": ensure => present; }

Page 14: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

További beépített tipusok

● Exec● Nagios● Hosts file● Mount● Service● És még rengeteg egyéb:

http://docs.puppetlabs.com/references/latest/type.html

Page 15: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Saját tipusok

define users::account( $password = "*", $sshkeys = [], $ensure = "present" ) {

user { $name: ensure => $ensure, password => $password }

Page 16: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Saját tipusok

file { "/home/${name}/.ssh/authorized_keys": ensure => $ensure, owner => $name, content => template( "modules/users/authorized_keys.erb" ), require => User[$name]; }

}

Page 17: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Osztályok

● Resource-ok gyűjteménye, hasonlít a define-ra.● Egy osztályból csak egy lehet!

class server {}

class server::db inherits server {}

Page 18: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Osztályok használata

include server::db

vagy

class { "server::db": ; }

Page 19: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Paraméterezett osztályok

class uptrack ( $accesskey ) { }

class { "uptrack": accesskey => ""; }

Page 20: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Node classification

● Hostnév alapján:

node /^db([\d]+)\./ { include server::db }

● Külső forrásból (LDAP, MySQL, stb):http://docs.puppetlabs.com/guides/external_nodes.html

Page 21: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Facter – A gép tulajdonságai

● Hostname, domain, FQDN, IP cím

● Operációs rendszer, release

● Kernel verzió

● is_virtual

● Szabadon bővíthető minimális Ruby tudással.

Page 22: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Puppet futtatás

● Standalone (puppet apply)

● Puppetmaster

● Mcollective

Page 23: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Standalone használat

● Létrehozunk egy puppet könyvtárat (jellemzően git clone)

● Lefuttatjuk a site.pp filet:

puppet apply "/etc/puppet/manifests/site.pp"

Page 24: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Puppetmaster

● Központi helyen készített manifestek

● Reportok gyűjtése

● Dashboard

● Gépek közötti összefüggések (exportált erőforrások)

Page 25: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Puppet agent

● Szereti a RAM-ot

● Ezért érdemes cronból futtatni

Page 26: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Exportált erőforrások

@@nagios_service { "${hostname}-http": use => "generic-service", check_command => "check_http_alive", service_description => "HTTP Connectivity", host_name => "${hostname}", notify => Service['icinga'], tag => "monitor01"; }

Page 27: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Erőforrások importálása

Nagios_service <<| tag == "${hostname}" |>>

● Bővebben: http://docs.puppetlabs.com/puppet/latest/reference/lang_exported.html

Page 28: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Mcollective

● Masszív méretű deploymentek (több ezer node) esetén érdekes.

● Nem tárgyaljuk.

Page 29: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Bónusz

Page 30: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Hiera - az adattároló

● Elkülöníti az értékeket a konfigurációtól.● YAML, JSON vagy egyéni backend● Példa:

network: eth0: auto: true address: 188.227.224.3 netmask: 255.255.224.0 broadcast: 188.227.224.15 gateway: 188.227.224.14

Page 31: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Hiera használat

● Egyszerű adattömb lekérdezés:

$valtozo = hiera('kulcs')

● Erőforrások ciklikus létrehozása:

$myvhosts = hiera('apache::vhosts') create_resources('apache::vhost', $myvhosts)

Page 32: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Augeas

● Konfigurációs fájlok hierarchikus címzése.

augeas { "test1": context => "/files/etc/sysconfig/firstboot", changes => "set RUN_FIRSTBOOT YES", onlyif => "match other_value size > 0",}

Page 33: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Puppet Forge

● Kész Puppet modulok tömkelege.

puppet module install puppetlabs-apache --version 0.0.2

● Óvatosan!

Page 34: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Demo

https://github.com/neticletechnologies/puppet-demo

Page 35: A Virtualizáció esete a Puppettal

@janoszen www.janoszen.com @neticle_hu www.neticle.hu

Stalking lehetőségek

Pásztor János Neticle Technologies

Ikonok: http://www.iconarchive.com/show/social-networks-pro-icons-by-artbees.html

www.janoszen.com

@janoszen

fb.com/janoszen

youtube.com /user/janoszen

blog.neticle.hu

@neticle_hu

fb.com/neticle