Join our Discord Server
Ajeet Raina Docker Captain, ARM Innovator & Docker Bangalore Community Leader.

Learn Puppet with Me – Day 2

49 sec read

Today we are going to learn about Puppet Modules.

What is Puppet Modules? Puppetlabs defines it as “Modules are self-contained bundles of code and data. You can write your own modules or you can download pre-built modules from the Puppet Forge.”Nearly all Puppet manifests belong in modules. The sole exception is the main site.pp manifest, which contains site-wide and node-specific code.


Modules are how Puppet finds the classes and types it can use — it automatically loads any classor defined type stored in its modules.

Module Layout

On disk, a module is simply a directory tree with a specific, predictable structure:

    • manifests
    • files
    • templates
    • lib
    • facts.d
    • tests
    • spec

We will start with basic module and slowly move towards the complex module structure.

Let’s begin:

#mkdir modules/memcached
#mkdir modules/memcached/manifests
#mkdir modules/memcached/files
#vi nodes.pp

node ‘’ {
include memcached
#define memcached class in the file init.pp
#vi modules/memcached/manifests/init.pp

class memcached {
package { ‘memcached’:
ensure => installed,

file { ‘/etc/memcached.conf’:
source => puppet:///modules/memcached/memcached.conf’,
owner => ‘root’,
group => ‘root’,
mode => ‘0644’,
require => Package[‘memcached’],

service { ‘memcached’:
ensure => running,
enable => true,
require => [Package[‘memcached’], File[ ‘/etc/memcached.conf’]]

That’s all. You can go ahead and run puppet agent -t on puppet client machine to get memcache ready.

Please follow and like us:

Have Queries? Join

Ajeet Raina Docker Captain, ARM Innovator & Docker Bangalore Community Leader.

Exploring the Cloud-Native Ecosystem: A Beginner’s Guide to the…

The Cloud Native Computing Foundation (CNCF) is a non-profit organization founded in 2015 with the goal of advancing the development and adoption of cloud-native technologies. The...
Ajeet Raina
3 min read

Leave a Reply

Your email address will not be published. Required fields are marked *

Join our Discord Server