A Rundeck NodeStepPlugin that allows Rundeck to delegate tasks to a Salt master by executing the request over salt-api.
./gradlew clean build
build/libs
. rundeck-salt-plugin-<version>.jar
file to your $RDECK_BASE/libext
folderThe following job-level params must be configured to provide authentication input fields:
SALT_USER
- standard input field, required.SALT_PASSWORD
- secure input field, required. NOTE the option should not be set as a secure remote authentication optionAdditionally:
NOTE: This plugin leverages salt-api, which requires its own additional setup. For more information on how to setup salt-api please refer to its documentation which can be found here.
This plugin requires three properties that need to be configured for each step:
SALT_API_END_POINT
: the URL of the salt-api endpoint (e.g. https://localhost:8000)Function
: the function to be passed to the salt-api call (excluding the target)
-- For example, if you enter test.ping
for the function value, the resulting salt call will be salt <yourHostName> test.ping
. The target will always default to the hostname of the Rundeck server. SALT_API_EAUTH
: the authentication mechanism that should be used by salt-api
-- This would be the equivalent to the -a
parameter being passed on the command line (e.g. salt -a pam <target> test.ping
)SALT_API_VERSION
(optional): The expected version of salt-api. Defaults to latest if left blank.debug
to print the raw JSON data and returned output=================== This plugin interacts with salt and salt-api. By default, it requests JSON payloads. YAML configuration files are used to determine how it should parse the output and behave with respect to exit codes, standard output, and standard error.
handlerMappings:
<salt module>[.<salt function>]: <java object implementing org.rundeck.plugin.salt.output.SaltReturnHandler>
Salt-step is configured in two locations:
src/main/resources/defaultReturners.yaml
rundeck-config.properties
: The _saltStep.returnHandlers_
property accepts a comma separated list of additional configuration filesThanks for contributing to the project!
./gradlew clean build
) and confirm that all tests are passing.README.md
or other supporting links) is updated.