bonetics: mastering puppet workshop

21
Your ultimate walkthrough Mastering puppets

Upload: jano-suchal

Post on 18-Jun-2015

5.710 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Bonetics: Mastering Puppet Workshop

Your ultimate walkthrough

Mastering puppets

Page 2: Bonetics: Mastering Puppet Workshop

Menu de jour

1. Intro2. Puppet overview3. Environment setup4. Implementation5. Review6. Happy end

Page 3: Bonetics: Mastering Puppet Workshop

Intro

• Why configuration provisioning?• Available solutions• Which one to select, why?• How to implement it?

Page 4: Bonetics: Mastering Puppet Workshop

Why configuration provisioning?

• It’s DRY• Law enforcement• Easier change management• Easier system scaling• Better mission control

Page 5: Bonetics: Mastering Puppet Workshop

Available solutions

• puppetlabs.com (Ruby)• cfengine.com (C)• quattor.org (Perl, Python)• opscode.com/chef (Ruby)• … and many others

Page 6: Bonetics: Mastering Puppet Workshop

Which one to select, why?

• Puppet– nicely designed– straightforward– Integrations with AWS, Openstack, …– backed by Google Ventures, Cisco,

Vmware– And it’s Ruby of course

Page 7: Bonetics: Mastering Puppet Workshop

How to implement it?

• Install prebuilt packages• Make it version controlled• Integrate with project management

tool

Page 8: Bonetics: Mastering Puppet Workshop

Puppet overview

• client/server software• They call it agent/master

Page 9: Bonetics: Mastering Puppet Workshop

Master directory structure

• /etc/puppet– /etc/puppet/puppet.conf– /etc/puppet/manifests– /etc/puppet/modules– /etc/puppet/autosign.conf

Page 10: Bonetics: Mastering Puppet Workshop

Agent configuration

• /etc/puppet/puppet.confserver=[hostname/ip]report=[true/false]runinterval=[n]s

Page 11: Bonetics: Mastering Puppet Workshop

Manifests syntax

class cms::sudo {

# # /etc/sudoers configuration file # file { '/etc/sudoers': source => 'puppet:///modules/cms/etc/sudoers', owner => 'root', group => 'root', mode => 440, } }

Page 12: Bonetics: Mastering Puppet Workshop

Manifests syntax vol. #2 service { 'apache2': ensure => running, enable => true, hasstatus => true, hasrestart => true, require => [ Mount['/mnt/www-data'], Mount['/mnt/archive'], File['/etc/apache2'], File['/opt/cache'], File['/tmp/huste'], File['/tmp/topstar'], File['/tmp/hcslovan'], File['/usr/local/lib/php5/php-cgi-wrapper'], ] }

Page 13: Bonetics: Mastering Puppet Workshop

Some resource types

• package• file• service• cron• mount• exec

Page 14: Bonetics: Mastering Puppet Workshop

Online docs

• Reference manualhttp://docs.puppetlabs.com/references/3.1.latest/

• Resource typeshttp://docs.puppetlabs.com/references/3.1.latest/type.html

Page 15: Bonetics: Mastering Puppet Workshop

Environment setup

• Groups of three• Sys admin (lead)• Web admin• Db admin

Page 16: Bonetics: Mastering Puppet Workshop

Implementation

• required packages: vim, tcpdump, mtr• Web server: apache2 + php (mod/cgi)• Mysql server: mysql5

Page 17: Bonetics: Mastering Puppet Workshop

Go ahead …

• Ask for help when needed

http://192.168.122.100/a.txthttp://192.168.122.100/b.txthttp://192.168.122.100/c.txt…

Page 18: Bonetics: Mastering Puppet Workshop

Review

Page 19: Bonetics: Mastering Puppet Workshop

Happy end

• Real-world implementation show off

Page 20: Bonetics: Mastering Puppet Workshop

Questions?

Page 21: Bonetics: Mastering Puppet Workshop

More questions?

Matúš Bursa

[email protected]

Peter Mihálik

[email protected]