1computation institute university of chicago · motivation thenutsandbolts summary...

31
Motivation The nuts and bolts Summary Hands on with puppet: Making your cluster dance like it’s on strings Suchandra Thapa 1 1 Computation Institute University of Chicago OSG Summer Workshop, August 9-11 2011 Suchandra Thapa Puppet Tutorial 1/23

Upload: others

Post on 01-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Hands on with puppet:Making your cluster dance like it’s on strings

Suchandra Thapa1

1Computation InstituteUniversity of Chicago

OSG Summer Workshop, August 9-11 2011

Suchandra Thapa Puppet Tutorial 1/23

Page 2: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Outline

1 MotivationWhy puppet?Examples of places using puppet

2 The nuts and boltsBasic architecture and configurationPutting it all together

Suchandra Thapa Puppet Tutorial 2/23

Page 3: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Outline

1 MotivationWhy puppet?Examples of places using puppet

2 The nuts and boltsBasic architecture and configurationPutting it all together

Suchandra Thapa Puppet Tutorial 3/23

Page 4: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Why use puppet?Or any other configuration management system?

Makes configuration easier.Allows new systems (e.g. worker nodes) to be brought onlinequicker.With appropriate additions, you can track system configurationand revert or update on a managed basis.

Suchandra Thapa Puppet Tutorial 4/23

Page 5: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Why use puppet?Or any other configuration management system?

Makes configuration easier.Allows new systems (e.g. worker nodes) to be brought onlinequicker.With appropriate additions, you can track system configurationand revert or update on a managed basis.

Suchandra Thapa Puppet Tutorial 4/23

Page 6: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Why use puppet?Or any other configuration management system?

Makes configuration easier.Allows new systems (e.g. worker nodes) to be brought onlinequicker.With appropriate additions, you can track system configurationand revert or update on a managed basis.

Suchandra Thapa Puppet Tutorial 4/23

Page 7: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

When not to use puppet

Unique setups (e.g. web apps running on a single system)

Systems that change rapidly (e.g. test systems)

Software or systems that you don’t feel comfortableautomating

CorollaryUse puppet for services that affect large number of systems andwhich provide basics for these systems (e.g. ntp, ssh, usermanagement, etc.)

Suchandra Thapa Puppet Tutorial 5/23

Page 8: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

When not to use puppet

Unique setups (e.g. web apps running on a single system)

Systems that change rapidly (e.g. test systems)

Software or systems that you don’t feel comfortableautomating

CorollaryUse puppet for services that affect large number of systems andwhich provide basics for these systems (e.g. ntp, ssh, usermanagement, etc.)

Suchandra Thapa Puppet Tutorial 5/23

Page 9: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

When not to use puppet

Unique setups (e.g. web apps running on a single system)

Systems that change rapidly (e.g. test systems)

Software or systems that you don’t feel comfortableautomating

CorollaryUse puppet for services that affect large number of systems andwhich provide basics for these systems (e.g. ntp, ssh, usermanagement, etc.)

Suchandra Thapa Puppet Tutorial 5/23

Page 10: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

When not to use puppet

Unique setups (e.g. web apps running on a single system)

Systems that change rapidly (e.g. test systems)

Software or systems that you don’t feel comfortableautomating

CorollaryUse puppet for services that affect large number of systems andwhich provide basics for these systems (e.g. ntp, ssh, usermanagement, etc.)

Suchandra Thapa Puppet Tutorial 5/23

Page 11: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Outline

1 MotivationWhy puppet?Examples of places using puppet

2 The nuts and boltsBasic architecture and configurationPutting it all together

Suchandra Thapa Puppet Tutorial 6/23

Page 12: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

Midwest Tier 2.

ExampleUsing puppet master running as a passenger app in apachepuppetd running as a cron job (due to memory leaks in client)Puppet dashboard being added to provide monitoring of clients

Suchandra Thapa Puppet Tutorial 7/23

Page 13: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Why puppet?Examples of places using puppet

BNL Tier 1

ExampleHas a more complex setup:

Figure: BNL Puppet Flow

Suchandra Thapa Puppet Tutorial 8/23

Page 14: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Outline

1 MotivationWhy puppet?Examples of places using puppet

2 The nuts and boltsBasic architecture and configurationPutting it all together

Suchandra Thapa Puppet Tutorial 9/23

Page 15: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Master/Client relationship

Puppet master (with optional dashboard) serves puppet files

Puppet clients query server and update configuration to keepthings in sync

Suchandra Thapa Puppet Tutorial 10/23

Page 16: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Master/Client relationship

Puppet master (with optional dashboard) serves puppet files

Puppet clients query server and update configuration to keepthings in sync

Suchandra Thapa Puppet Tutorial 10/23

Page 17: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Basics of puppet configuration

Node definitionModule definitionTemplates

Suchandra Thapa Puppet Tutorial 11/23

Page 18: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Node definitions

Done in nodes.pp or file included in nodes.pp

Defining a new host

node ’ i t b−t e s t 1 ’ {i n c l u d e i tb_basei n c l u d e gmond : : i t b : : x86_64 : : v i r t u a li n c l u d e u s e r : : i t b : : osgvoi n c l u d e u s e r : : i t b : : g l e x e ci n c l u d e u s e r : : i t b : : condori n c l u d e condor : : submit : : i t bi n c l u d e yum : : i t b : : condor : : r epo

}

Suchandra Thapa Puppet Tutorial 12/23

Page 19: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Template definitions

Done in template.pp file

Defining templates

c l a s s i tb_base : : hadoop i n h e r i t s i tb_base {i n c l u d e u s e r : : i t b : : hadoopi n c l u d e yum : : i t b : : hadoop : : r epo

}

