External Nodes » History » Version 6
Ohad Levy, 09/10/2009 09:14 AM
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 | 6 | Ohad Levy | under the *extras/externalnodes* 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. |