如何将论证传递给RunDeck Run API

SAJ*_*SAJ 3 rundeck

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

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

提前致谢

关心SJ

小智 7

选项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"
Run Code Online (Sandbox Code Playgroud)

然后,使用从成功登录收到的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"
Run Code Online (Sandbox Code Playgroud)

选项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"
Run Code Online (Sandbox Code Playgroud)


Mar*_*nor 2

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

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

  • 这个答案可能会受益于一个有形的curl/wget 示例 (8认同)