web-dev-qa-db-ja.com

Jenkinsの構成とセキュリティの問題

Jenkinsを使用するのはこれが初めてで、いくつかのオンライン記事を調べましたが、満足のいく答えを見つけることができませんでした。 .Netプロジェクトがあり、プライベートGitHubリポジトリを使用しています。現在、Jenkinsを使用してCIサーバーを構築しようとしています。開発者がコードをGitHubにプッシュするたびに、CIサーバー上でプロジェクトをビルドするというアイデアがあります。 Jenkins(v 1.646)とGitHub、Git、MSBuildプラグインをCIサーバーに既にインストールしています。過去数時間ジェンキンスと仕事をした後、私は今いくつかの質問があります。

1>デフォルトでは、Jenkinsはポート8080で実行されます。ただし、継続的インテグレーションが機能するには、JenkinsはGitHubから通知を受信する必要があります。ポート8080はデフォルトで外部からブロックされており、CIサーバーではポート80が開いています。 Jenkins.xmlファイルのhttpportを更新して、Jenkinsがポート80で実行されるようにしました。
パブリックインターネットからJenkinsにアクセスでき、WebフックのURLは http:// ipaddress/github-webhook になりましたが、誰でもJenskinsにアクセスできるようになったため、これにより大きなセキュリティホールが開かれます。この問題を解決するために、グローバルセキュリティ->プロジェクトベースのマトリックス認証戦略を構成しました。そのため、今では私だけがログインしてプロジェクトを管理できます。ただし、誰でもIPアドレスを入力し、Jenkinsページにアクセスして、新しいユーザーアカウントを作成できます。そのユーザーは何にもアクセスできませんが、それでもJenkinsのデータベースに新しいユーザーが作成されます。通常どおりポート8080でJenkins管理を実行し、ポート80で通知を受信する方法はありますか。

2> Jenkinsの[システム構成]ページに、「Git」と「GitHubプラグイン構成」のみが表示されます。 「GitHubWebフック」オプションが表示されません。また、「JenkinsにフックURLを自動管理させる」もバージョン1.646で変更されています。

3>プライベートリポジトリを使用しているため、プロジェクトのURLは https://github.com/MyCompanyName/reponame で、リポジトリのURLは https://github.com/MyCompanyName/reponame)です。 .git URLにはユーザー名ではなく会社名が含まれていることに注意してください。しかし、エラーJenkinsログが表示されます

GitHubRepositoryName [Host = github.com、username = MyCompanyName、repository = repository] ​​Java.lang.NullPointerExceptionからフックを削除できませんでした:GitHubRepositoryName [Host = github.com、username = MyCompanyName、リポジトリ=リポジトリ] com.google.common.base.Preconditions.checkNotNull(Preconditions.Java:231)

なぜ会社名をユーザー名として使用しようとしているのですか?適切なユーザー資格情報を設定しましたが、コードをプルできました。

10
LP13

1)「グローバル・セキュリティーの構成」に移動し、「ユーザーにサインアップを許可する」のチェックを外して、新しいアカウントが作成されないようにします。

pic1

2&3)管理者アクセス権がない場合、またはJenkinsからのフックを管理したくない場合は、[システム/ Githubプラグイン構成の構成]セクションに移動し、[フックの管理]のチェックを外します。

pic2

7
Skydan

ここでつまずいたが、上記の手順で修正できなかった私のような他の人のために、2番目の答えを追加します。

1)タスクのSCM構成から末尾の.gitを必ず削除してください enter image description here

2)Githubが到達できるIP /ドメインをJenkinsに設定していることを確認してください。これは、リポジトリにフックを作成するために使用されるためです。 VMなどで実行している場合、これはデフォルトでループバックに設定されている可能性があります enter image description here

Githubでこの悪い設定になります enter image description here

3)http://your-jenkins-address:port/restartでJenkinsを再起動します

4
kuzyn