我想在提交后使用gitlab-ci启动rundeck作业。所以我使用curl命令来调用rundeck作业。但是有一个问题,我的工作中未使用选项值,而是使用默认值。但是我的xml响应显示argString存在。
我使用的命令:
curl -X 'POST' -H 'Content-Type: application/json' -H 'X-Rundeck-Auth-Token: <my_token>' --data-urlencode 'argString=-LOCAL_REPO /home/rundeck/ -FILE_NAME archive_test.zip' 'https://<url:port>/api/1/job/<job_id>/run' -k
XML响应:
...
<name>TEST_2args</name>
<group></group>
<project>Rundeck</project>
<description>Job test </description>
<options>
<option name='LOCAL_REPO' value='/tmp/' />
<option name='FILE_NAME' value='archive.zip' />
</options>
</job>
<description>whoami ('Who am i ?') [... 3 steps]</description>
<argstring>-LOCAL_REPO /home/rundeck/ -FILE_NAME archive_test.zip</argstring>
</execution>
</executions>
我不想使用默认值,而是使用我在参数中传递的选项。
感谢您的帮助
答案 0 :(得分:0)
仅作记录的答案:您可以通过以下方式启动它(如果有人需要,我会添加节点过滤器):
#!/bin/sh
# protocol
protocol="http"
format="json"
# basic rundeck info
rdeck_host="yournode"
rdeck_port="4440"
rdeck_api="36"
rdeck_token="0jEkMXbPBUzx984HeM3RUDQSXg4yJzyT"
# specific api call info
rdeck_job="0745efe5-17c2-44cd-bb59-26706331ea2f"
rdeck_filter="node01"
option_value="YOUR_VALUE"
# api call
curl --location --request POST "$protocol://$rdeck_host:$rdeck_port/api/$rdeck_api/job/$rdeck_job/run" \
--header "Accept: application/$format" \
--header "X-Rundeck-Auth-Token: $rdeck_token" \
--header "Content-Type: application/$format" \
--data "{ \"argString\":\"-opt1 $option_value \", \"filter\":\"$rdeck_filter\" }"