getting started with puppet by chad metcalf wibi data

28
PROJECT DATE CLIENT 01/18/13 PUPPET CAMP SILICON VALLEY Getting StarteD W/ Puppet Chad Metcalf - @METCALFC

Upload: buildacloud

Post on 31-Oct-2014

437 views

Category:

Technology


1 download

DESCRIPTION

Getting Started with Puppet by Chad Metcalf Wibi Data

TRANSCRIPT

Page 1: Getting Started with Puppet by Chad Metcalf  Wibi Data

PROJECT

DATE CLIENT01/18/13 PUPPET CAMP SILICON VALLEY

Getting StarteD W/ PuppetChad Metcalf - @METCALFC

Page 2: Getting Started with Puppet by Chad Metcalf  Wibi Data

Infrastructure Engineer @ WibiDATA4 Years using Puppet - Build and RElease - Hadoop/HBase - InfraStructure - Operations

Page 3: Getting Started with Puppet by Chad Metcalf  Wibi Data

PUPPET ECOsystemGetting Bigger EVERYDAY

Page 4: Getting Started with Puppet by Chad Metcalf  Wibi Data

Learning Puppet VMStarting as fast as you can download 580 megs

Page 5: Getting Started with Puppet by Chad Metcalf  Wibi Data

Which Puppet DistributionIt is a lot like sushi

Page 6: Getting Started with Puppet by Chad Metcalf  Wibi Data

Which Puppet DistributionYou can roll your own to varying degrees of success

Page 7: Getting Started with Puppet by Chad Metcalf  Wibi Data

Which Puppet DistributionYou can go to your favorite mega-mart and get some packaged awhile ago along with some fried Chicken

Page 8: Getting Started with Puppet by Chad Metcalf  Wibi Data

Which Puppet DistributionOr you can go to an actual sushi joint

Page 9: Getting Started with Puppet by Chad Metcalf  Wibi Data

Puppet Open Source vs Puppet EnterpriseSame Great Taste

Page 10: Getting Started with Puppet by Chad Metcalf  Wibi Data

EXTERNAL NODE ClassifierFOREMAN - Puppet DASHBOARD - PUPPET ENTERPRISE CONSOLE - Roll YOUR OWN

Page 11: Getting Started with Puppet by Chad Metcalf  Wibi Data

PuppetDBstoreconfig and inventory service storage

Page 12: Getting Started with Puppet by Chad Metcalf  Wibi Data

HIERAHierarchical Database - Configuration details out of code

Page 13: Getting Started with Puppet by Chad Metcalf  Wibi Data

Consider ProvisioningFrom bare metal to Puppet ready

Page 14: Getting Started with Puppet by Chad Metcalf  Wibi Data

PROof Of ConceptProof of Concepts NEver DIE - Even if you really wished they would

Page 15: Getting Started with Puppet by Chad Metcalf  Wibi Data

Scaling PuppetNo Easy Answers

Page 16: Getting Started with Puppet by Chad Metcalf  Wibi Data

Module TIME?When are we going to do some real work?

Page 17: Getting Started with Puppet by Chad Metcalf  Wibi Data

Configuration AS CODEDOWN TO the MODULES you USE

Page 18: Getting Started with Puppet by Chad Metcalf  Wibi Data

/etc/puppetlabs/puppet├── modules│ ├── concat│ ├── dhcp│ ├── epel│ ├── hiera│ ├── hiera-puppet│ ├── limits│ ├── mongodb│ ├── mysql│ ├── nodejs│ ├── ntp

Page 19: Getting Started with Puppet by Chad Metcalf  Wibi Data

Puppet ForgeClearing House for modules you should be using

Page 20: Getting Started with Puppet by Chad Metcalf  Wibi Data

GithubNot everything is on the forge... yet.

Page 21: Getting Started with Puppet by Chad Metcalf  Wibi Data

ForkingFork to Eat not to LIVE - aka Stop the fork

Page 22: Getting Started with Puppet by Chad Metcalf  Wibi Data

Roll your ownDon’t reinvent the wheel

Page 23: Getting Started with Puppet by Chad Metcalf  Wibi Data

Learning moreDon’t Forget irc #puppet - #puppet-dev - Mailing lists

Page 24: Getting Started with Puppet by Chad Metcalf  Wibi Data

class boundary {

require boundary::params require boundary::dependencies

$id = $boundary::params::id $apikey = $boundary::params::apikey $collector = $boundary::params::collector $collector_port = $boundary::params::collector_port

file { '/etc/bprobe/': ensure => directory, mode => '0755', owner => 'root', group => 'root', }

package { 'bprobe': ensure => latest, require => File['/etc/bprobe'], }

Page 25: Getting Started with Puppet by Chad Metcalf  Wibi Data

Puppet has more then a DSLSometimes you just need to write a little ruby

Page 26: Getting Started with Puppet by Chad Metcalf  Wibi Data

class evil { define loop () { notice("${name}") } loop { ['this', 'is', 'evil']:}}

class{"evil":}

$ puppet apply evil.ppnotice: Scope(Evil::Loop[this]): thisnotice: Scope(Evil::Loop[is]): isnotice: Scope(Evil::Loop[evil]): evil

Page 27: Getting Started with Puppet by Chad Metcalf  Wibi Data

VagrantLearn to ♥ it

node_config.vm.provision :puppet do |puppet| puppet.manifests_path = 'provision/manifests' puppet.module_path = 'provision/modules'end

Page 28: Getting Started with Puppet by Chad Metcalf  Wibi Data

QUESTIONS?You Can find me @metcalfc