Gradleプロジェクトにしてjarをビルドしてるので
ポチッとな〜するだけでデプロイ作業完了できます
ビルド環境
- Amazon Linux AMI 2017.09.1.20180307 x86_64 HVM GP2
- Jenkins ver. 2.111
配布先サーバーもAWS EC2です
やってること
- Gradleでjarをビルド
- Jenkinsで配布
- 場所をチョトダケ動かすヨ
手順
1. Jenkinsで配布先サーバーの登録
Publish Over SSH Plugin - Jenkins - Jenkins Wiki
Jenkinsの管理 > システムの設定 > Publish over SSH
Key
配布先への接続用公開鍵をコピペ
Name
判別しやすい名前をつける
Hostname
配布先のホスト
Username
配布先もec2 linuxなのでec2-userでいく
Remote Directory
なにも指定しなければ↑で指定したユーザーのホームディレクトリ
Test Configurationで失敗する?
配布先サーバのセキュリティグループで、ビルドサーバからのssh接続を許可するのをお忘れなく
2. Jenkinsジョブの設定
2.1. Gradleでjarをビルドする
Gradle Plugin - Jenkins - Jenkins Wiki
Jenkinsジョブ > ビルド > Invoke Gradle script
Use Gradle Wrapper
Tasks にタスク名を指定
かんたん!
2.2. 配布する
Jenkinsジョブ > ビルド後の処理 > Send build artifacts over SSH
Name
ドロップダウンでさっき登録したサーバが選べるようになっている
Transfer Sets
Source files
ビルド成果物までのパス
Remove prefix
これ指定しないと配布先にも同様のパスがつくられる
Remote directory
配布先のディレクトリを指定
サーバー設定のRemote Directoryでなにも指定してなければ
↑で指定したユーザーのホームディレクトリからの相対パス
Exec command
上書きして配布することができないので、いったん送りつけた後ファイルの場所を移動している
なんかEither Source files, Exec command or both must be supplied
とかエラーメッセージ出ているが無視
これで終わり〜