Coder Social home page Coder Social logo

puppet-foreman's Introduction

Puppet Forge Build Status

Puppet module for managing Foreman

Installs and configures Foreman, part of the Foreman installer or to be used as a Puppet module.

Many Foreman plugins can be installed by adding additional foreman::plugin::* classes, extra compute resource support via foreman::compute::* classes and the Hammer CLI can be installed by adding foreman::cli.

By default, it configures Foreman to run as a standalone service fronted by Apache as a reverse proxy with a PostgreSQL database.

The web interface is configured to use Puppet's SSL certificates by default, so ensure they're present first, reconfigure server_ssl_* or disable the ssl parameter. When used with the 'puppet' module, it will generate a new CA and the required certificate.

Lots of parameters are supplied to tune the default installation, which may be found in the class documentation at the top of each manifest.

Other modules may be used in combination with this one: puppet for managing a Puppet master and agent, and foreman_proxy to configure Foreman's Smart Proxy and related services.

Database support

The default database is PostgreSQL, which will be fully installed and managed on the host this module is applied to. Databases will be created with using the en_US.utf8 locale, which means a respective OS locale must be available on the database host. The database management can be disabled with db_manage.

Rails Cache support

Foreman supports different backends as Rails cache. This is handled by this module using the parameter rails_cache_store. The parameter takes a hash containing the type and options specfic to the backend.

The default is the file backend, configured via {'type' => 'file'}. To setup for redis use a hash similar to {'type' => 'redis', 'urls' => ['localhost:8479/4'], 'options' => {'compress' => 'true', 'namespace' => 'foreman'}} where urls takes an array of redis urls which get prepended with redis:// and options using a hash with options from rails falling back to {'compress' => 'true', 'namespace' => 'foreman'} if no option is provided.

An example configuration for activating the redis backend with a local instance could look like this:

class { 'foreman':
  rails_cache_store => {
    'type' => 'redis',
    'urls' => ['localhost:8479/4'],
    'options' => {
      'compress' => 'true',
      'namespace' => 'foreman'
    }
  }
}

Support policy

At any time, the module supports two releases, however the previous version may require parameters to be changed from their default values. These should be noted below.

Thus 'master' will support the upcoming major version and the current stable. The latest release (git tag, Puppet Forge) should support current and the previous stable release.

Foreman version compatibility notes

This module targets Foreman 3.1+. The module can not be used to manage Foreman installations on EL7.

This module configures Apache to serve static assets from /var/lib/foreman/public directly. This requires an appropriate SELinux policy, like the one introduced in foreman-selinux version 3.5. Additionally, some plugin packages might be incomplatible with such a deployment. To serve assets via Rails again, set foreman::config::apache::proxy_assets to true.

Types and providers

foreman_config_entry can be used to manage settings in Foreman's database, as seen in Administer > Settings. The cli provider uses foreman-rake to change settings.

foreman_smartproxy can create and manage registered smart proxies in Foreman's database. The rest_v3 provider uses the API with Ruby's HTTP library, OAuth and JSON.

foreman_hostgroup can be used to create and destroy hostgroups. Nested hostgroups are supported and hostgroups can be assigned to locations/organizations. The type currently doesn't support other properties such as environment, puppet classes etc.

Foreman ENC via hiera

There is a function foreman::enc to retrieve the ENC data. This returns the data as a hash and can be used in Hiera. This requires the URL to use the Puppet CA infrastructure:

---
version: 5
hierarchy:
  - name: "Foreman ENC"
    data_hash: foreman::enc
    options:
      url: https://foreman.example.com

It is also possible to use HTTP basic auth by adding a username/password to the URL in the form of https://username:[email protected].

Then within your manifests you can use lookup. For example, in manifests/site.pp:

node default {
  lookup('classes', {merge => unique}).include
}

Contributing

  • Fork the project
  • Commit and push until you are happy with your contribution
  • Send a pull request with a description of your changes

See the CONTRIBUTING.md file for much more information.

Adding new foreman::plugin::* classes is a very useful place to start contributing to this module.

More info

See https://theforeman.org or at #theforeman irc channel on freenode

Copyright (c) 2010-2013 Ohad Levy and their respective owners

Except where specified in provided modules, this program and entire repository is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/.

puppet-foreman's People

Contributors

adamruzicka avatar adelton avatar alexjfisher avatar ares avatar bastelfreak avatar cocker-cc avatar cristifalcas avatar dgoetz avatar dlobatog avatar domcleal avatar ehelms avatar ekohl avatar evgeni avatar gcoxmoz avatar gregsutcliffe avatar inecas avatar jhoblitt avatar lazyfrosch avatar lzap avatar mcanevet avatar mmoll avatar nbarrientos avatar ofedoren avatar ohadlevy avatar pierrer avatar shimshtein avatar stbenjam avatar timogoebel avatar vstone avatar wbclark 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

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

puppet-foreman's Issues

Error 400 on SERVER: undefined method `has_key?'

Hi,

I get some not usual error which i cant solve by my self, therefore please help me configure out whats going on.

manifests file:

  $f = { item        => 'fact_values',
        search       => 'fact = ipaddres',
        per_page     => '1000',
        foreman_url  => 'https://foreman.mycompany.com',
        foreman_user => 'apiuser',
        foreman_pass => 'password',
        filter_result => 'true' }


  $hosts = foreman($f)

  file {'/opt/karen09.conf':
    content => "$hosts",
  }

Error:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: undefined method `has_key?' for ["foreman.mycompany.com", {"fqdn"=>"foreman.mycompany.com"}]:Array at /etc/puppet/environments/production/modules/profiles/manifests/manifests.pp:13 on node node.mycompany.com
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

Kindly Regards
Karen

foreman_smartproxy resource raises undefined method `strip' for nil:NilClass error

I'm trying to install a foreman server and register my puppet servers (this foreman server has no puppet server installed), so I'm trying to use foreman_smartproxy like:

include ::foreman

foreman_smartproxy {'<puppetserver>':
    base_url        => 'https://<myforeman server>',
    url             => 'https://<puppetserver>:8443',
    provider        => 'rest_v3',
    consumer_key    => '<consumer key>',
    consumer_secret => '<consumer secret>',
    ssl_ca          => '/etc/puppetlabs/puppet/ssl/certs/ca.pem',
    timeout         => 600,
  }

The problem with this is that when I run puppet apply I get: Error: /Stage[main]/Profile::Foreman::Server/Foreman_smartproxy[<puppetserver>]: Could not evaluate: Exception undefined method strip' for nil:NilClass in get request to: https:///api/v2/smart_proxies?search=name=%22%22`

