Customizing Foreman to integrate class parameters from an external data source

> We're currently evaluating the Foreman (as an ENC) and are very impressed
> with how rapidly it has evolved, gratitude to all involved. We have one
> particular issue that we need to resolve to know whether the Foreman will
> fit our unique requirements.
> - We have a few dozen servers worldwide that each connect to every other
> server in the network. This requires managing hundreds of OpenVPN configs.
> - When Puppet first runs it should configure all the VPN connections. This
> requires knowledge of the other servers.
> - We have developed a Puppet class that can do this using the
> create_resources function and a hash of the connection parameters (± 50
> pairs). In order to generate this hash an external database has to be
> queried which stores connection information about all the existing servers
> and connections. These parameters define attributes of the VPN connection
> such as the tunnel interface, IP address endpoints for the origin and
> remote server etc.
> We realize we need an ENC to implement this and would like to customize
> the Foreman if possible as it offers us a lot of additional functionality.
> I'm not sure however how feasible this is given its architecture and our
> requirements. One idea is to create a plugin and use the 'create host' hook
> to query the external database and generate these parameters and store the
> resulting hash directly in the lookup_values table with a match on the
> hostname. However this does feel like a bit of a hack.
> Can anyone comment on whether they think the Foreman can be customized to
> satisfy our requirements or whether we possibly would be better off
> developing our own ENC?

Maybe the foreman resource plugin [1] can help in this case?
I didnt try it myself, but it sounds very similar to what you are talking



··· On Thu, Apr 18, 2013 at 12:59 PM, Roger Lawfield wrote:

You received this message because you are subscribed to the Google Groups
"Foreman users" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to
To post to this group, send email to
Visit this group at
For more options, visit