Jenkinsをサーバー(Debian 7 wheezy)にインストールしました。ローカルネットワークでは機能しますが、外部ネットワークでは機能しません。検索しましたが、この問題の回避策は見つかりませんでした。
サーバーにpingを実行できますが、jenkinsのアドレスにアクセスしても機能しません。
おそらく以下の理由によるものです:
1)Webサーバーの構成
Apacheの場合:すべてから許可
Tomcatの場合:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
する必要があります
<Host name="www.example.com" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
2)ファイアウォール設定(外部接続用にポートを開く)
3)Jenkins Config
まず、Debienの場合、/ etc/default/jenkinsを変更し、HTTP_Host =外部アドレスの行を追加します(例:HTTP_Host = www.example.com)
次に、-httpListenAddress = $ HTTP_HostをJENKINS_ARGSに追加します(JENKINS_ARGS = "-webroot =/var/cache/jenkins/war --httpPort = $ HTTP_PORT --ajp13Port = $ AJP_PORT --httpListenAddress = $ HTTP_Host")
最後に、jenkinsを再起動します
a)自宅のコンピューター(Jenkinsコンピューターではない)でBashシェルを開きます(WindowsのGit Bashで問題ありません)。
b)SECURE SSHTUNNELを介してPORTFORWARDを実行し、Jenkinsコンピューターのポート8080を自宅のコンピューターのポート8080に「マップ」します。 Git BashShellでこれを行うコマンドは次のとおりです。
ssh -L 127.0.0.1:8080:localhost:8080 [email protected] -i "C:\ PathToFolderContainingMySecretKey"
ここで、xx.yyy.zzz.abはパブリックインターネットアドレスです(例:62.187.151.9)。 -iの後のパスは、Jenkinsコンピューターで使用した公開鍵と一致する秘密鍵を保存したコンピューター上のパスであることに注意してください。
c)そして今、あなたの家のコンピュータはこのように接続することができます: http:// localhost:808
d)Jenkinsを初めて構成するときは、初期管理者パスワードが必要になります。入手方法は次のとおりです。自宅のコンピューターのGitBashシェル(SSH経由でJenkinsコンピューターに既に接続していることを思い出してください):
Sudo cat/var/lib/jenkins/secrets/initialAdminPassword
コピーしてブラウザに貼り付けるだけで、すぐに使用できます。