Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Puppet module for Yum
Puppet HTML Ruby
Latest commit f277f5a @alvagante alvagante Merge pull request #137 from ScarabMonkey/master
Update atrpms.pp

Puppet module: yum

This is a Puppet module that manages Yum repositories for Centos RedHat and Scientific Linux

Made by Alessandro Franceschi / Lab42

Inspired by the Yum Immerda module:

Official site:

Official git repository:

Released under the terms of Apache 2 License.

This module requires functions provided by the Example42 Puppi module.


  • Just leave the default options: Automatic detection of Operating System (RedHat, Centos, Scientific supported) Epel repo installation, keeping of local yum files, automatic updates disabled.

    class { 'yum':
  • Enable automatic updates via cron (updatesd is supported only on 5)

    class { 'yum':
      update => 'cron',
  • Purge local /etc/yum.repos.d/ and enforce its contents only via a custom source

    class { 'yum':
      source_repo_dir => 'puppet:///modules/example42/yum/conf/',
      clean_repos     => true,
  • Enable EPEL and PuppetLabs repos

    class { 'yum':
      extrarepo => [ 'epel' , 'puppetlabs' ],
  • Do not include any extra repo (By default EPEL is added)

    class { 'yum':
      extrarepo => '' ,
  • Automatically copy in /etc/pki/rpm-gpg all the rpm-gpg keys known by the yum module (this was the "old" and intrusive behaviour, now each rpm-gpg key may be individually provided by the yum::manages_repos' gpgkey_source parameter)

    class { 'yum':
      install_all_keys => true ,
  • Include a selected extra repo

    include yum::repo::puppetlabs

USAGE - Overrides and Customizations

  • Enable auditing without without making changes on existing yum configuration files

    class { 'yum':
      audit_only => true
  • Use custom sources for main config file

    class { 'yum':
      source => [ "puppet:///modules/lab42/yum/yum.conf-${hostname}" , "puppet:///modules/lab42/yum/yum.conf" ],
  • Use custom source directory for the whole configuration dir

    class { 'yum':
      source_dir       => 'puppet:///modules/lab42/yum/conf/',
      source_dir_purge => false, # Set to true to purge any existing file not present in $source_dir
  • Use custom template for main config file. Note that template and source arguments are alternative.

    class { 'yum':
      template => 'example42/yum/yum.conf.erb',
  • Automatically include a custom subclass

    class { 'yum':
      my_class => 'yum::example42',

USAGE - Example42 extensions management

  • Activate puppi (recommended, but disabled by default)

    class { 'yum':
      puppi    => true,
  • Activate puppi and use a custom puppi_helper template (to be provided separately with a puppi::helper define ) to customize the output of puppi commands

    class { 'yum':
      puppi        => true,
      puppi_helper => 'myhelper',



REDHAT 6 - Full

REDHAT 5 - Full

REDHAT 4 - Partial

CENTOS 6 - Full

CENTOS 5 - Full

CENTOS 4 - Partial



AMAZON LINUX 3 (Sigh) - Partial

Build Status

Something went wrong with that request. Please try again.