Random people Random location Random misc

Managing Linux with Puppet

Puppet is a system administration framework, written entirely in Ruby and capable of scaling from managing symlinks and Subversion checkouts in your home directory up to managing networks of hundreds or thousands of machines. It reframes the management problem, talking about resources like users, hosts, and packages, instead of the contents of files like /etc/passwd and /etc/hosts. Puppet handles translating these resources to the appropriate file contents or commands, using what we call Providers for supporting a given platform or application. You can easily select from the available providers or create your own if necessary. This higher-level resource layer makes the management problem drastically easier, allowing you to focus on how to configure and manage your services, rather than the intimate details of each individual application or operating system.

Puppet also provides the ability to specify the relationships between resources, so your services can automatically restart themselves if their configuration files change or their packages are upgraded, and you can have event cascades through your configurations as each resource responds to updates in its dependencies. Rather than using imperative scripts to do its work, Puppet configurations are declarative specifications that are meant to always reflect the current desired state of your network, and these configurations are checked frequently to guarantee that alignment.

Thinking about the resources humans care about instead of the bits on disk that matter to the computers requires a shift in perspective, and centrally managing those resources across multiple platforms or large numbers of computers puts you further adrift from standard practice. This brave new world has its own design patterns and data flows, and Puppet has been developed around enabling, simplifying, and collaborating in this world. The Puppet community has also developed its own unique solutions to the problems faced by the use of higher-level tools.

This talk will cover the most important design patterns and data flows in the Puppet world and how these can enable you to teach your computers to do the work instead of you. Puppet is useful for more than just large-scale centralized administration, though, so we will also discuss some less common uses for it. We'll finish up with some ideas and inspirations for where we hope to go next.

Project: Puppet 


Luke Kanies

Luke has been publishing and speaking on his work in Unix administration since 1997. He has focused on tool development since 2001, developing and publishing multiple simple sysadmin tools and contributing to established products like Cfengine. He founded Reductive Labs in 2005 as a response to the stagnation in sysadmin tools, to be a vehicle for changing the way we interact with and manage our computers. He is currently focused on Puppet, an open-source automation framework written in Ruby, and he is always researching and developing new ways to make it easier to talk to computers on your terms. He has presented on Puppet and other tools around the world, including at OSCON, LISA, Linux.Conf.au, and FOSS.in.

Luke Kanies

Luke has been publishing and speaking on his work in Unix administration since 1997. He has focused on tool development since 2001, developing and publishing multiple simple sysadmin tools and contributing to established products like Cfengine. He founded Reductive Labs in 2005 as a response to the stagnation in sysadmin tools, to be a vehicle for changing the way we interact with and manage our computers. He is currently focused on Puppet, an open-source automation framework written in Ruby, and he is always researching and developing new ways to make it easier to talk to computers on your terms. He has presented on Puppet and other tools around the world, including at OSCON, LISA, Linux.Conf.au, and FOSS.in.

© 2007 MEL8OURNE LCA2008 and Linux Australia | Linux is a registered trademark of Linus Torvalds | Site map | Valid XHTML 1.0

rja