Parameters may be used to specify values, which can then be used dynamically throughout much of orcharhino. Central orcharhino features like host provisioning, as well as orcharhino’s configuration management options (Puppet, Ansible, and Salt), rely heavily on the availability of parameters.
Parameters are ultimately just a name-value pair. The name of a parameter may not contain white space. The value may contain arbitrary unicode strings. That way, entire scripts can be contained within parameters.
Parameter values can also be set to be hidden within the orcharhino interface (a user with sufficient privileges can undo this).
The orcharhino interface also includes a text editor for creating and editing parameters. This text editor can show the diff between your current changes and the previous parameter value, supports syntax highlighting, as well as Vim and Emacs like key bindings.
Parameter Types and Hierarchy¶
There are various types of parameters, which are restricted to different scopes, as well as organized into a parameter hierarchy. This means that if the same parameter is defined within multiple scopes, the value of the more restrictive scope will override the more general one. That way, for example, a globally defined fallback value, could be overridden for an individual host.
The full list of different parameter types, from highest to lowest priority, goes as follows:
- Host parameters
- Host group parameters
- Operating system parameters
- Domain parameters
- Location parameters
- Organization parameters
- Global parameters
The best practice recommendation is to use as restrictive a scope as possible (without needlessly proliferating duplicate parameters). Global parameters should remain the exception (for when you really need some value for every host).
The following table provides an overview of the different parameter types, as well as where to find them in the management UI:
|Type||Description||Management UI Paths|
|Host parameters||Parameters available for a single host only. The relevant edit page will display all parameters inherited from any lower scope. You can override them by adding the relevant host parameter.||Hosts > All hosts > Your Host > Edit > Parameters|
|Host group parameters||Parameters available to all hosts in a specific host group.||Configure > Host Groups > Your Host Group > Parameters|
|Operating system parameters||Parameters available to all hosts using a specific operating system.||Hosts > Operating Systems > Your OS > Parameters|
|Domain parameters||Parameters available to all hosts in a specific domain.||Infrastructure > Domains > Your Domain > Parameters|
|Organization parameters||Parameters available to all hosts in a specific organization.||Administer > Organizations > Your Organization > Parameters|
|Location parameters||Parameters available to all hosts in a specific location.||Administer > Locations > Your Location > Parameters|
|Global parameters||Parameters available to all hosts.||Configure > Global parameters|