Project

General

Profile

External Nodes » History » Version 5

Ohad Levy, 09/09/2009 04:28 PM

1 3 Ohad Levy
h1. Foreman can act as a classifier to Puppet through the external nodes interface.
2 1 Ohad Levy
3 4 Ohad Levy
{{toc}}
4
5 2 Ohad Levy
h2. Import your environment and classes setup
6 1 Ohad Levy
7 3 Ohad Levy
First of all, you probably want to let Foreman know about your setup, its recommended to automatically import your Environments and classes by:
8 1 Ohad Levy
9
<pre>
10
rake puppet:import:puppet_classes RAILS_ENV=production
11
</pre>
12
13
If you prefer, you may manually add classes through the setting page, however, the class names must match Puppet classes.
14
15
16 2 Ohad Levy
h2. Define classes and variables per host
17 1 Ohad Levy
18
You can define per host, classes and variables(parameters), simply create/edit a host, and select its classes.
19
if you see an empty list, make sure that you do have classes (as define in the step above).
20
21
If you want to add variables(parameters), simply add them in the same page as a set name and value.
22
23 2 Ohad Levy
h2. Host Groups
24 1 Ohad Levy
25 3 Ohad Levy
Foreman allows you to group classes, into common groups similar to node inheritances in puppet 
26 1 Ohad Levy
Each group can contain many classes, and variables.
27
28
If you wish to override the parameters for a specific host, create a parameter with the same name in the host level, 
29 3 Ohad Levy
Foreman will override the values defined in the group level.
30 1 Ohad Levy
31
32 2 Ohad Levy
h2. Other places you can define parameters
33 1 Ohad Levy
34 5 Ohad Levy
It is also possible to define default (common) parameters for all of your hosts (setting -> Global parameters).
35 1 Ohad Levy
Additionally, you can also define them on the domain level (settings -> Domain -> Domain Parameters)
36
37 5 Ohad Levy
*The order in which the parameters are processed is:
38 1 Ohad Levy
Global, Domain, Host Group and Node, the last occurrence of the parameter will be the one used.
39
*
40
41 2 Ohad Levy
h2. Example puppet script
42 1 Ohad Levy
43 3 Ohad Levy
under the  <b>extras/externalnodes</b> directory you would find an example script to query Foreman DB.
44 1 Ohad Levy
45
You would need to setup puppet to use external nodes 
46
<pre>  external_nodes = /etc/puppet/node.rb
47
  node_terminus  = exec</pre>
48
For additional info please see "Puppet documentation":http://reductivelabs.com/trac/puppet/wiki/ExternalNodes
49
50 2 Ohad Levy
h2. Verify your setup
51 1 Ohad Levy
52
You may also click on the YAML link to see the output that would be used for puppet external nodes.