基于this,我试图触发自己的Jenkins构建。
首先,我尝试仅从主页连接到Jenkins和GET数据:
curl -X GET -u $u:$p http://$ip
不出所料,这给了我整个html页面。
我再次尝试:
curl -X GET -u $u:$p http://$ip/job/$j
其中j
是我要触发的工作(输入Jenknis时,我可以选择某个工作,并转到具有以下地址的页面:http://ip/job/j/)
但是,这没有产生任何输出(至少没有错误)
然后,我尝试单击Jenkins上的“使用参数构建”选项卡,发现导航到的页面的地址后缀为build?delay=0sec
所以我尝试添加它,然后又得到了一些输出。
现在,所有这一切都只是一个POC,以表明我可以访问正确的IP,但是当尝试使用POST和基本上同一行(即curl -X POST -u $u:$p http://$ip/job/$j/build?delay=0sec;SOME_PARAM=FOO
)实际触发构建时,此输出失败:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8"/>
<title>Error 403 No valid crumb was included in the request</title>
</head>
<body><h2>HTTP ERROR 403</h2>
<p>Problem accessing /job/hailo_nightly/build. Reason:
<pre> No valid crumb was included in the request</pre></p><hr><a href="http://eclipse.org/jetty">Powered by Jetty:// 9.4.z-SNAPSHOT</a><hr/>
</body>
</html>
我错了什么?
也尝试使用curl --user <your_jenkins_username>:<your_jenkins_API_key> http://<jenkins_server_url>/job/<your_jenkins_job_name>/build
from here,但这与GET相同