I'm confused about certain Puppet parameterized class usage and scoping.
The puppetlabs-dashboard module at
github<https://github.com/puppetlabs/puppetlabs-dashboard/blob/master/manifests/passenger.pp>starts
with the following:

class dashboard::passenger ($dashboard_site, $dashboard_port) inherits
dashboard {

    Class ['::passenger'] -> Apache::Vhost[$dashboard_site]

    class { '::passenger':
        port => $dashboard_port,
    }

I also have the puppetlabs-apache and puppetlabs-mysql classes in my
modules directory and I'm trying to install dashboard on a test host as per
the instructions:

node test {
    class { 'dashboard':
        dashboard_ensure       => 'present',
        dashboard_user         => 'puppet-dashboard',
        dashboard_group        => 'puppet-dashboard',
        dashboard_password     => 'changeme',
        dashboard_db           => 'dashboard_production',
        dashboard_charset      => 'utf8',
        dashboard_site         => $fqdn,
        dashboard_port         => '80',
        mysql_root_pw          => 'changeme',
        passenger              => true,
        mysql_package_provider => 'yum',
        ruby_mysql_package     => 'ruby-mysql',
    }
}

However, I'm getting the following error when running puppetd -t on the
test host:

# puppetd -t
notice: Ignoring --listen on onetime run
err: Could not retrieve catalog from remote server: Error 400 on SERVER:
Puppet::Parser::AST::Resource failed with error ArgumentError: Could not
find declared class ::passenger at
/etc/puppet/modules/dashboard/manifests/passenger.pp:21 on node
chelutlunx09.karmalab.net
warning: Not using cache on failed catalog
err: Could not retrieve catalog; skipping run
#

Does anyone know why I might be getting this error?

For what it's worth, I've already had to make another change to dashboard's
init.pp due to a misuse of the mysql::server class by the dashboard class,
so I'm concerned that there are other issues I've not yet encountered:

-  class { 'mysql::server': root_password => $mysql_root_pw }
+  class { 'mysql::server': config_hash => { root_password =>
$mysql_root_pw } }

This is because of how the mysql::server class is actually defined:

class mysql::server(
  $service_name = $mysql::params::service_name,
  $config_hash  = {},
  $package_name = 'mysql-server'
)

Thanks,
Justin

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to