Foreman can act as a classifier to Puppet through the external nodes interface.¶
- Foreman can act as a classifier to Puppet through the external nodes interface.
- Import your environment and classes setup
- Define classes and variables per host
- Host Groups
- Other places you can define parameters
- Example puppet script
- Verify your setup
Import your environment and classes setup¶
First of all, you probably want to let Foreman know about your setup, its recommended to automatically import your Environments and classes by:
rake puppet:import:puppet_classes RAILS_ENV=production
If you prefer, you may manually add classes through the setting page, however, the class names must match Puppet classes.
Define classes and variables per host¶
You can define per host, classes and variables(parameters), simply create/edit a host, and select its classes.
if you see an empty list, make sure that you do have classes (as define in the step above).
If you want to add variables(parameters), simply add them in the same page as a set name and value.
Foreman allows you to group classes, into common groups similar to node inheritances in puppet
Each group can contain many classes, and variables.
If you wish to override the parameters for a specific host, create a parameter with the same name in the host level,
Foreman will override the values defined in the group level.
Other places you can define parameters¶
It is also possible to define default (common)) parameters for all of your hosts (setting -> Global parameters).
Additionally, you can also define them on the domain level (settings -> Domain -> Domain Parameters)
*The order where the parameters are processed is:
Global, Domain, Host Group and Node, the last occurrence of the parameter will be the one used. *
Example puppet script¶
under the <b>extras/externalnodes</b> directory you would find an example script to query Foreman DB.
You would need to setup puppet to use external nodes
external_nodes = /etc/puppet/node.rb node_terminus = exec
For additional info please see Puppet documentation
Verify your setup¶
You may also click on the YAML link to see the output that would be used for puppet external nodes.