Giter Club home page Giter Club logo

puppet-yum's Introduction

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: https://git.puppet.immerda.ch

Official site: http://www.example42.com

Official git repository: http://github.com/example42/puppet-yum

Released under the terms of Apache 2 License.

This module requires functions provided by the Example42 Puppi module.

USAGE

  • 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',
      }
    

OPERATING SYSTEMS SUPPORT

REDHAT 7 - BETA

REDHAT 6 - Full

REDHAT 5 - Full

REDHAT 4 - Partial

CENTOS 6 - Full

CENTOS 5 - Full

CENTOS 4 - Partial

SCIENTIFIC 6 - Full

SCIENTIFIC 5 - Full

AMAZON LINUX 3 (Sigh) - Partial

Build Status

puppet-yum's People

Contributors

ablionge avatar alvagante avatar aripringle avatar darken99 avatar davividal avatar dwerder avatar gabrielbull avatar git-jiro avatar glorpen avatar gwarf avatar jaydiablo avatar jblotus avatar jtreminio avatar justicel avatar krasnican avatar kruton avatar ksatirli avatar lamawithonel avatar luishdez avatar lukebakerwgt avatar marknl avatar mburger avatar pysysops avatar sathieu avatar scarabmonkey avatar shoekstra avatar stanicek avatar tahvok avatar tepeds avatar tomgross avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

puppet-yum's Issues

Webtatic URLs no longer work

Expected Behavior

Webtatic Works

Actual Behavior

Webtatic URLs are 404 now.

Steps to Reproduce the Problem

  1. Use the webtatic repo...

PR to follow to use the mirror URLs instead. =)

#176

Cannot retrieve repository metadata (repomd.xml) for repository: repoforge

# site.pp
node 'freshasp.local' {
  class { 'yum':
    extrarepo => [ 'repoforgeextras', 'puppetlabs' ],
  }
}

rpmforge does not give errors, but both repoforge and repoforgeextras gives errors.

Then I run puppet agent --test and get these errors

/usr/lib/ruby/site_ruby/1.8/puppet/defaults.rb:214: warning: Insecure world writable dir /var/log/. in PATH, mode 040777
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Loading facts
Info: Caching catalog for freshasp.local
Info: Applying configuration version '1439268350'
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y list yum-priorities' returned 1: Error: Cannot retrieve repository metadata (repomd.xml) for repository: repoforge. Please verify its path and try again
Error: /Stage[main]/Yum::Prerequisites/Yum::Plugin[priorities]/Package[yum-priorities]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y list yum-priorities' returned 1: Error: Cannot retrieve repository metadata (repomd.xml) for repository: repoforge. Please verify its path and try again
Notice: Finished catalog run in 4.33 seconds
[root(app2)@FreshASP log]# yum repolist
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * epel: fedora.uberglobalmirror.com
 * rpmforge: mirror-fpt-telecom.fpt.net
 * rpmforge-extras: mirror.as24220.net
http://apt.sw.be/redhat/el5Server/en/x86_64/rpmforge/repodata/repomd.xml: [Errno 14] HTTP Error 404: Not Found
Trying other mirror.
Error: Cannot retrieve repository metadata (repomd.xml) for repository: repoforge. Please verify its path and try again

cyclic dependency

Since 60e7917, a Puppet run on a CentOS 6 box (simply including the "yum" class) produces this error:

Error: Failed to apply catalog: Found 1 dependency cycle:
(Package[yum-plugin-priorities] => Yum::Plugin[priorities] => Class[Yum::Prerequisites] => Yum::Managed_yumrepo[epel] => Class[Yum::Repo::Epel] => Class[Yum::Defaults] => Class[Yum] => Class[Yum::Prerequisites] => Yum::Plugin[priorities] => Package[yum-plugin-priorities])
Try the '--graph' option and opening the resulting '.dot' file in OmniGraffle or GraphViz

Specifications

Please add this info:

  1. Output of facter -p on the failing node (at least the OS related facts)

operatingsystem => CentOS
operatingsystemmajrelease => 6
operatingsystemrelease => 6.6
os => {"name"=>"CentOS", "lsb"=>{"distrelease"=>"6.6", "distdescription"=>"CentOS release 6.6 (Final)", "distcodename"=>"Final", "majdistrelease"=>"6", "distid"=>"CentOS", "minordistrelease"=>"6", "release"=>":base-4.0-ia32:base-4.0-noarch:core-4.0-ia32:core-4.0-noarch:graphics-4.0-ia32:graphics-4.0-noarch:printing-4.0-ia32:printing-4.0-noarch"}, "family"=>"RedHat", "release"=>{"minor"=>"6", "full"=>"6.6", "major"=>"6"}}
osfamily => RedHat
osplatform => el6
partitions => {"sda1"=>{"mount"=>"/boot", "filesystem"=>"ext4", "uuid"=>"1bd437a3-d805-4a2f-9df2-81ecbe50915d", "size"=>"1024000"}, "sda2"=>{"filesystem"=>"LVM2_member", "size"=>"15751168"}}
path => /usr/lib/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
physicalprocessorcount => 1
processor0 => Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz
processorcount => 1
processors => {"count"=>1, "physicalcount"=>1, "models"=>["Intel(R) Core(TM) i5-5300U CPU @ 2.30GHz"]}
productname => VirtualBox
ps => ps -ef
puppet_vardir => /var/lib/puppet
puppetversion => 3.8.3
root_home => /root
rubyplatform => i386-linux
rubysitedir => /usr/lib/ruby/site_ruby/1.8
rubyversion => 1.8.7
selinux => true
selinux_config_mode => enforcing
selinux_config_policy => targeted
selinux_current_mode => enforcing
selinux_enforced => true
selinux_policyversion => 24
serialnumber => 0

  1. Version of Puppet and of the module

[root@prettysix ~]# puppet --version
3.8.3

Master:
$ dpkg -l | grep pup
ii facter 2.4.6-1puppetlabs1 all Ruby module for collecting simple facts about a host operating system
ii hiera 1.3.4-1puppetlabs1 all A simple pluggable Hierarchical Database.
ii mcollective-common 2.8.4-1puppetlabs1 all build server orchestration or parallel job execution systems
rc puppet 3.6.2-1puppetlabs1 all Centralized configuration management - agent startup and compatibility scripts
ii puppet-common 3.8.7-1puppetlabs1 all Centralized configuration management
ii puppet-dashboard 1.2.23-1puppetlabs1 all Dashboard for Puppet
ii puppetlabs-release 1.1-1 all "Package to install Puppet Labs gpg key and apt repo"
rc puppetmaster 2.7.23-1~deb7u3 all Centralized configuration management - master startup and compatibility scripts
ii puppetmaster-common 3.8.7-1puppetlabs1 all Puppet master common scripts
ii puppetmaster-passenger 3.8.7-1puppetlabs1 all Centralised configuration management - master setup to run under mod passenger
ii ruby-rgen 0.6.5-1puppetlabs1 all A framework supporting Model Driven Software Development (MDSD)
ii ruby-stomp 1.3.2-1puppetlabs1 all A ruby client for sending and receiving messages
ii vim-puppet 3.8.7-1puppetlabs1 all syntax highlighting for puppet manifests in vim

