Jenkins入門ガイド – インストールから基本設定まで
1. はじめに
Jenkinsは、継続的インテグレーション(CI)および継続的デリバリー(CD)を実現するためのオープンソースツールです。ソフトウェアのビルド、テスト、デプロイを自動化し、開発の効率を向上させることができます。
本記事では、以下の内容を解説します: 1. Jenkinsのインストール 2. 初期設定 3. 基本的なジョブの作成 4. プラグインの管理 5. Jenkinsの活用例
2. Jenkinsのインストール
2.1. Jenkinsのシステム要件
2.2. インストール方法
Linux(Ubuntu)
wget -q -O - https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb http://pkg.jenkins.io/debian-stable binary/ > /etc/apt/sources.list.d/jenkins.list' sudo apt update sudo apt install jenkins -y
起動:
sudo systemctl start jenkins
sudo systemctl enable jenkins
Windows
- Jenkins公式サイト からWindows用の
.msi
インストーラをダウンロード - インストーラを実行し、画面の指示に従ってインストール
http://localhost:8080
にアクセス
Docker
docker run -p 8080:8080 -p 50000:50000 jenkins/jenkins:lts
3. Jenkinsの初期設定
3.1. 初回ログイン
http://localhost:8080
にアクセス- 管理者パスワードの入力
sh cat /var/lib/jenkins/secrets/initialAdminPassword
プラグインのインストール
- 推奨プラグインをインストール
管理者ユーザーの作成
- Jenkinsの準備完了
4. ジョブの作成
4.1. フリースタイルプロジェクトの作成
4.2. パイプラインジョブの作成
Jenkinsのパイプラインを使うと、複雑なビルド・デプロイ処理を簡単に管理できます。
Jenkinsfile
以下のスクリプトを Jenkinsfile
として保存:
pipeline { agent any stages { stage('Build') { steps { sh 'mvn clean package' } } stage('Test') { steps { sh 'mvn test' } } stage('Deploy') { steps { sh 'scp target/myapp.jar user@server:/path/to/deploy' } } } }
- 「新規ジョブ作成」 → 「パイプライン」 を選択
- 「Pipeline script from SCM」 を選択
- 「Git」 を選択し、リポジトリのURLを入力
- 「保存」 して実行
5. プラグインの管理
Jenkinsの機能を拡張するために、プラグインを導入します。
プラグインのインストール方法
おすすめプラグイン
プラグイン名 | 機能 |
---|---|
Pipeline | パイプラインジョブの作成 |
Git Plugin | Gitリポジトリ連携 |
Subversion Plugin | SVNとの連携 |
Build Timeout Plugin | ビルドが長時間停止するのを防ぐ |
Blue Ocean | 視覚的なパイプライン管理 |
6. Jenkinsの活用例
1. GitHubと連携
2. Dockerコンテナのビルド
pipeline { agent any stages { stage('Build') { steps { sh 'docker build -t myapp .' } } stage('Push') { steps { sh 'docker push myrepo/myapp' } } } }
3. 自動デプロイ(SSHを使う)
stage('Deploy') { steps { sh 'scp myapp.jar user@server:/path/to/deploy' sh 'ssh user@server systemctl restart myapp' } }
7. まとめ
本記事では、Jenkinsの基本的な使い方を解説しました。継続的インテグレーション(CI)や継続的デリバリー(CD)を実現し、開発プロセスを自動化することで、効率的な開発が可能になります。
次に学ぶべきトピック
- Jenkinsの高度なパイプライン(Declarative vs Scripted)
- Kubernetesとの統合
- Jenkinsfileの最適化
- Jenkinsの負荷分散とスケーリング
- Security設定のベストプラクティス
Jenkinsを活用して、効率的なCI/CD環境を構築しましょう!