A collection of task oriented solutions in Puppet


Add a Yum repository client config


You want to configure yum to use a repository.


class basic_yum_repo {

  # configure the repo we want to use
  yumrepo { 'company_app_repo':
    enabled  => 1,
    descr    => 'Local repo holding company application packages',
    baseurl  => 'http://repos.example.org/apps',
    gpgcheck => 0,


once this puppet code has run you can inspect the config -

cat /etc/yum.repos.d/company_app_repo.repo

name=Local repo holding company application packages


When using RPM / Yum / DNF based systems you'll often want to install packages from non-standard upstream repositories. In puppet this can be achieved using the built in yumrepo type. There are a tremendous number of options supported in repo configuration files and while the above example is a very simplified one it's worth reading through the types documentation, and the yum.conf manpage, linked to in the 'See Also' section, to view all the possibilities.

Once you've configured a new yumrepo you'll often want to install packages from it. Don't forget to add a require attribute to any package resource that depends on your newly managed repos.

class package_requires {

  package { 'local_app':
    ensure  => 'installed',
    require => Yumrepo['company_app_repo'],


See Also