Error from DataBinding

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Error from DataBinding 'hiera' while looking up 'yum::install_all_keys': Unknown column 'environment' in 'where clause' on node server2
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

site.pp

class { 'yum':
   extrarepo => [ 'epel' , 'puppetlabs' ],
 }

Not possible to set custom port on mirror url.

I tried to set a different port on a mirror url in following form:
http://mirror.example.com:8000/pub/rpm/epel

I get following error:
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: $mirror must be a Clean URL with no query-string, a fully-qualified hostname and no trailing slash. at /etc/puppet/environments/test/modules/yum/manifests/repo/epel.pp:21

Could you adapt the validation of the variable to allow custom ports?

Many thanks!

Yum version and yum-cron

Update yum package if enabled yum-cron because yum-cron doesn't work with yum version before 3.4.3-132 .

Error: Execution of '/bin/yum -d 0 -e 0 -y install yum-cron' returned 1: Transaction check error:
==> default:   file /etc/yum/yum-cron-hourly.conf from install of yum-cron-3.4.3-132.el7.centos.0.1.noarch conflicts with file from package yum-3.4.3-125.el7.centos.noarch
==> default:   file /etc/yum/yum-cron.conf from install of yum-cron-3.4.3-132.el7.centos.0.1.noarch conflicts with file from package yum-3.4.3-125.el7.centos.noarch
==> default: 
==> default: Error Summary
==> default: -------------

something like this in cron.pp:

  package { 'yum':
    ensure => latest,
  }
->
  package { 'yum-cron':
    ensure => $manage_update_package,
  }

Updating puppet breaks with this module

On stock CentOS 5:

  class { 'yum':
    clean_repos => true,
    extrarepo   => [ 'epel', 'puppetlabs' ],
  }

(/Stage[main]/Puppet/Package[puppet]/ensure) change from 2.6.17-2.el5 to 3.0.1-1.el5 failed: Could not update: Execution of '/usr/bin/yum -d 0 -e 0 -y install puppet' returned 1: puppet-3.0.1-1.el5.noarch from puppetlabs has depsolving problems#012 --> Missing Dependency: ruby >= 1.8.7 is needed by package puppet-3.0.1-1.el5.noarch (puppetlabs)#012Error: Missing Dependency: ruby >= 1.8.7 is needed by package puppet-3.0.1-1.el5.noarch (puppetlabs)#12 You could try using --skip-broken to work around the problem#012 You could try running: package-cleanup --problems#012 package-cleanup --dupes#012 rpm -Va --nofiles --nodigest#012The program package-cleanup is found in the yum-utils package.#12 at /etc/puppet/environments/production/modules/puppet/manifests/init.pp:550

Ths is because puppet 3.0 requires Ruby >= 1.8.7 but only Ruby 1.8.5 is supplied in the distro. puppetlabs_dependencies contains the required Ruby, but is not allowed to override the base distro because of the priorities (base=1, puppetlabs_dependencies = 15).

It's fixed for me by disabling priorities, or by setting the puppetlabs_dependencies priority to match base (1).

I'm not sure what the 'proper' fix would be in your view, so I ask you. :)

New Relic Repo only has reference to EL

The current New Relic Repo url has a variable of $releasever. However, New Relic only maintains a static 'el5' directory in that place which it documents to be used with all supported versions of RHEL and CentOS (5 and 6).

Until they add an official path on their yum server for the various versions, it may be best to hard code this to 'el5'.

Unable to use repo I've just installed

Is it just me or does this module not do a yum clean after adding a new repo?

After I add the a repo, I need to provision again before I can actually use it. I've got a convoluted set of requires setup in my own modules to achieve this but it makes my module files look a little messy.

EPEL for Centos 7 GPG key missing

EPEL key for Centos 7 is missing from the puppet-yum module.

