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. |