Book Image

Puppet 3: Beginner's Guide

By : John Arundel
Book Image

Puppet 3: Beginner's Guide

By: John Arundel

Overview of this book

<p>Everyone's talking about Puppet, the open-source DevOps technology that lets you automate your server setups and manage websites, databases, and desktops. Puppet can build new servers in seconds, keep your systems constantly up to date, and automate daily maintenance tasks. <br /><br />"Puppet 3 Beginner's Guide" gets you up and running with Puppet straight away, with complete real world examples. Each chapter builds your skills, adding new Puppet features, always with a practical focus. You'll learn everything you need to manage your whole infrastructure with Puppet.<br /><br />"Puppet 3 Beginner’s Guide" takes you from complete beginner to confident Puppet user, through a series of clear, simple examples, with full explanations at every stage.</p> <p>Through a series of worked examples introducing Puppet to a fictional web company, you'll learn how to manage every aspect of your server setup. Switching to Puppet needn't be a big, long-term project; this book will show you how to start by bringing one small part of your systems under Puppet control and, little by little, building to the point where Puppet is managing your whole infrastructure.</p> <p>Presented in an easy-to-read guide to learning Puppet from scratch, this book explains simply and clearly all you need to know to use this essential IT power tool, all the time applying these solutions to real-world scenarios.</p>
Table of Contents (17 chapters)
Puppet 3 Beginner's Guide
Credits
About the Author
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – deploying a sudoers file


  1. Create the directories for a sudoers module:

    ubuntu@demo:~/puppet$ mkdir modules/sudoers
    ubuntu@demo:~/puppet$ mkdir modules/sudoers/manifests
    ubuntu@demo:~/puppet$ mkdir modules/sudoers/files
    
  2. Create the file modules/sudoers/manifests/init.pp with the following contents:

    # Manage the sudoers file
    class sudoers {
      file { '/etc/sudoers':
        source => 'puppet:///modules/sudoers/sudoers',
        mode   => '0440',
        owner  => 'root',
        group  => 'root',
      }
    }
  3. Create the file modules/sudoers/files/sudoers with the following contents:

    # User privilege specification
    root    ALL = (ALL) ALL
    ubuntu  ALL = (ALL) NOPASSWD:ALL
    art     ALL = (ALL) NOPASSWD: /bin/ls
  4. Check the syntax of the sudoers file:

    ubuntu@demo:~/puppet$ visudo -c -f modules/sudoers/files/sudoers
    modules/sudoers/files/sudoers: parsed OK
    
  5. If there are any errors, correct them before moving on. If you use Puppet to deploy a sudoers file that contains syntax errors, no users will...