Error: /Stage[main]/Yum::Repo::Epel/Yum::Managed_yumrepo[epel]/File[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/yum/rpm-gpg/RPM-GPG-KEY-EPEL-7

After I added the key from epel-release to my copy of puppet-yum and it started to work as expected.

Wrong file permissions on some file breaks Foreman import

We use r10k v2.0.3 to deploy your module directly from the github repository (essentially, it's doing a git clone). Some of the files recently updated miss the everyone read access:

root@puppet:/etc/puppet/environments/developpement/modules/yum/manifests# ll
total 64
drwxr-xr-x 4 root root 4096 Oct 15 15:36 ./
drwxr-xr-x 6 root root 4096 Oct 15 15:36 ../
-rw-r--r-- 1 root root 1033 Oct 15 15:36 cron.pp
-rw-r----- 1 root root 3060 Oct 15 15:36 defaults.pp
-rw-r----- 1 root root 12844 Oct 15 15:36 init.pp
-rw-r--r-- 1 root root 2403 Oct 15 15:36 managed_yumrepo.pp
-rw-r----- 1 root root 1759 Oct 15 15:36 params.pp
drwxr-xr-x 2 root root 4096 Oct 15 15:36 plugin/
-rw-r--r-- 1 root root 1096 Oct 15 15:36 plugin.pp
-rw-r--r-- 1 root root 508 Oct 15 15:36 prerequisites.pp
drwxr-xr-x 2 root root 4096 Oct 15 15:36 repo/
-rw-r--r-- 1 root root 1085 Oct 15 15:36 updatesd.pp
-rw-r--r-- 1 root root 568 Oct 15 15:36 versionlock.pp

We use Foreman as an ENC and when we try to import the classes, we get a 406 error from foreman-proxy as the proxy is trying to read the files but doesn't have access. If we manually set file permission to 644, foreman-proxy completes successfully.

Can you please fix file permissions on these files in manifests and manifests/repo?

yum::osver is not an hash or array

Thank you for publishing this module to Puppet Forge. Having installed it (v2.0.0), I am getting this error:

yum::osver is not an hash or array when accessing it with 0 at /home/danny/workspace/puppet/modules/yum/manifests/repo/puppetlabs.pp:9 on node blah.example.com

Also this warning, which looks like it's related:

warning: Scope(Class[Yum::Repo::Puppetlabs]): Could not look up qualified variable 'yum::osver'; class yum has not been evaluated at /home/danny/workspace/puppet/modules/yum/manifests/repo/puppetlabs.pp:9

We are not using your Yum module directly (yet!) - only as a dependency of your ActiveMQ module. It looks as though if we were to include the Yum module (init.pp) then $osver would get set.

Perhaps the $osver bit needs factoring out so it's available without including init.pp? Or depend on stdlib42 (and publish it on Puppet Forge!).

Thanks!

Cannot use before or require against the yum class

Expected Behavior

Expected class{'yum': before => Package['example']} would ensure the yum repos are installed before puppet attempted to run the install for the package. Similarly, would expect anything requiring the Class['yum'] node would work as expected as well.

Actual Behavior

Due to the use of include and many subclasses, any action against Class['yum'] doesn't cause the desired effect of ensuring that yum is configured before other desired actions.

Steps to Reproduce the Problem

  1. Make a catalog that includes a new package available from a yet to be configured repo.
  2. Also include the new repo, and add a dependency from one or the other direction from a package to the Class['yum'].
  3. When applying the catalog, you may or may not get the desired ordering.

Suggested fix

Change the various include statements to contain so all the subclasses are finished before the Class['yum'] is finished. This allows the desired effect of
class{'yum':
before => Package['example']
}

Cron. Install security updates.

When I enable automatic updates:

    class { 'yum':
      update => 'cron',
      cron_update_cmd => 'minimal',
    }

I get an error:

Error: Evaluation Error: Error while evaluating a Function Call, Could not find class ::cron for localhost at /tmp/vagrant-puppet/modules-fa145af311a62d91c3c7de21318594ae/yum/manifests/init.pp:353:5 on node localhost

Manage yum-cron-hourly.conf

This module doesn't manage yum-cron-hourly.conf

ls -l /etc/yum/ | grep cron
-rw-r--r--  1 root root 2622 Feb 29 11:18 yum-cron.conf
-rw-r--r--  1 root root 2496 Dec  3 16:33 yum-cron-hourly.conf

Centos6.6 - require yum - this does not call a "refresh"

I need nginx installed for my modules to operate as required. I'm not using nginx module from forge (made my own very basic one).

At top my my nginx::install, I require yum and this adds the EPEL repo. When it comes time to package { 'nginx': ensure => present }. It complains that It cannot find nginx in repos.

Error: Execution of '/usr/bin/yum -d 0 -e 0 -y list nginx' returned 1: Error: No matching Packages to list
Error: /Stage[main]/Freshmobile::Nginx::Install/Package[nginx]/ensure: change from absent to present > failed: Execution of '/usr/bin/yum -d 0 -e 0 -y list nginx' returned 1: Error: No matching Packages to list

puppet 3.5 breaks yum module

since my servers updated to puppet 3.5 overnight i've been getting failed puppet runs with errors like the following

Error: Failed to apply catalog: Parameter baseurl failed on Yumrepo[base]: Must be a valid URL at /etc/puppet/environments/production/modules/yum/manifests/managed_yumrepo.pp:67
Wrapped exception:
Must be a valid URL
Error: Failed to apply catalog: Parameter mirrorlist failed on Yumrepo[puppetlabs]: Must be a valid URL at /etc/puppet/environments/production/modules/yum/manifests/managed_yumrepo.pp:67
Wrapped exception:
Must be a valid URL

cron updates?

README says:

class { 'yum':
update => 'cron',
}

This appears to initiate no changes in puppet ? I was expecting a script added to cron. or crontab, but no changes. I also notice in init.pp the param is there but there is no action taken based on the value/presence of the param.

What's required to make this feature work?

Illegal fully qualified name at /modules/yum/manifests/repo/10gen.pp:5:18

We are getting ready to move from 3.8 to 4.2 so we turned on the future parser. It fails when parsing 10gen.pp most likely because of the number in the class name (although I don't see this in the deprecation list)

The file in question:

# = Class: yum::repo::10gen
#
# This class installs the 10gen repo for MongoDB
#
class yum::repo::10gen (
  $baseurl = "http://downloads-distro.mongodb.org/repo/redhat/os/${::architecture}",
) {
  yum::managed_yumrepo { '10gen':
    descr       => '10gen Repository',
    baseurl     => $baseurl,
    enabled     => 1,
    gpgcheck    => 0,
  }
}

and the error:

$ puppet parser validate /puppet/modules/yum/manifests/repo/10gen.pp
Error: Could not parse for environment production: 
Illegal fully qualified name at 
/puppet/modules/yum/manifests/repo/10gen.pp:5:18

I renamed the class to yum::repo::tengen and it passed the parser. Another alternative is to rename it to mongodb to mirror the company name change

Evaluation Error with puppet 3.5+

On centos 6.5 was detected following error message

Error: Evaluation Error: Left match operand must result in a String value. Got an Array. at /etc/puppet/modules/yum/manifests/defaults.pp:10:6

Tested on 3.6.2, 3.5.1
On 3.4.3 works correctly

Remi PHP 7.2

Remi has a repo for PHP 7.2 now, but it's not available here. I have a PR for that; I'll reference this issue from it momentarily.

Docker repo

Official Docker repository support in yum::repos::docker

"options" feature is not working

Hey, thanks for this awesome module, I use it on all of my EL-based machines.

I recently had a need to exclude a package via yum configs, so I tried using yum::options but I can't get it to work. I tried looking through your code to figure it out but ultimately ended up here to ask you for your help.

This is my hiera code:


---
classes:
 - yum

yum::options:
 - "exclude=cloud-init"

metadata.json file permissions are "600"

Hi there,

I am using librarian-puppet to install some modules and puppet-yum gets downloaded as a dependency.

The metadata.json file in the module's directory ends up with 0600 file permissions. For some reason, the puppet master tries to read this file and fails.

Other modules I am using do not show this problem.

Any idea what might be wrong?

centosplus is always installed

I'm using CentOS 6.4. If I call the yum class either of the following ways:

class { 'yum':
extrarepo => [ 'epel' , 'puppetlabs' ],
}

include yum::repo::puppetlabs
include yum::repo::epel

I always end up with too many repos installed including centosplus.

repo id repo name status
base CentOS-6 - Base 6,381
centosplus CentOS-6 - Centosplus 0+35
epel Extra Packages for Enterprise Linux 6 - x86_64 8,906+100
extras CentOS-6 - Extras 12
puppetlabs Puppet Labs Packages 277
puppetlabs-deps Puppet Labs Dependencies El 6 - x86_64 0+47
puppetlabs-products Puppet Labs Products El 6 - x86_64 0+277
puppetlabs_dependencies Puppet Labs Packages 47
updates CentOS-6 - Updates 768
repolist: 16,391

scl.pp not compleet

Expected Behavior

working scl and scl-rh repo

Actual Behavior

only scl(o) is added

Steps to Reproduce the Problem

  1. use the module on a host
  2. look at /etc/yum.repos.d
  3. only scl available

Specifications

Please add this info:
I'm using Foreman-1.11.3 and discovered this this week when creating a bunch of new VMs.
Running yum install centos-release-scl gives my both scl and sc-rh repos and thus access to for example php54-php and mysql55.
When I only use scp.pp from puppet-yum I only get scl.repo and thus no php54 etc.

I'll try to make a PR next week or add the code needed to this issue. What is needed is that scp.pp creates TWO repos instead of one.

Regards,

Joop

Epel repo doesn't work on CentOS 7 x86_64

I've installed epel-release manually, and what I see in /etc/yum.repos.d/epel.repo is the following:

mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-source-7&arch=$basearch

However, what puppet-yum generates is this:

mirrorlist=http://mirrors.fedoraproject.org/mirrorlist?repo=epel-7&arch=$basearch

When multiple other modules reference this module with the same definitions, collisions occur.

Expected Behavior

Each repo and yumrepo should only be declared once.

Actual Behavior

When multiple other modules add a repo of the same name in their code, collisions occur on compilation.

Steps to Reproduce the Problem

  1. Add multiple other modules to Puppetfile (creating custom modules would suffice) that defined the same resource - Yumrepo['epel'] as a example
  2. Puppet will generate the following error on compilation:
    Could not retrieve catalog from remote server: Error 400 on SERVER: Duplicate declaration: Yumrepo[epel] is already declared in file /etc/puppet/modules/epel/manifests/init.pp:90; cannot redeclare at /etc/puppet/modules/yum/manifests/managed_yumrepo.pp:80 on node

Specifications

Affects all versions and clients. (A PR has been opened on the epel module as well.)

Please add this info:

  1. Output of facter -p on the failing node (at least the OS related facts)

    operatingsystem => RedHat
    operatingsystemmajrelease => 7
    operatingsystemrelease => 7.2
    os => {"name"=>"RedHat", "family"=>"RedHat", "release"=>{"major"=>"7", "minor"=>"2", "full"=>"7.2"}}
    osfamily => RedHat

  2. Version of Puppet and of the module

    Puppet 3.8
    v2.1.21

  3. The relevant Puppet code and eventually Hiera data

    voxpupuli/puppet-epel#54

yum update exclusions

Hello,

it would be great if there'd be a parameter like "exclude" which prevents "yum update" to update specified packages.

//nms

new fact "os"

Question : could we use new fact "os" in order to manage Puppet repositories for XenServer hosts ?

Expected Behavior

manage EL7 packages for XenServer 7.0 (and EL5 for XenServer 6.x)
we should use "os.name" and "os.release.major" facts

Actual Behavior

on all XenServer releases, Puppet packages are for EL5

Remi repositories on Amazon Linux

Expected Behavior

Use remi repositories to install php.

Actual Behavior

Remi repositories relies on yum's $releasever, which resolves to 'latest' on Amazon Linux. Remi's doesn't have a 'latest' endpoint.

Steps to Reproduce the Problem

  1. Boot a fresh EC2 instance
  2. Use https://forge.puppet.com/mayflower/php module
  3. Spend a few hours trying to figure out what's going on

Specifications

facter -p output:

# facter -p
aio_agent_version => 1.5.3
augeas => {
  version => "1.4.0"
}
disks => {
  xvda => {
    size => "8.00 GiB",
    size_bytes => 8589934592
  }
}
dmi => {
  bios => {
    release_date => "05/12/2016",
    vendor => "Xen",
    version => "4.2.amazon"
  },
  chassis => {
    type => "Other"
  },
  manufacturer => "Xen",
  product => {
    name => "HVM domU",
    serial_number => "...",
    uuid => "..."
  }
}
ec2_metadata => {
  ami-id => "ami-6dd04501",
  ami-launch-index => "0",
  ami-manifest-path => "(unknown)",
  block-device-mapping => {
    ami => "/dev/xvda",
    root => "/dev/xvda"
  },
  hostname => "ip-192-168-4-238.awscompany.lan",
  iam => {
    info => "{
  "Code" : "Success",
  "LastUpdated" : "2016-07-30T14:58:41Z",
  "InstanceProfileArn" : "arn:aws:iam::myawsaccount:instance-profile/site",
  "InstanceProfileId" : "..."
}"
  },
  instance-action => "none",
  instance-id => "i-80d04251",
  instance-type => "t2.small",
  local-hostname => "ip-192-168-4-238.awscompany.lan",
  local-ipv4 => "192.168.4.238",
  mac => "0a:55:40:34:2a:2f",
  metrics => {
    vhostmd => "<?xml version="1.0" encoding="UTF-8"?>"
  },
  network => {
    interfaces => {
      macs => {
        0a:55:40:34:2a:2f => {
          device-number => "0",
          interface-id => "eni-df4bdb87",
          local-hostname => "ip-192-168-4-238.awscompany.lan",
          local-ipv4s => "192.168.4.238",
          mac => "0a:55:40:34:2a:2f",
          owner-id => "myawsaccount",
          security-group-ids => "sg-90c81ef5",
          security-groups => "BACKEND-VPC-DEV",
          subnet-id => "subnet-d02a2a96",
          subnet-ipv4-cidr-block => "192.168.4.0/24",
          vpc-id => "vpc-0eed6c6b",
          vpc-ipv4-cidr-block => "192.168.0.0/16",
          vpc-ipv4-cidr-blocks => "192.168.0.0/16"
        }
      }
    }
  },
  placement => {
    availability-zone => "sa-east-1c"
  },
  profile => "default-hvm",
  public-keys => {
    0 => {
      openssh-key => ""
    }
  },
  reservation-id => "r-0f7ffede",
  security-groups => "BACKEND-VPC-DEV",
  services => {
    domain => "amazonaws.com",
    partition => "aws"
  }
}
ec2_region => sa-east-1
ec2_tag_name => stage-site
ec2_userdata => "..."
facterversion => 3.3.0
filesystems => ext3,ext4
gemhome => /opt/puppetlabs/puppet/lib/ruby/gems/2.1.0
identity => {
  gid => 0,
  group => "root",
  uid => 0,
  user => "root"
}
is_pe => false
is_virtual => true
java_default_home => /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.101.x86_64
java_libjvm_path => /usr/lib/jvm/java-1.7.0-openjdk-1.7.0.101.x86_64/jre/lib/amd64/server
java_major_version => 7
java_patch_level => 101
java_version => 1.7.0_101
kernel => Linux
kernelmajversion => 4.4
kernelrelease => 4.4.11-23.53.amzn1.x86_64
kernelversion => 4.4.11
last_run => Sat Jul 30 12:28:46:729149659 BRT 2016
load_averages => {
  15m => 0.17,
  1m => 0.11,
  5m => 0.23
}
memory => {
  system => {
    available => "1.52 GiB",
    available_bytes => 1628069888,
    capacity => "22.50%",
    total => "1.96 GiB",
    total_bytes => 2100764672,
    used => "450.80 MiB",
    used_bytes => 472694784
  }
}
mountpoints => {
  / => {
    available => "6.11 GiB",
    available_bytes => 6563020800,
    capacity => "21.11%",
    device => "/dev/xvda1",
    filesystem => "ext4",
    options => [
      "rw",
      "noatime",
      "data=ordered"
    ],
    size => "7.75 GiB",
    size_bytes => 8318783488,
    used => "1.64 GiB",
    used_bytes => 1755762688
  }
}
networking => {
  dhcp => "192.168.4.1",
  domain => "awscompany.lan",
  fqdn => "ip-192-168-4-238.awscompany.lan",
  hostname => "ip-192-168-4-238",
  interfaces => {
    eth0 => {
      bindings => [
        {
          address => "192.168.4.238",
          netmask => "255.255.255.0",
          network => "192.168.4.0"
        }
      ],
      bindings6 => [
        {
          address => "fe80::855:40ff:fe34:2a2f",
          netmask => "ffff:ffff:ffff:ffff::",
          network => "fe80::"
        }
      ],
      dhcp => "192.168.4.1",
      ip => "192.168.4.238",
      ip6 => "fe80::855:40ff:fe34:2a2f",
      mac => "0a:55:40:34:2a:2f",
      mtu => 9001,
      netmask => "255.255.255.0",
      netmask6 => "ffff:ffff:ffff:ffff::",
      network => "192.168.4.0",
      network6 => "fe80::"
    },
    lo => {
      bindings => [
        {
          address => "127.0.0.1",
          netmask => "255.0.0.0",
          network => "127.0.0.0"
        }
      ],
      bindings6 => [
        {
          address => "::1",
          netmask => "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
          network => "::1"
        }
      ],
      ip => "127.0.0.1",
      ip6 => "::1",
      mtu => 65536,
      netmask => "255.0.0.0",
      netmask6 => "ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff",
      network => "127.0.0.0",
      network6 => "::1"
    }
  },
  ip => "192.168.4.238",
  ip6 => "fe80::855:40ff:fe34:2a2f",
  mac => "0a:55:40:34:2a:2f",
  mtu => 9001,
  netmask => "255.255.255.0",
  netmask6 => "ffff:ffff:ffff:ffff::",
  network => "192.168.4.0",
  network6 => "fe80::",
  primary => "eth0"
}
nginx_version => 1.8.1
os => {
  architecture => "x86_64",
  family => "RedHat",
  hardware => "x86_64",
  name => "Amazon",
  release => {
    full => "4.4.11-23.53.amzn1.x86_64",
    major => "4",
    minor => "4"
  },
  selinux => {
    enabled => false
  }
}
package_provider => yum
partitions => {
  /dev/xvda1 => {
    filesystem => "ext4",
    label => "/",
    mount => "/",
    partlabel => "Linux",
    partuuid => "e3466a0c-3a36-48a8-8bc2-f5ab5ee2afec",
    size => "8.00 GiB",
    size_bytes => 8587820544,
    uuid => "43c07df6-e944-4b25-8fd1-5ff848b584b2"
  }
}
path => /opt/puppetlabs/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin
phpversion => 5.6.24
processors => {
  count => 1,
  isa => "x86_64",
  models => [
    "Intel(R) Xeon(R) CPU E5-2670 v2 @ 2.50GHz"
  ],
  physicalcount => 1
}
puppet_vardir => /opt/puppetlabs/puppet/cache
puppetversion => 4.5.3
root_home => /root
ruby => {
  platform => "x86_64-linux",
  sitedir => "/opt/puppetlabs/puppet/lib/ruby/site_ruby/2.1.0",
  version => "2.1.9"
}
service_provider => redhat
ssh => { ...
}
system_uptime => {
  days => 0,
  hours => 19,
  seconds => 70054,
  uptime => "19:27 hours"
}
timezone => BRT
virtual => xenhvm

puppet-yum version: 2.1.27
mayflower/php: 4.0.0-beta1

puppet code:

class mymod {
  class { '::php::globals':
    php_version => '5.6'
  }->
  class { '::php':
    manage_repos => true
  }
}

yum-cron service name

service yum-cron parameter "name" make no sense, because variable $yum::service variable is not defined.

service { 'yum-cron':
ensure => $manage_update_service_ensure,
name => $yum::service,
enable => $manage_update_service_enable,
hasstatus => true,

Causes warning on master durring catalog compile:

WARN [puppetserver] Puppet Unknown variable: 'yum::service'. at external/yum/manifests/cron.pp:32:19

operatingsystemrelease fact regexp

Hi,

operatingsystemrelease regexp fails with el7 (using yum-cron feature). e.g. operatingsystemrelease 7.3.1611 is matched as el6 because of regexp (params.pp:46) - version contains "6":

  $update_template = $::operatingsystemrelease ? {
    /6.*/ => 'yum/yum-cron.erb',
    /7.*/ => 'yum/yum-cron-rhel7.erb',
    default => undef,
  }

Please use operatingsystemmajrelease fact instead, or change regexp to beggins with 6/7 - /^6./ /^7./

This works fine:

  $update_template = $::operatingsystemrelease ? {
    /^6.*/ => 'yum/yum-cron.erb',
    /^7.*/ => 'yum/yum-cron-rhel7.erb',
    default => undef,
  }

  $update_configuration_file = $::operatingsystemrelease ? {
    /^6.*/ => '/etc/sysconfig/yum-cron',
    /^7.*/ => '/etc/yum/yum-cron.conf',
    default => undef,
  }

Thanks,
Tomas

Epel fails to install on CentOS 7

Error: /Stage[main]/Yum::Repo::Epel/Yum::Managed_yumrepo[epel]/File[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7]: Could not evaluate: Could not retrieve information from environment production source(s) puppet:///modules/yum/rpm-gpg/RPM-GPG-KEY-EPEL-7
Notice: /Stage[main]/Yum::Repo::Epel/Yum::Managed_yumrepo[epel]/File[/etc/yum.repos.d/epel.repo]/ensure: created
Notice: /Stage[main]/Yum::Repo::Epel/Yum::Managed_yumrepo[epel]/Yumrepo[epel]: Dependency File[/etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7] has failures: true
Warning: /Stage[main]/Yum::Repo::Epel/Yum::Managed_yumrepo[epel]/Yumrepo[epel]: Skipping because of failed dependencies

virtualbox repo

Hello,

in the first tests it were no problem to add epel and puppetlabs repo.
Now I try to add virtualbox, but it doesn't work anymore. And it doesn't work even with epel and puppetlabs.

node /pc....co.com.de/ inherits developer{
class { 'yum':
extrarepo => [ 'epel' , 'puppetlabs', 'virtualbox' ],
}
include virtualbox
}

I receive this error:
puppet agent -t
Info: Retrieving plugin
Info: Loading facts in /var/lib/puppet/lib/facter/root_home.rb
Info: Loading facts in /var/lib/puppet/lib/facter/pe_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppi_projects.rb
Info: Loading facts in /var/lib/puppet/lib/facter/puppet_vardir.rb
Info: Loading facts in /var/lib/puppet/lib/facter/vmwaretools_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/os_maj_version.rb
Info: Loading facts in /var/lib/puppet/lib/facter/last_run.rb
Info: Loading facts in /var/lib/puppet/lib/facter/environment.rb
Info: Loading facts in /var/lib/puppet/lib/facter/facter_dot_d.rb
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: uninitialized constant Puppet::FileSystem::File at /etc/puppet/modules/yum/manifests/init.pp:181 on node pc3370co.com.de
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Thanks in advance!
Björn

Parameter source failed on File[yum.dir]: Cannot use relative URLs

Prerequisites: two servers (master.example.com and agent.example.com) both Centos 6.5 x86_64 .

Master config:
/etc/puppet/modules
└─┬ example42-yum (v2.1.17)
└── example42-puppi (v2.1.10)
[root@master site.pp]# rpm -a -q|grep puppet
puppetlabs-release-6-11.noarch
puppet-3.7.1-1.el6.noarch
puppet-server-3.7.1-1.el6.noarch

site.pp:

node 'agent.example.com' {
class { 'yum': }
}

agent.example.com config:
[root@agent ~]# rpm -a -q|grep puppet
puppetlabs-release-6-11.noarch
puppet-3.7.3-1.el6.noarch

when I try to apply configuration at node 'agent.example.com', I recieve the following error:

Error: Failed to apply catalog: Parameter source failed on File[yum.dir]: Cannot use relative URLs '' at /etc/puppet/modules/yum/manifests/init.pp:290
Wrapped exception:
Cannot use relative URLs ''

listing of puppet agent -t -v --debug --trace is below

Debug: Using settings: adding file resource 'statedir': 'File[/var/lib/puppet/state]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"1755", :links=>:follow, :path=>"/var/lib/puppet/state"}'
Debug: Puppet::Type::User::ProviderPw: file pw does not exist
Debug: Puppet::Type::User::ProviderDirectoryservice: file /usr/bin/dsimport does not exist
Debug: Puppet::Type::User::ProviderUser_role_add: file roledel does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::User::ProviderLdap: feature ldap is missing
Debug: Puppet::Type::Group::ProviderPw: file pw does not exist
Debug: Puppet::Type::Group::ProviderDirectoryservice: file /usr/bin/dscl does not exist
Debug: Failed to load library 'ldap' for feature 'ldap'
Debug: Puppet::Type::Group::ProviderLdap: feature ldap is missing
Debug: Using settings: adding file resource 'privatedir': 'File[/var/lib/puppet/ssl/private]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/ssl/private"}'
Debug: Using settings: adding file resource 'rundir': 'File[/var/run/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/run/puppet"}'
Debug: Using settings: adding file resource 'hostcrl': 'File[/var/lib/puppet/ssl/crl.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/crl.pem"}'
Debug: Using settings: adding file resource 'certdir': 'File[/var/lib/puppet/ssl/certs]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs"}'
Debug: Using settings: adding file resource 'clientyamldir': 'File[/var/lib/puppet/client_yaml]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/client_yaml"}'
Debug: Using settings: adding file resource 'logdir': 'File[/var/log/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/log/puppet"}'
Debug: Using settings: adding file resource 'hostprivkey': 'File[/var/lib/puppet/ssl/private_keys/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/ssl/private_keys/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'publickeydir': 'File[/var/lib/puppet/ssl/public_keys]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/public_keys"}'
Debug: Using settings: adding file resource 'plugindest': 'File[/var/lib/puppet/lib]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/lib"}'
Debug: Using settings: adding file resource 'classfile': 'File[/var/lib/puppet/classes.txt]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :owner=>"root", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/classes.txt"}'
Debug: Using settings: adding file resource 'lastrunreport': 'File[/var/lib/puppet/state/last_run_report.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/state/last_run_report.yaml"}'
Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :links=>:follow, :path=>"/var/lib/puppet"}'
Debug: Using settings: adding file resource 'clientbucketdir': 'File[/var/lib/puppet/clientbucket]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/clientbucket"}'
Debug: Using settings: adding file resource 'localcacert': 'File[/var/lib/puppet/ssl/certs/ca.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs/ca.pem"}'
Debug: Using settings: adding file resource 'privatekeydir': 'File[/var/lib/puppet/ssl/private_keys]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/ssl/private_keys"}'
Debug: Using settings: adding file resource 'pluginfactdest': 'File[/var/lib/puppet/facts.d]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/facts.d"}'
Debug: Using settings: adding file resource 'graphdir': 'File[/var/lib/puppet/state/graphs]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/state/graphs"}'
Debug: Using settings: adding file resource 'statefile': 'File[/var/lib/puppet/state/state.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"660", :links=>:follow, :path=>"/var/lib/puppet/state/state.yaml"}'
Debug: Using settings: adding file resource 'hostcert': 'File[/var/lib/puppet/ssl/certs/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'ssldir': 'File[/var/lib/puppet/ssl]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"771", :links=>:follow, :path=>"/var/lib/puppet/ssl"}'
Debug: Using settings: adding file resource 'client_datadir': 'File[/var/lib/puppet/client_data]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/client_data"}'
Debug: Using settings: adding file resource 'lastrunfile': 'File[/var/lib/puppet/state/last_run_summary.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/state/last_run_summary.yaml"}'
Debug: Using settings: adding file resource 'confdir': 'File[/etc/puppet]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/etc/puppet"}'
Debug: Using settings: adding file resource 'hostpubkey': 'File[/var/lib/puppet/ssl/public_keys/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/public_keys/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'requestdir': 'File[/var/lib/puppet/ssl/certificate_requests]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/certificate_requests"}'
Debug: Using settings: adding file resource 'resourcefile': 'File[/var/lib/puppet/state/resources.txt]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :owner=>"root", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/state/resources.txt"}'
Debug: /File[/var/lib/puppet/state/last_run_summary.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/state/resources.txt]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/state/last_run_report.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/state/graphs]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/client_data]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/private_keys/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]
Debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
Debug: /File[/var/lib/puppet/classes.txt]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/clientbucket]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/client_yaml]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/public_keys/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys]
Debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl/certs/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
Debug: /File[/var/lib/puppet/state/state.yaml]: Autorequiring File[/var/lib/puppet/state]
Debug: /File[/var/lib/puppet/facts.d]: Autorequiring File[/var/lib/puppet]
Debug: Finishing transaction 70263140934660
Debug: Runtime environment: run_mode=agent, ruby_version=1.8.7, puppet_version=3.7.3
Debug: Using settings: adding file resource 'statedir': 'File[/var/lib/puppet/state]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"1755", :links=>:follow, :path=>"/var/lib/puppet/state"}'
Debug: Using settings: adding file resource 'privatedir': 'File[/var/lib/puppet/ssl/private]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/ssl/private"}'
Debug: Using settings: adding file resource 'rundir': 'File[/var/run/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/run/puppet"}'
Debug: Using settings: adding file resource 'hostcrl': 'File[/var/lib/puppet/ssl/crl.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/crl.pem"}'
Debug: Using settings: adding file resource 'certdir': 'File[/var/lib/puppet/ssl/certs]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs"}'
Debug: Using settings: adding file resource 'logdir': 'File[/var/log/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/log/puppet"}'
Debug: Using settings: adding file resource 'hostprivkey': 'File[/var/lib/puppet/ssl/private_keys/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/ssl/private_keys/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'publickeydir': 'File[/var/lib/puppet/ssl/public_keys]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/public_keys"}'
Debug: Using settings: adding file resource 'plugindest': 'File[/var/lib/puppet/lib]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/lib"}'
Debug: Using settings: adding file resource 'vardir': 'File[/var/lib/puppet]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :links=>:follow, :path=>"/var/lib/puppet"}'
Debug: Using settings: adding file resource 'localcacert': 'File[/var/lib/puppet/ssl/certs/ca.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs/ca.pem"}'
Debug: Using settings: adding file resource 'privatekeydir': 'File[/var/lib/puppet/ssl/private_keys]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/ssl/private_keys"}'
Debug: Using settings: adding file resource 'pluginfactdest': 'File[/var/lib/puppet/facts.d]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/facts.d"}'
Debug: Using settings: adding file resource 'hostcert': 'File[/var/lib/puppet/ssl/certs/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/certs/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'ssldir': 'File[/var/lib/puppet/ssl]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"771", :links=>:follow, :path=>"/var/lib/puppet/ssl"}'
Debug: Using settings: adding file resource 'confdir': 'File[/etc/puppet]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/etc/puppet"}'
Debug: Using settings: adding file resource 'hostpubkey': 'File[/var/lib/puppet/ssl/public_keys/agent.example.com.pem]{:backup=>false, :group=>"puppet", :ensure=>:file, :loglevel=>:debug, :owner=>"puppet", :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/ssl/public_keys/agent.example.com.pem"}'
Debug: Using settings: adding file resource 'requestdir': 'File[/var/lib/puppet/ssl/certificate_requests]{:backup=>false, :group=>"puppet", :ensure=>:directory, :loglevel=>:debug, :owner=>"puppet", :mode=>"755", :links=>:follow, :path=>"/var/lib/puppet/ssl/certificate_requests"}'
Debug: /File[/var/lib/puppet/ssl/private]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/private_keys]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/certs/ca.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
Debug: /File[/var/lib/puppet/ssl/private_keys/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/private_keys]
Debug: /File[/var/lib/puppet/ssl/certs]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/certs/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/certs]
Debug: /File[/var/lib/puppet/lib]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/state]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl/certificate_requests]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/crl.pem]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl/public_keys/agent.example.com.pem]: Autorequiring File[/var/lib/puppet/ssl/public_keys]
Debug: /File[/var/lib/puppet/facts.d]: Autorequiring File[/var/lib/puppet]
Debug: /File[/var/lib/puppet/ssl/public_keys]: Autorequiring File[/var/lib/puppet/ssl]
Debug: /File[/var/lib/puppet/ssl]: Autorequiring File[/var/lib/puppet]
Debug: Finishing transaction 70263141073420
Debug: Using cached certificate for ca
Debug: Using cached certificate for agent.example.com
Debug: Using settings: adding file resource 'clientyamldir': 'File[/var/lib/puppet/client_yaml]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/client_yaml"}'
Debug: Using settings: adding file resource 'classfile': 'File[/var/lib/puppet/classes.txt]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :owner=>"root", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/classes.txt"}'
Debug: Using settings: adding file resource 'lastrunreport': 'File[/var/lib/puppet/state/last_run_report.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/state/last_run_report.yaml"}'
Debug: Using settings: adding file resource 'clientbucketdir': 'File[/var/lib/puppet/clientbucket]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/clientbucket"}'
Debug: Using settings: adding file resource 'graphdir': 'File[/var/lib/puppet/state/graphs]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :links=>:follow, :path=>"/var/lib/puppet/state/graphs"}'
Debug: Using settings: adding file resource 'statefile': 'File[/var/lib/puppet/state/state.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"660", :links=>:follow, :path=>"/var/lib/puppet/state/state.yaml"}'
Debug: Using settings: adding file resource 'client_datadir': 'File[/var/lib/puppet/client_data]{:backup=>false, :ensure=>:directory, :loglevel=>:debug, :mode=>"750", :links=>:follow, :path=>"/var/lib/puppet/client_data"}'
Debug: Using settings: adding file resource 'lastrunfile': 'File[/var/lib/puppet/state/last_run_summary.yaml]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :mode=>"644", :links=>:follow, :path=>"/var/lib/puppet/state/last_run_summary.yaml"}'
Debug: Using settings: adding file resource 'resourcefile': 'File[/var/lib/puppet/state/resources.txt]{:backup=>false, :ensure=>:file, :loglevel=>:debug, :owner=>"root", :mode=>"640", :links=>:follow, :path=>"/var/lib/puppet/state/resources.txt"}'
Debug: Finishing transaction 70263140521380
Debug: Loaded state in 0.00 seconds
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: node supports formats: pson yaml b64_zlib_yaml raw
Debug: Using cached certificate for ca
Debug: Using cached certificate for agent.example.com
Debug: Creating new connection for https://master.example.com:8140
Debug: Using cached certificate_revocation_list for ca
Debug: Starting connection for https://master.example.com:8140
Debug: Caching connection for https://master.example.com:8140
Info: Retrieving pluginfacts
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: file_metadata supports formats: pson yaml b64_zlib_yaml raw
Debug: Using cached connection for https://master.example.com:8140
Debug: Caching connection for https://master.example.com:8140
Debug: Finishing transaction 70263153281860
Info: Retrieving plugin
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: file_metadata supports formats: pson yaml b64_zlib_yaml raw
Debug: Using cached connection for https://master.example.com:8140
Debug: Caching connection for https://master.example.com:8140
Debug: Finishing transaction 70263152793860
Debug: Loading external facts from /var/lib/puppet/facts.d
Info: Loading facts
Debug: Loading facts from /var/lib/puppet/lib/facter/windows_common_appdata.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/iptables_version.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/concat_basedir.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/puppet_vardir.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/facter_dot_d.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/puppi_projects.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/iptables_persistent_version.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/pe_version.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/last_run.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/ip6tables_version.rb
Debug: Loading facts from /var/lib/puppet/lib/facter/root_home.rb
Debug: Failed to load library 'msgpack' for feature 'msgpack'
Debug: Puppet::Network::Format[msgpack]: feature msgpack is missing
Debug: catalog supports formats: pson dot yaml b64_zlib_yaml raw
Debug: Using cached connection for https://master.example.com:8140
Debug: Caching connection for https://master.example.com:8140
Debug: Executing '/bin/rpm --version'
Debug: Executing '/bin/rpm --version'
Debug: Executing '/bin/rpm -ql rpm'
Info: Caching catalog for agent.example.com
Debug: Puppet::Type::Package::ProviderHpux: file /usr/sbin/swinstall does not exist
Debug: Puppet::Type::Package::ProviderUrpmi: file urpmi does not exist
Debug: Puppet::Type::Package::ProviderNim: file /usr/sbin/nimclient does not exist
Debug: Puppet::Type::Package::ProviderPacman: file /usr/bin/pacman does not exist
Debug: Puppet::Type::Package::ProviderAix: file /usr/sbin/installp does not exist
Debug: Puppet::Type::Package::ProviderRug: file /usr/bin/rug does not exist
Debug: Puppet::Type::Package::ProviderPorts: file /usr/local/sbin/portupgrade does not exist
Debug: Puppet::Type::Package::ProviderPortupgrade: file /usr/local/sbin/portinstall does not exist
Debug: Puppet::Type::Package::ProviderPkg: file /usr/bin/pkg does not exist
Debug: Puppet::Type::Package::ProviderSunfreeware: file pkg-get does not exist
Debug: Puppet::Type::Package::ProviderAptrpm: file apt-get does not exist
Debug: Puppet::Type::Package::ProviderAptitude: file /usr/bin/aptitude does not exist
Debug: Puppet::Type::Package::ProviderFreebsd: file /usr/sbin/pkg_add does not exist
Debug: Puppet::Type::Package::ProviderZypper: file /usr/bin/zypper does not exist
Debug: Puppet::Type::Package::ProviderApt: file /usr/bin/apt-get does not exist
Debug: Puppet::Type::Package::ProviderSun: file /usr/sbin/pkgadd does not exist
Debug: Puppet::Type::Package::ProviderPkgin: file pkgin does not exist
Debug: Puppet::Type::Package::ProviderPortage: file /usr/bin/emerge does not exist
Debug: Puppet::Type::Package::ProviderUp2date: file /usr/sbin/up2date-nox does not exist
Debug: Puppet::Type::Package::ProviderFink: file /sw/bin/fink does not exist
Debug: Puppet::Type::Package::ProviderOpkg: file opkg does not exist
Debug: Puppet::Type::Package::ProviderDpkg: file /usr/bin/dpkg does not exist
Debug: Puppet::Type::Package::ProviderOpenbsd: file pkg_add does not exist
Debug: Puppet::Type::Service::ProviderSystemd: file systemctl does not exist
Debug: Puppet::Type::Service::ProviderOpenrc: file /bin/rc-status does not exist
Debug: Puppet::Type::Service::ProviderRunit: file /usr/bin/sv does not exist
Debug: Puppet::Type::Service::ProviderDaemontools: file /usr/bin/svstat does not exist
Debug: Puppet::Type::Service::ProviderGentoo: file /sbin/rc-update does not exist
Debug: Puppet::Type::Service::ProviderLaunchd: file /bin/launchctl does not exist
Debug: Puppet::Type::Service::ProviderDebian: file /usr/sbin/update-rc.d does not exist
Error: Failed to apply catalog: Parameter source failed on File[yum.dir]: Cannot use relative URLs '' at /etc/puppet/modules/yum/manifests/init.pp:290
/usr/lib/ruby/site_ruby/1.8/puppet/util/errors.rb:104:in fail' /usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:64:inunsafe_validate'
/usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:55:in each' /usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:55:inunsafe_validate'
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:465:in validate' /usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:500:invalue='
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:654:in []=' /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2272:inset_parameters'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2266:in each' /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2266:inset_parameters'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2222:in initialize' /usr/lib/ruby/site_ruby/1.8/puppet/type/file.rb:481:ininitialize'
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:348:in new' /usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:348:into_ral'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:512:in to_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:504:ineach'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:504:in to_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:407:into_ral'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:76:in convert_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:71:inretrieve_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:104:in prepare_and_retrieve_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:203:inrun_internal'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:132:in run' /usr/lib/ruby/site_ruby/1.8/puppet/context.rb:64:inoverride'
/usr/lib/ruby/site_ruby/1.8/puppet.rb:244:in override' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:131:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:47:in run' /usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:20:inlock'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:47:in run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:117:inwith_client'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:44:in run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:82:inrun_in_fork'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:43:in run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:179:incall'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:179:in controlled_run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:41:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:356:in onetime' /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:322:inrun_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in run' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:507:inplugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in run' /usr/lib/ruby/site_ruby/1.8/puppet/util.rb:488:inexit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:in run' /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:146:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:92:in execute' /usr/bin/puppet:8 Wrapped exception: Cannot use relative URLs '' /usr/lib/ruby/site_ruby/1.8/puppet/util/errors.rb:104:infail'
/usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:64:in unsafe_validate' /usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:55:ineach'
/usr/lib/ruby/site_ruby/1.8/puppet/type/file/source.rb:55:in unsafe_validate' /usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:465:invalidate'
/usr/lib/ruby/site_ruby/1.8/puppet/parameter.rb:500:in value=' /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:654:in[]='
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2272:in set_parameters' /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2266:ineach'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2266:in set_parameters' /usr/lib/ruby/site_ruby/1.8/puppet/type.rb:2222:ininitialize'
/usr/lib/ruby/site_ruby/1.8/puppet/type/file.rb:481:in initialize' /usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:348:innew'
/usr/lib/ruby/site_ruby/1.8/puppet/resource.rb:348:in to_ral' /usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:512:into_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:504:in each' /usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:504:into_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:407:in to_ral' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:76:inconvert_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:71:in retrieve_catalog' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:104:inprepare_and_retrieve_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:203:in run_internal' /usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:132:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/context.rb:64:in override' /usr/lib/ruby/site_ruby/1.8/puppet.rb:244:inoverride'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:131:in run' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:47:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/agent/locker.rb:20:in lock' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:47:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:117:in with_client' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:44:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:82:in run_in_fork' /usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:43:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:179:in call' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:179:incontrolled_run'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:41:in run' /usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:356:inonetime'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:322:in run_command' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:507:in plugin_hook' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:488:in exit_on_fail' /usr/lib/ruby/site_ruby/1.8/puppet/application.rb:381:inrun'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:146:in run' /usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:92:inexecute'
/usr/bin/puppet:8
Debug: Using cached connection for https://master.example.com:8140
Debug: Caching connection for https://master.example.com:8140
Debug: Closing connection for https://master.example.com:8140

