私たちのアプリケーション用に統一されたCICDプロセスを作成しようとしていますが、これは本質的には使用されているcURL関数のラッパーである(これは文書化されていない)Jenkins-PHP APIリモートWebサイトにアクセスするためのものです。ここでPHPを使用したJenkinsリモートAPIへの接続
は私のテスト接続である:これは返す
$uname = '';
$pword = '';
$api_token = ''; // not yet used
$jenkins = new \JenkinsKhan\Jenkins("http://$uname:[email protected]/jobs");
var_dump($jenkins->isAvailable());
:
ブール値(false)を
isAvailable()
機能を、ジェンキンスAPIクラスの一部は次のとおりです。
public function isAvailable()
{
$curl = curl_init($this->baseUrl . '/api/json');
curl_setopt($curl, \CURLOPT_RETURNTRANSFER, 1);
curl_exec($curl);
if (curl_errno($curl)) {
return false;
} else {
try {
$this->getQueue();
} catch (RuntimeException $e) {
//en cours de lancement de jenkins, on devrait passer par là
return false;
}
}
return true;
}
編集:私は関数内で条件付きにecho curl_error($curl);
を追加し、それを返します:私は実行しているWebサーバとジェンキンスインスタンスである:
は、ホスト%マダ
NOTEは解決できませんでした。同じネットワークとJenkinsインスタンスがping可能です。
this oneのような類似したスタックオーバーフローに関する未回答の質問がありましたが、Jenkinsインスタンスへの接続の問題に直接対処するものはありません。
URL文字列を変更して(ユーザー名を削除し、パスワードをAPIトークンに置き換えるなど)、認証エラーが最大で403件(アクセスが拒否されました)が最低限になるため、私はいくつかの前進をしていますが、私はJenkinsのインスタンスで実際の認証が行われないと信じています。
私はここで何かが分かりませんか? JenkinsリモートAPIへの実際の接続を作成するにはどうすればよいですか?
'jenkins.svc.local/jobs/api/json'ではなく' jenkins.svc.local/jobs/api/json'とヒットするようです(コンストラクタのURLが間違っています) –
リモートAPI用のドキュメントでは、URLに '/ api/json'を加えて@DarenChandisinghをヒットする必要があると言われます。どうしてURLが間違っていると思いますか? BTWは、さらなるエラー情報で質問を編集しました。 –
jenkins.svc.local/** jobs **を使用しているので間違っていると思いますが、APIがルートの下に直接存在すると思います。とにかく私のJenkinsサーバー上で実行されます。 (あなたが追加した追加情報はそれ以前にも問題があると示唆していますが) –