Managing Infrastructure with Puppet

Managing Infrastructure with Puppet

James Loope

Language: English

Pages: 56

ISBN: 1449307639

Format: PDF / Kindle (mobi) / ePub


Get started with Puppet, and learn how this popular configuration management framework helps you automate your servers. This concise introduction shows you how to use Puppet’s tools and templates to organize and execute configuration plans on Linux, Unix, and Windows servers. Through code samples and real-world examples, you’ll learn how to manage pools of servers and virtual instances, and how to administer access control. If you’re new to Puppet, but familiar with systems administration and Ruby language basics, this book is the ideal way to start using this open source framework.

  • Learn Puppet fundamentals, including its manifest syntax and built-in functions
  • Store configurations in a central location with PuppetMaster, and define which configurations apply to which nodes
  • Build a framework to create user accounts in place of LDAP or Kerberos KDC
  • Apply techniques to execute and manage server configurations with MCollective
  • Use Puppet as an auditing tool to ensure that configurations are correct
  • Gather information on the nodes you manage with the Facter library

Linux Server Hacks, Volume 2: Tips & Tools for Connecting, Monitoring, and Troubleshooting

MySQL High Availability: Tools for Building Robust Data Centers

High Performance Computing in Science and Engineering '10: Transactions of the High Performance Computing Center, Stuttgart (HLRS) 2010

Agent-Based Evolutionary Search (Adaptation, Learning, and Optimization, Volume 5)

Gender Codes: Why Women Are Leaving Computing

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

managed as groups or if we need reporting of Facter variables from all of the nodes that include a certain Puppet class? What do we do if Apache needs a kick on 25 instances out of 1000? MCollective can do these things and more. MCollective uses a publish/subscribe message bus to distribute commands to systems in parallel. It’s used to push requests or commands out to all of your systems at once, allowing the MCollective server to decide which of the messages it should execute, based on a set of

registered trademarks of O’Reilly Media, Inc. Managing Infrastructure with Puppet, the image of an English setter, and related trade dress are trademarks of O’Reilly Media, Inc. Many of the designations used by manufacturers and sellers to distinguish their products are claimed as trademarks. Where those designations appear in this book, and O’Reilly Media, Inc., was aware of a trademark claim, the designations have been printed in caps or initial caps. While every precaution has been taken in

yellifmissing called pathnumber1 and pass the path parameter /tmp/filenumber1. Then I can do it again. Each of these resource declarations will email me about the specified missing file. Using a defined type, I can compartmentalize and duplicate blocks of logic, similar to an instance class in most object-oriented languages: define yellifmissing ($path) { exec { mailaboutit: command => "echo 'OhNoes!' | mail -s '$name is missing' admin@example.com", unless => "test -f $path", } } yellifmissing {

can be accessed by this lookupvar function, like so: scope.lookupvar('externalclass::myvariable'). Injecting variables into config file templates like this will let us drastically reduce the number of individual configuration files we need to maintain. Documentation for the ERB templating system can be found at http:// www.ruby-doc.org/stdlib/libdoc/erb/rdoc/, and there are plenty of online tutorials on complex templating. I’ve tried to give you a few real-world examples of how to implement the

ensure uid pgroup groups fullname homefs shell password } } { "alice": => "present", => "1001", => "users", => ["db", "web", "admin"], => "Alice", => $homefs, => $shell, => '$6$V38meAAms5qFW$iTX0EpsGGlWxqkVByPw75zF8QbVNMTLPyY8Hk6RykfTDR cCTegRtjCpssZPJsUXRJJihgWHX.a0xaeuszjPii0', { "bob": => "present", => "1002", => "users", => ["db"], => "Bob", => $homefs, => $shell, => '$6$CiljlJAsBzc.fm7Q$dlo0/DsoVUD.MBeItUPrb8m5TkRmFSpQZP3smK9yTFV dIyn4ib54PvohmkSn93WvPKUIXwODEUIjumCmsQ7rd0', I’ve made

Download sample

Download