Any help?

Parameterize the puppet user and group

This applies especially on the Puppetmaster - we use a different user account and group to run our Puppetmaster, as our environments and some other data are kept on an NFS filestore and so the IDs must be consistent. At present, the foreman::puppetmaster class enforces user/group on the following files:
/etc/puppet/foreman.yaml
/etc/puppet/node.rb
/var/lib/puppet/yaml (recursively)

It would be useful if the puppet user and group could be specified by a parameter honoured by this class, e.g. $puppet_user and $puppet_group.

puppet - fresh install errors: "module passenger is already loaded"

If you try and install the foreman through puppet, you get the following error:

 puppet --version
 3.6.0
 puppet module install theforeman/foreman
 echo "class {foreman:}" >> /tmp/foreman.pp
puppet apply /tmp/foreman.pp

The error message

...
#your default puppet server - can be overridden in the host level
#if none specified, plain "puppet" will be used.
#:puppet_server: puppet
:unattended: true
:puppetconfdir: /etc/puppet/puppet.conf
:login: true
:require_ssl: true
:locations_enabled: false
:organizations_enabled: false

# The following values are used for providing default settings during db migrate
:oauth_active: true
:oauth_map_users: true
:oauth_consumer_key: LpYxyRkjsZUjQRK5jG9FNXdsiTQqpD8t
:oauth_consumer_secret: vk62CtUePnUVte2rnXD8ZCUPTrC8HpEr
'
Notice: /Stage[main]/Foreman::Config/Concat_build[foreman_settings]/target: *.yaml used for ordering
Notice: /Stage[main]/Foreman::Config/File[/etc/foreman/settings.yaml]/content: content changed '{md5}a5de96b664766bf9c9d5f35c120cc5da' to '{md5}9358644a2f9b6fe1c0915d619fd480d5'
Notice: /Stage[main]/Foreman::Config/File[/etc/foreman/settings.yaml]/group: group changed 'root' to 'foreman'
Notice: /Stage[main]/Foreman::Config/File[/etc/foreman/settings.yaml]/mode: mode changed '0644' to '0640'
Notice: /Stage[main]/Foreman::Config::Passenger/Apache::Vhost[foreman]/File[05-foreman.conf]/ensure: created
Notice: /Stage[main]/Foreman::Config::Passenger/Apache::Vhost[foreman-ssl]/File[05-foreman-ssl.conf]/ensure: created
Error: Could not start Service[httpd]: Execution of '/sbin/service httpd start' returned 1: Starting httpd: [Fri May 16 23:29:50 2014] [warn] module passenger_module is already loaded, skipping
Syntax error on line 40 of /etc/httpd/conf.d/05-foreman-ssl.conf:
SSLCertificateFile: file '/var/lib/puppet/ssl/certs/foreman.localhost.pem' does not exist or is empty
[FAILED]
Wrapped exception:
Execution of '/sbin/service httpd start' returned 1: Starting httpd: [Fri May 16 23:29:50 2014] [warn] module passenger_module is already loaded, skipping
Syntax error on line 40 of /etc/httpd/conf.d/05-foreman-ssl.conf:
SSLCertificateFile: file '/var/lib/puppet/ssl/certs/foreman.localhost.pem' does not exist or is empty
[FAILED]
Error: /Stage[main]/Apache::Service/Service[httpd]/ensure: change from stopped to running failed: Could not start Service[httpd]: Execution of '/sbin/service httpd start' returned 1: Starting httpd: [Fri May 16 23:29:50 2014] [warn] module passenger_module is already loaded, skipping
Syntax error on line 40 of /etc/httpd/conf.d/05-foreman-ssl.conf:
SSLCertificateFile: file '/var/lib/puppet/ssl/certs/foreman.localhost.pem' does not exist or is empty
[FAILED]

Tests fail if temporary folder is not 'tmp'

Failures:

  1) foreman::config on redhat without parameters should contain File[/etc/foreman/settings.yaml] with source matching /\/tmp\/.+\/concat\/output\/foreman_settings.out/, require => "Concat_build[foreman_settings]", notify => "Class[Foreman::Service]", owner => "root", group => "foreman" and mode => "0640"
     Failure/Error: })}
       expected that the catalogue would contain File[/etc/foreman/settings.yaml] with source matching `/\/tmp\/.+\/concat\/output\/foreman_settings.out/` but its value of `"/var/folders/fy/gxmst54s1c19phy9c31489bw0000gn/T/d20130805-4428-1j2potq/concat/output/foreman_settings.out"` does not
     # ./spec/classes/foreman_config_spec.rb:43:in `block (4 levels) in '

  2) foreman::config on debian without parameters should contain File[/etc/foreman/settings.yaml] with source matching /\/tmp\/.+\/concat\/output\/foreman_settings.out/, require => "Concat_build[foreman_settings]", notify => "Class[Foreman::Service]", owner => "root", group => "foreman" and mode => "0640"
     Failure/Error: })}
       expected that the catalogue would contain File[/etc/foreman/settings.yaml] with source matching `/\/tmp\/.+\/concat\/output\/foreman_settings.out/` but its value of `"/var/folders/fy/gxmst54s1c19phy9c31489bw0000gn/T/d20130805-4428-1ojyq1z/concat/output/foreman_settings.out"` does not
     # ./spec/classes/foreman_config_spec.rb:150:in `block (4 levels) in '

Finished in 24.33 seconds
82 examples, 2 failures

Failed examples:

rspec ./spec/classes/foreman_config_spec.rb:36 # foreman::config on redhat without parameters should contain File[/etc/foreman/settings.yaml] with source matching /\/tmp\/.+\/concat\/output\/foreman_settings.out/, require => "Concat_build[foreman_settings]", notify => "Class[Foreman::Service]", owner => "root", group => "foreman" and mode => "0640"
rspec ./spec/classes/foreman_config_spec.rb:143 # foreman::config on debian without parameters should contain File[/etc/foreman/settings.yaml] with source matching /\/tmp\/.+\/concat\/output\/foreman_settings.out/, require => "Concat_build[foreman_settings]", notify => "Class[Foreman::Service]", owner => "root", group => "foreman" and mode => "0640"

