Updated February 25, 2011
resource-yaml-v13 - describes the Rundeck resource model document Yaml format
resource YAML document declares a resource model used by a Rundeck Project to define the set of Nodes that are available.
See http://yaml.org (opens new window) for more information about YAML.
The resource format supports two structures: either a Yaml Sequence of Node definitions, or a Yaml Map of node names with Node definitions as values.
- somenode: ... ... - somenode2: ...
somenode: hostname: ... ... somenode2: hostname: ...
In the second case, the
nodename entry is not required.
# Node Definition
A Node definition consists of a Map with some required and some optional entries.
- Name of the node, this must be a unique Identifier across nodes within a project
- Hostname of the node. This can be any IP Address or hostname to address the node. Since hostname is used to make SSH connections, it is possible to overload the value to include port number. (eg, hostname:port).
- User name to connect to the node via SSH.
- A description of the Node
- A literal with comma-separated tag strings, or a Sequence of literals. Tags are used for filtering nodes and often represent server role, environment, class, or group.
- OS Family
- OS Architecture
- OS Name
- OS Version
- URL to an external resource model service.
- URL to an external resource model editor service.
- The connection port to use, 22 by default
- The path to the SSH key in the Rundeck Key store. For example: keys/ec2/west.pem
- The node executor plugin that you wish to use to issue commands to nodes (Script Execution, stub, openssh, etc.)
- Specifies the system command to run
- Specifies the working directory for the execution
- Specifies the shell to use to interpret the command, e.g. "bash -c" or "cmd.exe /c"
- The file copier you want to use to copy files to nodes (script execution, stub, openssh, etc.)
- Specifies the system command to execute
- Specifies the full path of the copied file
- Specify any custom attributes about node using a string value.
- For more information about using the
remoteUrlsee the Rundeck User Manual.
Here's a node, Venkman.local, described with several of the required and optional attributes discussed above.
Venkman.local: description: Rundeck server node hostname: Venkman.local nodename: Venkman.local osArch: x86_64 osFamily: unix osName: Mac OS X osVersion: 10.6.6 tags: '' username: greg
Tags are very useful for node filtering and can be used to describe the role, environment, group, or class to which a node belongs. The Homestar.local example below describes a node that plays the role of a redis server in the production environment.
Homestar.local: description: The production redis server. hostname: Homestar.local nodename: Homestar.local osArch: x86_64 osFamily: unix osName: Linux tags: 'redis_server,production' username: greg
Here's a node, bartholemew, that specifies some custom attributes (app-port, https-port):
bartholemew: description: Webapp node hostname: bartholemew nodename: bartholemew tags: 'web,app' username: greg app-port: 8080 https-port: 8443
Here is the same two nodes but in the sequence style syntax:
- Homestar.local: description: The production redis server. hostname: Homestar.local nodename: Homestar.local tags: 'redis_server,production' username: greg - bartholemew: description: Webapp node hostname: bartholemew nodename: bartholemew tags: 'web,app' username: greg app-port: 8080 https-port: 8443