How to pass argumets to RunDeck Run API
Asked Answered
M

2

6

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

Marquittamarr answered 18/12, 2014 at 6:50 Comment(0)
P
10

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"
Piceous answered 16/11, 2016 at 6:18 Comment(0)
F
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.

Formidable answered 27/12, 2014 at 14:9 Comment(1)
This answer could benefit from a tangible curl/wget exampleSibelle

© 2022 - 2024 — McMap. All rights reserved.