Not sure how to approach that test differently. Thanks!

puppet4 support in lib/facter/sssd.rb

Hi,

It appears that the puppetserver (not master...) is unhappy with the bundled ruby facts.
When I run it on a CentOS7 VM with the puppetserver package installed from puppet PCL repository, I get :

Error: Facter: error while resolving custom facts in /puppet/code/envs/dev/puppet/foreman/lib/facter/sssd.rb: cannot load such file -- util/sssd

If I edit this sssd.rb file like this :

--- lib/facter/sssd.rb.old      2015-12-08 14:06:41.000000000 +0100
+++ lib/facter/sssd.rb  2015-12-08 14:25:30.000000000 +0100
@@ -1,4 +1,8 @@
 begin
+  #puppetserver/puppet4
+  require_relative 'util/sssd'
+rescue NoMethodError
+  #puppet master/puppet3
   require 'facter/util/sssd'
 rescue LoadError
   # Puppet 2 compatibility, facter/ dir is the load path, not lib/

Then the puppet apply is not erroring out anymore.

I think the NoMethodError rescue is required, because require_relative does not seem to work on a an "old" puppet3.8 host.
Since I really am not a ruby developper, I prefer submitting an issue with awork around than a pull requests (+ tests that I don't know how to write (yet)), hope you don't mind...

Regards

stop foreman fails

/Stage[main]/Foreman::Config::Reports/Cron[expire_old_reports]/ensure: created
/Stage[main]/Foreman::Config/Cron[clear_session_table]/ensure: created
/Stage[main]/Foreman::Service/Service[foreman]/ensure: ensure changed 'running' to 'stopped'
Error: /Stage[main]/Foreman::Service/Service[foreman]: Failed to call refresh: Could not stop Service[foreman]: Execution of '/sbin/service foreman stop' returned 1:
Error: /Stage[main]/Foreman::Service/Service[foreman]: Could not stop Service[foreman]: Execution of '/sbin/service foreman stop' returned 1:
/File[/tftpboot/pxelinux.cfg]/ensure: created
Finished catalog run in 189.47 seconds

Since the foreman service was not running before this fails.

Add AIO package path knowledge to params.pp

only $puppet_ssldir is using the $aio_package variable in params.pp while many other paths differ accordiong to that setting. (This is already implemented in the puppet-puppet module so could mostly be copied from there.)

Enable foreman-plugins repo

I've searched through manifests in this module but I didn't manage to find a way to enable [foreman-plugins] repo

[question] APT repo handling

Is there a reason for us not using puppetlabs-apt in the module here?

I noticed it while APT notified me about an unknown key.

We should use ::apt there, and add the key id of the current key.

Whats your opinion? I could do a PR...

Ability to increase max pool size in ActiveRecord?

There is no option to set size of connection pool. Currently it's set to 5 (default value). Under heavy load, using the PostgreSQL adapter, I often get the following error:

ActiveRecord::ConnectionTimeoutError (could not obtain a database connection within 5 seconds (waited 5.000178992 seconds). The max pool size is currently 5; consider increasing it.):
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.18/lib/phusion_passenger/rack/thread_handler_extension.rb:77:in `process_request'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.18/lib/phusion_passenger/request_handler/thread_handler.rb:140:in `accept_and_process_next_request'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.18/lib/phusion_passenger/request_handler/thread_handler.rb:108:in `main_loop'
  /usr/lib/ruby/gems/1.8/gems/passenger-4.0.18/lib/phusion_passenger/request_handler.rb:441:in `block (3 levels) in start_threads'

expose ssl_ca_file, ssl_certificate and ssl_priv_key

Hello!
As of now
there's no such parameters in settings.yaml.erb.
and therefore I can't configure foreman-installer to configure those.
As I don't use puppet for certificate management
puppet task of registering proxy in foreman fails for me.

logging

Please consider adding parameters to manage foreman logging options. For debug purposes for example

Variables never defined, but used in foreman::puppetmaster

class foreman::puppetmaster (
$foreman_url = $foreman::params::foreman_url,
$foreman_user = $foreman::params::foreman_user,
$foreman_password = $foreman::params::foreman_password,

$foreman::params::foreman_user and $foreman::params::foreman_password are never defined and seems that are also never used

Move foreman report from puppetmaster

I'm using masterless aka standalone puppet and leverage the foreman report module.

Under the current configuration reports require Class['::puppet::server::install'] which conflicts which is not necessary for this type of deployment.

I worked around this with a resource collector:

  File <| title == "${puppet_basedir}/reports/foreman.rb" |> {
    require  => [
        Exec['Create Puppet Reports dir']
    ]
  }

I also found it necessary to override some things in foreman::config::enc to eliminate the requirement.

  File <| title == '/etc/puppet/node.rb' |> {
    require  => [],
        ensure => 'absent'
  }

  File <| title == "${puppet_home}/yaml" |> {
    require  => [],
        ensure => 'absent'
  }

  File <| title == "${puppet_home}/yaml/foreman" |> {
    require  => [],
        ensure => 'absent'
  }

concat depends on puppet 3.5+

I am getting invalid attribute on a file resource because validate_cmd does not exist before puppet 3.5. We need to bump the puppet dependency requirement and also update the foreman-installer package to 3.7.x

Attempt to use the module standalone causes failure due to implicit dependency on the theforeman/puppet module

Hello,

I'm trying to set up The Foreman with an existing Puppet infrastructure. Part of the master bootstrapping is done through puppet itself, so I wanted to have the foreman proxy and reporting configuration done like that as well.

So I installed the theforeman/foreman module first, and tried to include the 'foreman::puppetmaster' class in the master to get things set up automatically, but I get the following error:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid relationship: File[/etc/puppet/node.rb] { require => Class[Puppet::Server::Install] }, because Class[Puppet::Server::Install] doesn't seem to be in the catalog

which seems to me like theforeman/foreman depends implicitly (but not explicitly in the Modulefile) on theforeman/puppet, but I don't actually want it to manage the whole puppet installation for me, at least for now.

Modify foreman-vhost.conf.erb to honor ssl param

I have found it necessary to modify foreman-vhost.conf.erb to recognize the foreman:ssl parameter. If ssl is disabled the secure Virtual Host should not be created.

<%= ERB.new(File.read(File.expand_path("_header.erb",File.dirname(file)))).result(binding) -%>

<VirtualHost <%= @listen_interface %>:80>
  ServerName <%= @fqdn %>
  ServerAlias foreman

  DocumentRoot <%= scope.lookupvar 'foreman::app_root' %>/public
  PassengerAppRoot <%= scope.lookupvar 'foreman::app_root' %>
<% if @scl_prefix and !@scl_prefix.empty? -%>
  PassengerRuby /usr/bin/<%= @scl_prefix -%>-ruby
<% end -%>

  AddDefaultCharset UTF-8

  <Directory <%= scope.lookupvar 'foreman::app_root' %>/public>
    <IfVersion < 2.4>
      Allow from all
    </IfVersion>
    <IfVersion >= 2.4>
      Require all granted
    </IfVersion>
  </Directory>

</VirtualHost>
<% if scope.lookupvar 'foreman::ssl' %>
<VirtualHost <%= @listen_interface %>:443>
  ServerName <%= @fqdn %>
  ServerAlias foreman

  DocumentRoot <%= scope.lookupvar 'foreman::app_root' %>/public
  PassengerAppRoot <%= scope.lookupvar 'foreman::app_root' %>
<% if @scl_prefix and !@scl_prefix.empty? -%>
  PassengerRuby /usr/bin/<%= @scl_prefix -%>-ruby
<% end -%>

  AddDefaultCharset UTF-8

  <Directory <%= scope.lookupvar 'foreman::app_root' %>/public>
    <IfVersion < 2.4>
      Allow from all
    </IfVersion>
    <IfVersion >= 2.4>
      Require all granted
    </IfVersion>
  </Directory>

  # Use puppet certificates for SSL

  SSLEngine On
  SSLCertificateFile      /var/lib/puppet/ssl/certs/<%= @fqdn %>.pem
  SSLCertificateKeyFile   /var/lib/puppet/ssl/private_keys/<%= @fqdn %>.pem
  SSLCertificateChainFile /var/lib/puppet/ssl/certs/ca.pem
  SSLCACertificateFile    /var/lib/puppet/ssl/certs/ca.pem
  SSLVerifyClient         optional
  SSLOptions              +StdEnvVars
  SSLVerifyDepth          3

</VirtualHost>
<% end -%>

librarian-puppet recursive dependency

attempting to use the following in my Puppetfile on CentOS 6.4:

mod "foreman", :git => "git://github.com/theforeman/puppet-foreman.git"

results in the following error when performing updates/installs:

/usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/requirement.rb:23:in `range_requirement?': undefined method `match' for nil:NilClass (NoMethodError)
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/requirement.rb:11:in `gem_requirement'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/source/git.rb:103:in `fetch_dependencies'
from /usr/lib/ruby/site_ruby/1.8/puppet/module_tool/modulefile.rb:15:in `map'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/source/git.rb:102:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/source/git.rb:102:in `map'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/source/git.rb:102:in `fetch_dependencies'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/manifest.rb:215:in `fetch_dependencies!'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/manifest.rb:207:in `fetched_dependencies'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/manifest.rb:171:in `dependencies'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:67:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:72:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:64:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `each'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:60:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:59:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:103:in `scope'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:42:in `recursive_resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver/implementation.rb:20:in `resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/resolver.rb:18:in `resolve'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/action/resolve.rb:25:in `run'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/cli.rb:161:in `resolve!'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/lib/librarian/puppet/cli.rb:63:in `install'
from /usr/lib/ruby/gems/1.8/gems/thor-0.18.1/lib/thor/command.rb:27:in `__send__'
from /usr/lib/ruby/gems/1.8/gems/thor-0.18.1/lib/thor/command.rb:27:in `run'
from /usr/lib/ruby/gems/1.8/gems/thor-0.18.1/lib/thor/invocation.rb:120:in `invoke_command'
from /usr/lib/ruby/gems/1.8/gems/thor-0.18.1/lib/thor.rb:363:in `dispatch'
from /usr/lib/ruby/gems/1.8/gems/thor-0.18.1/lib/thor/base.rb:439:in `start'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/vendor/librarian/lib/librarian/cli.rb:29:in `bin!'
from /usr/lib/ruby/gems/1.8/gems/librarian-puppet-0.9.10/bin/librarian-puppet:9
from /usr/bin/librarian-puppet:19:in `load'
from /usr/bin/librarian-puppet:19

is there a way to set authorize_login_delegation?

I'm attempting to deploy Foreman in my environment using the puppet-foreman module. I would like to be able to set authorize_login_delegation => true and I don't see an obvious mechanism for this. is there a settings hash I'm not seeing or is this feature not supported?

mysql class does not exist

I'm using puppetlabs/mysql-3.0.0 and just updated to theforeman/foreman-3.0.0 and am receiving this error when I attempt to run Puppet on the Foreman host:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Could not find class ::mysql for dc-foreman-web.tamu.edu on node dc-foreman-web.tamu.edu
Warning: Not using cache on failed catalog
Error: Could not retrieve catalog; skipping run

puppetlabs/mysql 2.3.1 was the last release to include the mysql class - https://github.com/puppetlabs/puppetlabs-mysql/blob/2.3.1/manifests/init.pp. Notice the deprecation warnings.

include ::mysql, ::mysql::server, ::mysql::server::account_security

Should probably be

include ::mysql::server, ::mysql::server::account_security

Ship report processor as a module

According to https://docs.puppetlabs.com/guides/reporting.html#writing-custom-reports it's now expected for reports to live in /lib/puppet/reports within a module on the master to make it available to the master. This is probably a good thing (no more hunting around in /usr for the correct path).

I guess we need to keep the copy in /files for older puppet versions - should we symlink? I don't know how puppet will treat a symlink here, but keeping two actual copies in sync sounds annoying...

Smartproxy provider broken under AIO and puppet 4

I think this is already known, but I don't see it logged, so close this if I missed it.

The smart_proxy provider appears to be broken with Puppet 4, you get "Could not find a suitable provider for foreman_smartproxy". I think this is due to to the Apipie bindings not being available to the AIO Puppet ruby stack.

WARNING: Cannot consider release theforeman-foreman-2.0. . .

Install theforeman-foreman from puppet returns the following messages:

Notice: Preparing to install into /root/install_foreman/modules ...
Notice: Downloading from https://forgeapi.puppetlabs.com ...
Warning: Cannot consider release theforeman-foreman-2.0.1: Malformed dependency: puppetlabs/apache. Exception was: Invalid 'version_range' field in metadata.json: Unparsable version range: "~> 0.10"

Warning: Cannot consider release theforeman-tftp-1.4.1: Malformed dependency: puppetlabs/xinetd. Exception was: Invalid 'version_range' field in metadata.json: Unparsable version range: "~> 1.1"

However, it does not appear to be impactful, as the current modules were installed :

/root/install_foreman/modules
└─┬ theforeman-foreman (v2.3.1)
├── adrien-alternatives (v0.3.0)
├── puppetlabs-apache (v1.2.0)
├─┬ puppetlabs-postgresql (v4.1.0)
│ ├── puppetlabs-apt (v1.7.0)
│ └─┬ puppetlabs-concat (v1.1.2)
│ └── puppetlabs-stdlib (v4.5.1)
├── theforeman-concat_native (v1.3.1)
└─┬ theforeman-tftp (v1.4.3)
└── puppetlabs-xinetd (v1.3.1)

CentOS 7 with ruby2 support

I have got this error trying the module on CentOS 7:

Error: Execution of '/bin/yum -d 0 -e 0 -y install foreman-postgresql' returned 1: Error: Package: ruby193-rubygem-rack-jsonp-1.3.1-1.el7.noarch (foreman)
           Requires: ruby193-ruby(abi) = 1.9.1

Here is how I use the module:

class {'::foreman':
    passenger          => false,
    db_manage          => false,
    configure_scl_repo => false,
    configure_epel_repo => false,
}

As a note:

  • scl_repo should be false by default for CentOS 7 because it does not exist for 7
  • I disable configure_epel_repo because it is already setup at that point.

How can I use the native ruby(version 2) that comes with CentOS 7. I do not want to install 1.9.1. If I am not wrong foreman does support ruby2.

Error shown on Windows hosts

This error is shown on all my Windows nodes. I assume that something is trying to be done by way of stuff that comes over (or doesn't) via module sync.

PS C:\Windows\system32> puppet agent -t
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Error loading fact C:/ProgramData/PuppetLabs/puppet/var/lib/facter/facts.rb: cannot load such file -- util/sssd

decouple from puppetlabs-apache

(this may actually be two bug reports)

I started with the goal of overriding the resultant apache vhost to enable Kerberos authentication (a few <Location> blocks with mod_auth_kerb directives). I was unable to extend the apache vhost using custom_fragment because it has already been declared. I decided to try and rip out all of the apache management and then manage the apache configs from a completely separate site-local module.

using this Puppet code:

    class { 'foreman':
      custom_repo => true,
      passenger   => false,
      ssl         => false,
      use_vhost   => false,
      selinux     => true,
    }

results in this error:

Error: Could not retrieve catalog from remote server: Error 400 on SERVER: Invalid relationship: Package[ruby193-rubygem-passenger-native] { before => Class[Apache::Service] }, because Class[Apache::Service] doesn't seem to be in the catalog

I would expect that passenger => false would not require ruby193-rubygem-passenger-native.

Foreman does not report failed runs with some server-side errors

In production, we had a server that had failed puppet runs for almost a week without noticing.

The message it was sending was:

Failed to generate additional resources using 'eval_generate': Error 400 on SERVER: No such file or directory - /srv/puppet/fileserver/ihave???unicode

However foreman was always reporting it as OK. I think the correct behaviour should be to always report these sorts of errors as failed, however I couldn't see anything that stands out in the yaml report that could be used.

Here's a copy of the last report with all information with all names anonymized.

--- !ruby/object:Puppet::Transaction::Report
  metrics: 
    resources: !ruby/object:Puppet::Util::Metric
      name: resources
      label: Resources
      values: 
        - - total
          - Total
          - 982
        - - skipped
          - Skipped
          - 1
        - - failed
          - Failed
          - 0
        - - failed_to_restart
          - "Failed to restart"
          - 0
        - - restarted
          - Restarted
          - 0
        - - changed
          - Changed
          - 0
        - - out_of_sync
          - "Out of sync"
          - 0
        - - scheduled
          - Scheduled
          - 0
    time: !ruby/object:Puppet::Util::Metric
      name: time
      label: Time
      values: 
        - - file
          - File
          - 6.652699027999995
        - - filebucket
          - Filebucket
          - 0.00013653500000000002
        - - config_retrieval
          - "Config retrieval"
          - 5.272938688
        - - total
          - Total
          - 11.925774250999995
    changes: !ruby/object:Puppet::Util::Metric
      name: changes
      label: Changes
      values: 
        - - total
          - Total
          - 0
    events: !ruby/object:Puppet::Util::Metric
      name: events
      label: Events
      values: 
        - - total
          - Total
          - 0
        - - failure
          - Failure
          - 0
        - - success
          - Success
          - 0
  logs: 
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym info
      tags: 
        - info
      message: "Retrieving pluginfacts"
      source: Puppet
      time: 2016-07-14 14:33:37.137184 +00:00
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym info
      tags: 
        - info
      message: "Retrieving plugin"
      source: Puppet
      time: 2016-07-14 14:33:37.248490 +00:00
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym info
      tags: 
        - info
      message: "Loading facts"
      source: Puppet
      time: 2016-07-14 14:33:38.002073 +00:00
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym info
      tags: 
        - info
      message: "Caching catalog for puppetmaster.node1"
      source: Puppet
      time: 2016-07-14 14:33:45.287459 +00:00
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym info
      tags: 
        - info
      message: "Applying configuration version '1468506821'"
      source: Puppet
      time: 2016-07-14 14:33:46.485834 +00:00
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym err
      tags: 
        - err
        - file
        - class
        - test
        - node
        - default
      message: "Failed to generate additional resources using 'eval_generate': Error 400 on SERVER: No such file or directory - /srv/puppet/fileserver/ihave???unicode"
      source: "/Stage[main]/Test/File[/tmp/test/files]"
      time: 2016-07-14 14:33:56.389623 +00:00
      file: /etc/puppet/environments/production/modules/test/manifest/init.pp
      line: 12
    - !ruby/object:Puppet::Util::Log
      level: !ruby/sym notice
      tags: 
        - notice
      message: "Finished catalog run in 11.92 seconds"
      source: Puppet
      time: 2016-07-14 14:34:03.007910 +00:00
  resource_statuses:  {}
  host: puppetmaster.node1
  time: 2016-07-14 14:33:35.565107 +00:00
  kind: apply
  report_format: 4
  puppet_version: "3.8.7"
  configuration_version: 1468506821
  transaction_uuid: "51d3a735-a982-4503-a5cd-da221592c733"
  environment: production
  status: unchanged

Puppet 4 support for ENC script

Filing against the right project this time...

$puppet_etcdir is hardcoded to '/etc/puppet' regardless of Puppet version. In Puppet 4 the default etcdir has changed to '/etc/puppetlabs/puppet'.

puppet-foreman at Puppet Forge is out of date

The puppet-foreman module that is installed from the Puppet Forge install is out of date. It lacks the correct GPG keys to perform installations of Foreman and Foreman-proxy via puppet.

After applying the patch from commit 4a8395d the module works correctly and installs from the yum repo as required.

Please update the release at Puppet Forge to include this patch so that new installs of puppet-foreman will operate correctly going forwards.

Unable to install successfully

Hello,

Recently I've been trying to install foreman using this module but I haven't been successful.

Whenever I do puppet agent -t on the client where I want to install foreman, it gives me the following error:

Warning: Scope(Concat::Fragment[Apache ports header]): The $ensure parameter to concat::fragment is deprecated and has no effect.
Warning: Scope(Concat[/var/lib/pgsql/data/pg_ident.conf]): The $force parameter to concat is deprecated and has no effect.
Warning: Scope(Concat::Fragment[Listen 80]): The $ensure parameter to concat::fragment is deprecated and has no effect.
Warning: Scope(Concat::Fragment[Listen 443]): The $ensure parameter to concat::fragment is deprecated and has no effect.
Notice: Compiled catalog for icoaux002.icnu.tlabs.ca in environment production in 3.01 seconds
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install postgresql' returned 1: Error: Nothing to do
Error: /Stage[main]/Postgresql::Client/Package[postgresql-client]/ensure: change from purged to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install postgresql' returned 1: Error: Nothing to do
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install postgresql-server' returned 1: Error: Nothing to do
Error: /Stage[main]/Postgresql::Server::Install/Package[postgresql-server]/ensure: change from purged to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install postgresql-server' returned 1: Error: Nothing to do
Notice: /Stage[main]/Postgresql::Server::Initdb/File[/var/lib/pgsql/data]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Initdb/File[/var/lib/pgsql/data]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Initdb/Exec[postgresql_initdb]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Initdb/Exec[postgresql_initdb]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/File[systemd-override]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/File[systemd-override]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Exec[restart-systemd]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Exec[restart-systemd]: Skipping because of failed dependencies
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install mod_passenger' returned 1: Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: /usr/bin/ruby
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: rubygems
Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: ruby(release)
Error: Package: rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: ruby
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: rubygem(rake)
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: ruby(release)
Error: Package: rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: libruby.so.2.0()(64bit)
Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: ruby(rubygems)
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: /usr/bin/ruby
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Error: /Stage[main]/Apache::Mod::Passenger/Apache::Mod[passenger]/Package[mod_passenger]/ensure: change from purged to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install mod_passenger' returned 1: Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: /usr/bin/ruby
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: rubygems
Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: ruby(release)
Error: Package: rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: ruby
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: rubygem(rake)
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: ruby(release)
Error: Package: rubygem-passenger-native-libs-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: libruby.so.2.0()(64bit)
Error: Package: 1:rubygem-rack-1.5.2-4.el7.noarch (epel)
           Requires: ruby(rubygems)
Error: Package: rubygem-passenger-4.0.18-9.10.el7.x86_64 (foreman)
           Requires: /usr/bin/ruby
 You could try using --skip-broken to work around the problem
 You could try running: rpm -Va --nofiles --nodigest
Notice: /Stage[main]/Apache::Mod::Passenger/File[passenger.conf]: Dependency Package[mod_passenger] has failures: true
Warning: /Stage[main]/Apache::Mod::Passenger/File[passenger.conf]: Skipping because of failed dependencies
Notice: /Stage[main]/Apache::Mod::Passenger/Apache::Mod[passenger]/File[zpassenger.load]: Dependency Package[mod_passenger] has failures: true
Warning: /Stage[main]/Apache::Mod::Passenger/Apache::Mod[passenger]/File[zpassenger.load]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_hba.conf]/Concat_fragment[/var/lib/pgsql/data/pg_hba.conf_header]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_hba.conf]/Concat_fragment[/var/lib/pgsql/data/pg_hba.conf_header]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[listen_addresses]/Postgresql_conf[listen_addresses]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[listen_addresses]/Postgresql_conf[listen_addresses]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[port]/Postgresql_conf[port]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[port]/Postgresql_conf[port]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[data_directory]/Postgresql_conf[data_directory]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Postgresql::Server::Config_entry[data_directory]/Postgresql_conf[data_directory]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/Concat_fragment[/var/lib/pgsql/data/pg_ident.conf_header]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/Concat_fragment[/var/lib/pgsql/data/pg_ident.conf_header]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/Concat_file[/var/lib/pgsql/data/pg_ident.conf]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/Concat_file[/var/lib/pgsql/data/pg_ident.conf]: Skipping because of failed dependencies
Notice: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/File[/var/lib/pgsql/data/pg_ident.conf]: Dependency Package[postgresql-server] has failures: true
Warning: /Stage[main]/Postgresql::Server::Config/Concat[/var/lib/pgsql/data/pg_ident.conf]/File[/var/lib/pgsql/data/pg_ident.conf]: Skipping because of failed dependencies
Error: Execution of '/usr/bin/yum -d 0 -e 0 -y install foreman-postgresql' returned 1: Error: Package: tfm-rubygem-ldap_fluff-0.4.0-2.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(activesupport)
Error: Package: tfm-rubygem-netrc-0.7.7-7.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-activerecord-session_store-0.1.2-1.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(railties) < 5
Error: Package: tfm-rubygem-audited-activerecord-4.2.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: 1:tfm-rubygem-concurrent-ruby-1.0.0-2.fm1_11.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-will_paginate-3.1.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-ruby_parser-3.6.3-4.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-foreigner-1.7.1-3.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(activerecord) >= 3.0.0
Error: Package: tfm-rubygem-protected_attributes-1.1.3-2.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-facter-2.4.0-3.el7.x86_64 (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: foreman-1.11.0-0.1.RC1.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-bundler_ext-0.3.0-8.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-rails-i18n-4.0.8-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-oauth-0.4.7-8.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-oauth-0.4.7-8.el7.noarch (foreman)
           Requires: /opt/rh/rh-ruby22/root/usr/bin/ruby
Error: Package: tfm-rubygem-rest-client-1.6.7-4.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-rabl-0.11.6-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-sprockets-rails-2.3.3-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-ancestry-2.0.0-4.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-secure_headers-1.4.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-multi_json-1.10.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby
Error: Package: tfm-rubygem-pg-0.15.1-2.el7.x86_64 (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-sprockets-3.5.2-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: 1:tfm-rubygem-concurrent-ruby-1.0.0-2.fm1_11.el7.noarch (foreman)
           Requires: rh-ruby22-ruby
Error: Package: tfm-rubygem-activerecord-session_store-0.1.2-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-foreigner-1.7.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-protected_attributes-1.1.3-2.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(activemodel) >= 4.0.1
Error: Package: tfm-rubygem-audited-4.2.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-sprockets-rails-2.3.3-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-secure_headers-1.4.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-rails-observers-0.1.2-6.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-pg-0.15.1-2.el7.x86_64 (foreman)
           Requires: rh-ruby22-ruby
Error: Package: tfm-rubygem-scoped_search-3.2.2-3.el7.noarch (foreman)
           Requires: rh-ror41-rubygem-activerecord >= 3.2.0
Error: Package: tfm-rubygem-will_paginate-3.1.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-apipie-rails-0.3.5-1.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-deep_cloneable-2.1.1-2.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-gettext_i18n_rails-1.2.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-formatador-0.2.1-9.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-multi_json-1.10.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-rails-observers-0.1.2-6.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-sprockets-3.5.2-1.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(rack) > 1
Error: Package: tfm-rubygem-deep_cloneable-2.1.1-2.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-activerecord-session_store-0.1.2-1.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(activerecord) < 5
Error: Package: tfm-rubygem-audited-activerecord-4.2.0-1.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(activerecord) < 5
Error: Package: tfm-rubygem-oauth-0.4.7-8.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-runtime-2.0-2.el7.x86_64 (foreman)
           Requires: rh-ror41-runtime
Error: Package: tfm-rubygem-ancestry-2.0.0-4.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-rails-i18n-4.0.8-1.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-facter-2.4.0-3.el7.x86_64 (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-sexp_processor-4.4.4-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-rest-client-1.6.7-4.el7.noarch (foreman)
           Requires: rh-ror41-rubygem(mime-types) >= 1.16
Error: Package: tfm-rubygem-little-plugger-1.1.3-20.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-safemode-1.2.2-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-gettext_i18n_rails-1.2.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-audited-4.2.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(rubygems)
Error: Package: tfm-rubygem-fog-core-1.35.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-rubygems
Error: Package: tfm-rubygem-rack-jsonp-1.3.1-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-runtime-2.0-2.el7.x86_64 (foreman)
           Requires: v8314-runtime
Error: Package: tfm-rubygem-validates_lengths_from_database-0.5.0-1.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-rest-client-1.6.7-4.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-scoped_search-3.2.2-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)
Error: Package: tfm-rubygem-turbolinks-2.5.3-3.el7.noarch (foreman)
           Requires: rh-ruby22-ruby(release)

Is this error supposed to be something normal and how could I fix it? I'm using Red Hat Linux Enterprise 7.

I'm a little bit new at installing applications using puppet so I might have done something wrong.

Thanks in advance!!

Defining 'custom_repo' as 'true' in Foreman ENC Still Results in Creation of EPEL and SCL Repos on EL 7

I have attempted to override the 'custom_repo' parameter to 'true' (with Key Type set to 'boolean') from the Foreman ENC. Based on Foreman's YAML output, I can see that this is getting distributed to the nodes:

foreman:
[...]
    custom_repo: true
    puppetrun: true
[...]

However, even after deleting the '/etc/yum.repos.d/epel.repo' file and running Puppet again, I see that the repository is being re-added by the module.

[email protected]  ~  puppet agent -t                  
Info: Using configured environment 'production'
Info: Retrieving pluginfacts
Info: Retrieving plugin
Info: Loading facts
Info: Caching catalog for <redacted>
Info: Applying configuration version '1469189976'
Notice: /Stage[main]/Foreman::Repos::Extra/Yumrepo[epel]/ensure: created
Info: changing mode of /etc/yum.repos.d/epel.repo from 600 to 644
Notice: Applied catalog in 5.69 seconds

The module does appear to respond as expected when manipulating the 'puppetrun' parameter within the Foreman ENC using the 'boolean' Key Type.

We have a local copy of EPEL stashed on a local mirror which we'd prefer instead, making it critical that enabling the 'custom_repo' parameter on this module be effective.

If I am missing something, please let me know!

Installation of foreman-cli fails on CentOS 7

I have tried to install foreman-proxy/foreman-cli using the foreman-installer and ran into this issue:

[...]
[ INFO 2015-06-03 14:11:54 main]            Requires: ruby193-ruby(abi) = 1.9.1
[ERROR 2015-06-03 14:11:54 main]  Package: ruby193-ruby-wrapper-0.0.2-5.el7.noarch (foreman)
[ INFO 2015-06-03 14:11:54 main]            Requires: ruby193-ruby
[ERROR 2015-06-03 14:11:54 main]  Package: ruby193-rubygem-foreigner-1.7.1-1.el7.noarch (foreman)
[ INFO 2015-06-03 14:11:54 main]            Requires: ruby193-rubygem(activerecord) >= 3.0.0
[ERROR 2015-06-03 14:11:54 main]  Package: foreman-1.8.1-1.el7.noarch (foreman)
[ INFO 2015-06-03 14:11:54 main]            Requires: ruby193-rubygem(json) < 2.0
[ERROR 2015-06-03 14:11:54 main]  Package: ruby193-rubygem-foreigner-1.7.1-1.el7.noarch (foreman)
[ INFO 2015-06-03 14:11:54 main]            Requires: ruby193-rubygems
[ INFO 2015-06-03 14:11:54 main]  You could try using --skip-broken to work around the problem
[ INFO 2015-06-03 14:11:54 main]  You could try running: rpm -Va --nofiles --nodigest
[...]

So, it is necessary to enable the ruby193 SCL repository on CentOS 7.
The following quick hack fixes it:

diff --git a/manifests/cli.pp b/manifests/cli.pp
index 54fb998..f22e75e 100644
--- a/manifests/cli.pp
+++ b/manifests/cli.pp
@@ -36,6 +36,13 @@ class foreman::cli (
   validate_string($foreman_url_real, $username_real, $password_real)
   validate_bool($manage_root_config, $refresh_cache)

+  if $::operatingsystem == 'CentOS' and $::operatingsystemmajrelease == '7' {
+    package{'rhscl-ruby193-epel-7-x86_64':
+      ensure => installed,
+      before => Package['foreman-cli'],
+    }
+  }
+
   package { 'foreman-cli':
     ensure => installed,
   } ->

It should be discussed wether this hack is viable or if all repositories should be listed as a requirement in the installation manual. I would be glad to help and adjust the manual accordingly.

If the proposed change is sufficient then i will open a pull request.

foreman::rake {'apipie:cache:index'} not scheduled with db_managed=>false

In my highly available, distributed Foreman installation, we use an externally managed postgresql database, so all of my nodes are set to $db_manage=>false. If this parameter is false, though, then foreman::rake { 'apipie:cache:index' } is never scheduled to run, which causes downstream impacts that rely on the cache being present. I dont want foreman-rake to be scheduled every time puppet runs, but I need the cache to be built when Foreman is initially installed.

Error on prefetch for foreman_config_entry

When I run Puppet on my Foreman host after updating to theforeman/foreman 3.0.0 I get the following error (full backtrace).

This is with puppet-3.6.2 on CentOS 6.5.

Error: Could not prefetch foreman_config_entry provider 'cli': undefined method `intern' for nil:NilClass
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1691:in `provider'
/usr/lib/ruby/site_ruby/1.8/puppet/type.rb:1904:in `provider='
/var/lib/puppet/lib/puppet/provider/foreman_config_entry/cli.rb:58:in `prefetch'
/var/lib/puppet/lib/puppet/provider/foreman_config_entry/cli.rb:52:in `each'
/var/lib/puppet/lib/puppet/provider/foreman_config_entry/cli.rb:52:in `prefetch'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:277:in `prefetch'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:167:in `prefetch_if_necessary'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:67:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/graph/relationship_graph.rb:116:in `call'
/usr/lib/ruby/site_ruby/1.8/puppet/graph/relationship_graph.rb:116:in `traverse'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:108:in `evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:167:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/util/log.rb:149:in `with_destination'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction/report.rb:112:in `as_logging_destination'
/usr/lib/ruby/site_ruby/1.8/puppet/resource/catalog.rb:166:in `apply'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:117:in `apply_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:161:in `benchmark'
/usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:160:in `benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:116:in `apply_catalog'
/usr/lib/ruby/site_ruby/1.8/puppet/configurer.rb:191:in `run'
/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:in `lock'
/usr/lib/ruby/site_ruby/1.8/puppet/agent.rb:47:in `run'
/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:in `run'
/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:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:179:in `call'
/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:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:355:in `onetime'
/usr/lib/ruby/site_ruby/1.8/puppet/application/agent.rb:321:in `run_command'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:371:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:477:in `plugin_hook'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:371:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:479:in `exit_on_fail'
/usr/lib/ruby/site_ruby/1.8/puppet/application.rb:371:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:137:in `run'
/usr/lib/ruby/site_ruby/1.8/puppet/util/command_line.rb:91:in `execute'
/usr/bin/puppet:8

The location of #intern call on nil:

https://github.com/puppetlabs/puppet/blob/3.6.2/lib/puppet/type.rb#L1691

Foreman::Rake[db:migrate] fails when using puppet 4

Hi,

I'm seeing the Foreman::Rake execs failing when using the puppetlabs AIO packages:

==> core: Info: Foreman::Rake[db:migrate]: Scheduling refresh of Exec[foreman-rake-db:migrate]
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: rake aborted!
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: LoadError: cannot load such file -- facter
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in `require'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in `block in require'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in `load_dependency'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:251:in `require'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/lib/tasks/reset_permissions.rake:1:in `<top (required)>'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:245:in `load'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:245:in `block in load'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:236:in `load_dependency'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/activesupport-3.2.21/lib/active_support/dependencies.rb:245:in `load'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/railties-3.2.21/lib/rails/engine.rb:425:in `block in load_tasks'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/railties-3.2.21/lib/rails/engine.rb:425:in `each'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/railties-3.2.21/lib/rails/engine.rb:425:in `load_tasks'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/railties-3.2.21/lib/rails/application.rb:145:in `load_tasks'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/vendor/ruby/1.9.1/gems/railties-3.2.21/lib/rails/railtie/configurable.rb:30:in `method_missing'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: /usr/share/foreman/Rakefile:7:in `<top (required)>'
==> core: Notice: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]/returns: (See full trace by running task with --trace)
==> core: Error: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]: Failed to call refresh: /usr/sbin/foreman-rake db:migrate returned 1 instead of one of [0]
==> core: Error: /Stage[main]/Foreman::Database/Foreman::Rake[db:migrate]/Exec[foreman-rake-db:migrate]: /usr/sbin/foreman-rake db:migrate returned 1 instead of one of [0]
==> core: Notice: /Stage[main]/Foreman::Database/Foreman_config_entry[db_pending_seed]/value: value changed '' to 'false'

This is on ubuntu 14.04, puppet version:

vagrant@core:~$ /opt/puppetlabs/bin/puppet --version
4.3.1

My profile module contains:

class { '::puppet':
    server                  => true,
    server_implementation   => 'puppetserver',
    server_foreman          => false,
    server_git_repo         => true,
    client_package          => 'puppet-agent',
    logdir                  => '/var/log/puppetlabs/puppet',
    rundir                  => '/var/run/puppetlabs',
    ssldir                  => '/etc/puppetlabs/puppet/ssl',
    server_ssl_dir          => '/etc/puppetlabs/puppet/ssl',
    vardir                  => '/opt/puppetlabs/puppet/cache',
}

class { '::foreman':
    admin_password          => 'testpass'
}
class { '::foreman_proxy': }

Provide more generic parser functions as separate module

Hey guys,

I recently found the two parser functions random_password and cache_data to be incredible useful (in fact so useful, it makes me wonder why puppet doesn't have at least data caching as a core functionality). They could be very well usable in other puppet modules, so I'd like to suggest you to release them as in a separate puppet module or even separate modules.

Would this be possible?

Best Regards,
Patrick

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.