How to pass argumets to RunDeck Run API

13,983

Solution 1

Option 1: In absence of tokens, first login to get cookie

curl \
  -D - \
  -X POST \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -H "Cache-Control: no-cache" \
  -d "j_username=${RD_USER}&j_password=${RD_PASSWORD}" \
  --cookie-jar rd_cookie \
  "${RD_URL}/j_security_check"

Then, use the cookie received from successful login for subsequent transactions

curl \
  -D - \
  -X "POST" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d "{\"argString\":\"-arg1 val1 -arg2 val2 -arg3 val-3 -arg4 val4 \"}" \
  --cookie "@rd_cookie" \
  "${RD_URL}/api/16/job/${RD_JOB_ID}/executions"

Option 2: With a token, it's simpler

curl \
  -D - \
  -X "POST" -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-Rundeck-Auth-Token: ${RD_TOKEN}" \
  -d "{\"argString\":\"-arg1 val1 -arg2 val2 -arg3 val-3 -arg4 val4 \"}" \
  "${RD_URL}/api/16/job/${RD_JOB_ID}/executions"

Solution 2

The API documentation for Rundeck describes how to run a job:

Yes you need to create a parametrized job and pass in arguments as part of the API call. This could be considered a security measure only expected parameters can be accepted.

Share:
13,983
Admin
Author by

Admin

Updated on June 13, 2022

Comments

  • Admin
    Admin about 2 years

    I want to run a rundeck job using the run API. Would like to pass few parameters as well to the runDeck job during the run time.

    Do I need to configure the job to accept parameters? How to pass parameters to run API?

    Thanks in advance

    Regards SJ

  • Travis Bear
    Travis Bear about 8 years
    This answer could benefit from a tangible curl/wget example