如何将参数传递给RunDeck Run API

时间:2014-12-18 06:50:35

标签: rundeck

我想使用run API运行rundeck作业。想要在运行时将少量参数传递给runDeck作业。

我是否需要将作业配置为接受参数? 如何传递参数来运行API?

提前致谢

此致 SJ

2 个答案:

答案 0 :(得分:5)

选项1:如果没有令牌,请先登录以获取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"

然后,使用从成功登录收到的cookie进行后续交易

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"

选项2:使用令牌,它更简单

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"

答案 1 :(得分:2)

Rundeck的API文档描述了如何运行作业:

是的,您需要创建参数化作业并在API调用中传入参数。这可以被认为是一种安全措施,只能接受预期的参数。