jenkinsでGitからソースを取得するときに鍵認証をかけている場合はそれ用の設定が必要になります。
基本的な考え方ですが、userがjenkinsだったときに、ssh鍵認証やherokuでどのようにソースを取得するかを考えればOK
SSH鍵認証
前提条件
/var/lib/jenkins/.sshにGitのサーバーにアクセスできる秘密鍵を置いておく or SSHのconfigファイルをおいておき、GitのサーバーにSSHコマンドでアクセスできるようになっていればOK
1 2 |
su jenkins ssh ユーザ名@Gitのサーバー (オプションなどいろいろと。ただし鍵のパスは指定しなくても自動で見に行くのでOK) |
※SSHのconfigの書き方はこちらから。
Git+SSH鍵認証
jenkinsでの設定
- 各プロジェクトのソースコード管理画面に行き、Gitにチェックを入れ、ソースのURLを入力します。
- RepositoryのCredentialsのaddを入力します。(スコープにはグローバルを選択し、ここでソースのあるサーバーに入るときのユーザー名とパスワードを入力しておきましょう。)
- Credentialsの設定画面(Jenkins一覧画面→認証情報→グローバルドメイン→addしたユーザー)で秘密鍵にはJenkinsマスター上の~/.sshからを選択しましょう。
- RepositoryURLの下の赤色のエラーメッセージがでていなければOKです。
- 実験として試しにビルドをしてみてビルドが実行されればOKです。
参考リンク
開発者(個人)のためのJenkins – Git Plugin編
JenkinsとGitサーバーを連携してビルド環境を構築する
heroku
1 jenkinsでプロジェクト作成(Gitは登録しなくてOK)
2 この段階でビルドをするとこけるはず。
3 ソースをプロジェクト直下(workplace)に自力で配置する。(herokuコマンドを使うことになります。)
前提としてjenkinsサーバーにheroku(当然rubyも)が入っており、suでjenkinsになれることが条件。なっていない場合は下記のように書き換え
1 2 |
(修正前)jenkins:x:998:997:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/false (修正後)jenkins:x:998:997:Jenkins Continuous Integration Server:/var/lib/jenkins:/bin/bash |
1 2 3 4 5 6 7 8 9 |
#ユーザーjenkins su jenkins cd /var/lib/jenkins/jobs/プロジェクト名 #通常はビルド時に作成されるが自力でworkspaceを実行 mkdir workspace #herokuコマンドでソース取得 heroku git:clone --app アプリ名 #ディレクトリ名を修正し、workspace直下にソースが来るようにする #ここでgit/configを開き、[remote "origin"]のURLを控える |
4 jenkinsでプロジェクト画面に戻り、GitのRepositoryの部分に、先ほど控えたリポジトリのURLを入力し、赤いエラーメッセージがでなければOK。
5 後は試しに、変更した後、ビルドしてソースが反映されていればOK。
参考リンク