Ask Your Question
0

puppetlabs-f5 module: Could not autoload puppet/type/f5_node

asked 2015-09-15 01:56:16 -0600

Jessie Yeung gravatar image

I installed puppetlabs-f5 module and try to create node in site.pp (follow the sample in Puppet forge), but I encounter below error when executing puppet agent --test in proxy agent node:

Could not autoload puppet/type/f5_node: no such file to load -- puppet/parameter/f5_name

I have already classified the proxy agent node with class f5::site, under environment group F5. Also, I tried to restart the VM and the problem is still here.

Below please find the f5::site class:

class f5::site {

  f5_node { '/Common/puppet_master_node':
    ensure                          => 'present',
    address                         => '172.16.226.10',
    description                     => 'Local POC Puppet Master 1',
    availability_requirement        => 'all',
    health_monitors                 => ['/Common/icmp'],
  }->
  f5_pool { '/Common/puppet_master_pool':
    ensure                          => 'present',
    members                         => [
    { name => '/Common/puppet_master_1', port => '443', },
    ],
    availability_requirement        => 'all',
  }->
  f5_virtualserver { '/Common/puppet_master_vs':
    ensure                          => 'present',
    provider                        => 'standard',
    default_pool                    => '/Common/puppet_master_pool',
    destination_address             => '192.168.80.100',
    destination_mask                => '255.255.255.255',
    service_port                    => '443',
    protocol                        => 'tcp',
    source                          => '0.0.0.0/0',
  }

}

Do I miss anything in f5::site class?

Thanks.

Regards, Jessie Yeung

edit retag flag offensive close merge delete

2 Answers

Sort by ยป oldest newest most voted
0

answered 2015-09-16 16:24:46 -0600

Hunner gravatar image

updated 2015-09-16 16:44:56 -0600

Could not autoload... is caused by the master not being able to find the plugin. Most likely the easiest way to fix this is to put the f5 module in the environment of the master and do something to cause it to pluginsync the f5 plugins. Perhaps a daemon restart would be needed, but probably not.

The issue is that the requires in the type only check the pluginsync directory of the master and don't check in the lib/directory of the module. This can be solved with relative requires such as https://github.com/puppetlabs/puppetl... however the F5 types were not written this way.

Also, puppet should be fixed to be able to load code from the environment's modules' lib/ directories, but there is no bug for this and it has edge cases for when libraries from two modules have the same names...

edit flag offensive delete link more
0

answered 2015-09-17 04:17:54 -0600

Jessie Yeung gravatar image

Hi Hunner,

Actually we need to have a separate environment group to do so. Any way to enable checking module lib library?

Actually, I already defined below in environment.conf (f5 module folder under <env>/code/Modules/) following the common practice, but failed to autoload those Ruby files unless we explicitly put those files under Puppet default lib path:

# Puppet Enterprise requires $basemodulepath; see note below under "modulepath".
modulepath = code/Modules:$basemodulepath
manifest = code/Manifests

Thanks.

edit flag offensive delete link more

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2015-09-15 01:56:16 -0600

Seen: 367 times

Last updated: Sep 17 '15