Specifying a mirror using yum::managed_yumrepo (and Hiera)

Hey, my datacenter hosts a yum mirror. We'd like to use your module to make use of it. How would you go about doing it? Maybe something like this? Note the value of "mirrorlist" is mirrorlist.mycompany.com


---
classes: [ 'yum' ]
yum::defaultrepo: 'false'
yum::managed_yumrepo:
 'base':
    descr: 'CentOS-$releasever - Base'
    mirrorlist: 'http://mirrorlist.mycompany.com/?release=$releasever&arch=$basearch&repo=os'
    enabled: 1
    gpgcheck:  1
    gpgkey:  'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6'
    gpgkey_source:'puppet:///modules/yum/rpm-gpg/RPM-GPG-KEY-CentOS-6'
    priority: 1
 'updates':
    .... 
 'extras':
    .... and so on....

This looks like it would work. But I get this error on the client:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: malformed format string - %S at /etc/puppet/environments/development/manifests/site.pp:14 on node mynode.company.local

Line 14 is simply a hiera_include('classes')

Add support for Redhat 7.x -

Hi,

It be great if the module supported Redhat 7 and all it's native repositories along gpg and all optional selections i.e.

rhui-REGION-client-config-server-7/x86_64
rhui-REGION-rhel-server-debug-extras/7Server/x86_64
rhui-REGION-rhel-server-debug-optional/7Server/x86_64
rhui-REGION-rhel-server-debug-rh-common/7Server/x86_64
rhui-REGION-rhel-server-debug-rhscl/7Server/x86_64
rhui-REGION-rhel-server-debug-supplementary/7Server/x86_64
rhui-REGION-rhel-server-extras/7Server/x86_64
rhui-REGION-rhel-server-optional/7Server/x86_64
rhui-REGION-rhel-server-releases/7Server/x86_64
rhui-REGION-rhel-server-releases-debug/7Server/x86_64
rhui-REGION-rhel-server-releases-source/7Server/x86_64
rhui-REGION-rhel-server-rh-common/7Server/x86_64
rhui-REGION-rhel-server-rhscl/7Server/x86_64
rhui-REGION-rhel-server-source-extras/7Server/x86_64
rhui-REGION-rhel-server-source-optional/7Server/x86_64
rhui-REGION-rhel-server-source-rh-common/7Server/x86_64
rhui-REGION-rhel-server-source-rhscl/7Server/x86_64
rhui-REGION-rhel-server-source-supplementary/7Server/x86_64
rhui-REGION-rhel-server-supplementary/7Server/x86_64

Puppet 4 compability

I have used this module previously with success, but with Puppet 4 it's failing.

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Evaluation Error: Error while evaluating a Function Call, hiera() has been converted to 4x API at /etc/puppetlabs/code/environments/production/modules/yum/manifests/init.pp:167:26 on node puppet

Is this a known issue and how can it be fixed?

Problem with cron.pp

Somehow the cron.pp isn't able to retrieve the required variables from params.pp.

puppet agent -t

Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find template '' at /etc/puppet/modules/yum/manifests/cron.pp:42 on node 3384
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

It don't get update_template and update_configuration_file and it's not related to the code in params.pp. Cause when I change default = undef to default = "FOO" it is still not working.

I got this behaviour with puppet 3 and 4.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.