RundeckジョブをAPI経由で実行する

タスクフローツールでRundeckを使っている。下みたいな形で定義したjobを叩ける。

jobの引数はHTTPボディーを JSON にして argString で渡す。 argString 内は job で他のワークフローを呼び出すときに使う記法。

ただ auth-token の生成で Expire 必ず設定しない(けっこう短い)といけないので鍵のローテーションを作らないといけなくて面倒。

1
2
3
4
5
6
curl -X POST \
       -H 'Content-Type: application/json' \
       -H "Accept: application/json" \
       -H "x-rundeck-auth-token:$RD_TOKEN" \
       -d '{"argString":"-arg1 val1 -arg2 val2"}' \
       https://ops-rundeck.spideraf.com/api/16/job/${JOB_ID}/executions

tackoverflowに書かれていたれていた。 公式docには直接書かれていない。RESTならPOSTにすればといった想像力が必要な状態になっている。

UI も便利になっているし定義も拡張 yaml で複雑な依存も綺麗に扱えるしAPIから叩くのも便利だしで、そろそろdigdagに移行したい。

comments powered by Disqus