c l a s s i tb_base : : hadoop : : datanode i n h e r i t s i tb_base : : hadoop {i n c l u d e hadoop : : datanode : : i t b

}

c l a s s i tb_base : : hadoop : : namenode i n h e r i t s i tb_base : : hadoop {i n c l u d e hadoop : : namenode : : i t b

}

Suchandra Thapa Puppet Tutorial 13/23

Page 20: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Module definition

Directory name same as module name

Directories for files, manifests, templates (called files,manifests, and templates)

Minimum needed is init.pp file in manifests directory

Suchandra Thapa Puppet Tutorial 14/23

Page 21: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Module definition

Directory name same as module name

Directories for files, manifests, templates (called files,manifests, and templates)

Minimum needed is init.pp file in manifests directory

Suchandra Thapa Puppet Tutorial 14/23

Page 22: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Module definition

Directory name same as module name

Directories for files, manifests, templates (called files,manifests, and templates)

Minimum needed is init.pp file in manifests directory

Suchandra Thapa Puppet Tutorial 14/23

Page 23: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Condor module base class

Base condor class, installs and sets up service

Base Condor class

c l a s s condor : : base : : i t b {package {

’ condor −7.6 .2 −1. x86_64 ’ :en su r e => p r e s e n t

}

s e r v i c e {" condor " :

enab l e => true ,en su r e => true ,r e q u i r e => [ Package [ " condor −7.6 .2 −1. x86_64 " ] ,

F i l e [ "/ e t c / condor / condor_conf ig " ] ,F i l e [ "/ e t c / condor / condor_conf ig . l o c a l " ] ] ,

s u b s c r i b e => [ F i l e [ "/ e t c / condor / condor_conf ig " ] ,F i l e [ "/ e t c / condor / condor_conf ig . l o c a l " ] ]

}}

Suchandra Thapa Puppet Tutorial 15/23

Page 24: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Extending for worker node configuration

Sets up a condor worker node

Worker node class

c l a s s condor : : worker : : i t b i n h e r i t s condor : : base : : i t b {# condor c o n f i g u r a t i o n se tupf i l e {

"/ e t c / condor / condor_conf ig " :s ou r c e => "puppet :/// modules / condor / condor_conf ig " ,owner => ’ root ’ ,group => ’ root ’ ,mode => 644

}

f i l e {"/ e t c / condor / condor_conf ig . l o c a l " :

s ou r c e => "puppet :/// modules / condor / condor_conf ig_worker . l o c a l " ,owner => ’ root ’ ,group => ’ root ’ ,mode => 644

}}

Suchandra Thapa Puppet Tutorial 16/23

Page 25: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

User management

Special case: In the manifest directory for the user module, usersand groups defined in virtual.pp.

User and group definition

c l a s s u s e r : : v i r t u a l {@group { " g l e x e c " :

g i d => "19004" ,en su r e => " p r e s e n t "

}

@user { " g l e x e c " :en su r e => " p r e s e n t " ,u i d => "19004" ,g i d => "19004" ,comment => "GLExec account " ,home => "/home/ g l e x e c " ,s h e l l => "/ s b i n / n o l o g i n " ,r e q u i r e => Group [ ’ g l e x e c ’ ]

}}

Suchandra Thapa Puppet Tutorial 17/23

Page 26: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

User management pt. 2

Users and groups actually get instantiated in a separate file,including the class in a node definition instantiates the user and/orgroup on that system

User/group instantiation

c l a s s u s e r : : i t b : : g l e x e c i n h e r i t s u s e r : : v i r t u a l {r e a l i z e (

Group [" g l e x e c " ] ,User [ " g l e x e c " ]

)}

Suchandra Thapa Puppet Tutorial 18/23

Page 27: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Outline

1 MotivationWhy puppet?Examples of places using puppet

2 The nuts and boltsBasic architecture and configurationPutting it all together

Suchandra Thapa Puppet Tutorial 19/23

Page 28: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Basic architecture and configurationPutting it all together

Setting up a raw VM

1 Create modules/classes2 Create a template for the system type3 Create node definition for machine4 Run puppet on systems

Suchandra Thapa Puppet Tutorial 20/23

Page 29: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

MotivationThe nuts and bolts

Summary

Summary

If you’re interested in configuration management puppet mightbe a solutionShould start small and expand configuration as time goes on

Future

Public repository for modules and recipesPossible location for OSG collaboration?

Suchandra Thapa Puppet Tutorial 21/23

Page 30: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

Appendix For Further Reading

For Further Reading I

Puppet LabsPuppet documentation.http://docs.puppetlabs.com/guides/introduction.html

Suchandra Thapa.SVN Puppet repository.http://vtb-svn.uchicago.edu/svn/puppet/

James Pryor, John Steven De Stefano Jr, Jason AlexanderSmith.Building and managing virtual machines at the Tier 1.http://indico.cern.ch/getFile.py/access?contribId=3&resId=0&materialId=slides&confId=141745

Suchandra Thapa Puppet Tutorial 22/23

Page 31: 1Computation Institute University of Chicago · Motivation Thenutsandbolts Summary Basicarchitectureandconfiguration Puttingitalltogether Nodedefinitions Doneinnodes.pporfileincludedinnodes.pp

Appendix For Further Reading

For Further Reading II

Sarah Williams.Experiences at MWT2: Configuration Management withPuppet.http://indico.cern.ch/getFile.py/access?contribId=5&resId=2&materialId=slides&confId=141745

Suchandra Thapa Puppet Tutorial 23/23