Jenkins:DevOps時代の自動化基盤(テスト・デプロイ)

目次
DevOps時代の自動化基盤:Jenkinsの概要と基本コマンド
ソフトウェア開発において、 「コードを書いたら自動でテストし、自動でデプロイする」 という流れはもはや標準的な運用になっています。
その中心的な役割を担うのが Jenkins(ジェンキンス) です。
Jenkinsは、 継続的インテグレーション(CI)および継続的デリバリー(CD)を実現するための自動化サーバー です。
Gitへのpushをトリガーに、 ビルド・テスト・デプロイまでを自動化できるため、 DevOps環境では非常に重要な存在です。
Jenkinsとは何か
JenkinsはJavaで実装されたオープンソースの自動化サーバーです。
主な用途は以下の通りです。
- アプリケーションの自動ビルド
- ユニットテストの自動実行
- 静的解析の自動実行
- Dockerイメージのビルド
- サーバーへの自動デプロイ
数百種類以上のプラグインが存在し、 GitHub・Docker・Kubernetesなど、 さまざまなツールと連携可能です。
Jenkinsの基本構成
Jenkinsは以下の構成で動作します。
- Jenkinsサーバー(中央管理)
- ジョブ(Job):実行単位
- パイプライン(Pipeline):処理フロー定義
- エージェント(Agent):実行ノード
近年では「Pipeline as Code」が主流で、 Jenkinsfile に処理内容を記述する形が一般的です。
Jenkinsが適している場面
- Git push をトリガーに自動ビルドしたい
- テストを自動実行したい
- Dockerイメージを自動生成したい
- 本番サーバーへ自動デプロイしたい
- CI/CDパイプラインを構築したい
特にチーム開発や複数人開発環境では、 品質維持と作業効率向上に大きく貢献します。
Jenkinsのインストール(概要)
Debian / Ubuntu系
# apt update
# apt install openjdk-17-jdk
# apt install jenkins
Rocky / Fedora系
# dnf install java-17-openjdk
# dnf install jenkins
インストール後はサービスを起動します。
# systemctl enable jenkins
# systemctl start jenkins
状態確認:
$ systemctl status jenkins初期アクセス
ブラウザで以下にアクセスします。
初回は管理者パスワードが必要です。
# cat /var/lib/jenkins/secrets/initialAdminPasswordジョブの作成(概要)
Jenkinsでは「ジョブ」という単位で処理を定義します。
主なジョブタイプ:
- Freestyle Project(簡易設定型)
- Pipeline(コード定義型)
現在主流なのは Pipeline です。
Jenkinsfileの例
pipeline {
agent any
stages {
stage('Build') {
steps {
sh 'echo Build started'
}
}
stage('Test') {
steps {
sh 'echo Running tests'
}
}
stage('Deploy') {
steps {
sh 'echo Deploying application'
}
}
}
}このように、 ビルド・テスト・デプロイを段階的に定義できます。
CLIからの基本操作
JenkinsにはCLIツールもあります。
$ wget http://localhost:8080/jnlpJars/jenkins-cli.jar
ジョブ一覧取得:
$ java -jar jenkins-cli.jar -s http://localhost:8080 list-jobs
ビルド実行:
$ java -jar jenkins-cli.jar -s http://localhost:8080 build JOB名Jenkinsのメリット
- CI/CDを簡単に構築できる
- 豊富なプラグイン
- Git連携が容易
- パイプライン管理が可能
- チーム開発に最適
Jenkinsの注意点
- サーバー管理が必要
- プラグイン管理が複雑になりがち
- リソース消費が大きい
- 定期的なアップデートが必要
小規模プロジェクトではGitHub Actionsなどの クラウドCIも選択肢になりますが、 オンプレ環境や独自CI基盤では Jenkinsは依然として有力な選択肢です。
cron・Celeryとの違い
- cron: 単純な時間ベースの実行
- Celery: 非同期タスク処理基盤
- Jenkins: CI/CDパイプライン自動化
Jenkinsは単なるスケジューラーではなく、 開発ワークフロー自動化基盤として理解することが重要です。
まとめ
Jenkinsは、DevOps環境における中心的なCI/CDサーバーです。
ビルド・テスト・デプロイを自動化することで、 品質向上と作業効率化を同時に実現できます。
Linuxサーバー上で自前のCI環境を構築する場合、 Jenkinsは今なお有力な選択肢です。
自動化戦略を考える上で、 cron・systemd timer・Celeryとは役割が異なることを理解し、 適切に使い分けることが重要です。





