Bitbucket CI/CDで自動デプロイを設定する方法【実践編】
Bitbucket CI/CDで自動デプロイを設定する方法【実践編】
📌 目次
🔍 Bitbucket CI/CDとは?
Bitbucket CI/CDは、Bitbucket Pipelinesを活用した自動化ツールであり、開発プロセスを効率化するための仕組みです。コードの変更を検知し、テスト、ビルド、デプロイを自動化できます。
💡 CI/CDを導入するメリット
- 開発スピードの向上: 手作業のデプロイを削減し、迅速なリリースが可能。
- エラーの早期発見: コード変更ごとに自動テストを実行し、不具合を事前に防ぐ。
- 安定したデプロイ: 環境の違いによる問題を減らし、一貫したデプロイプロセスを実現。
- ヒューマンエラーの削減: 自動化により、デプロイミスや設定ミスを防ぐ。
⚙️ Bitbucket CI/CDの基本設定
Bitbucket CI/CDを利用するためには、まずPipelinesを有効化し、適切な設定を行う必要があります。以下の手順でセットアップを進めます。
📌 1. Bitbucket Pipelinesの有効化
- Bitbucketのリポジトリにアクセスし、左側のメニューから「Repository settings」を開く。
- 「Pipelines」セクションを選択し、「Enable Pipelines(Pipelinesを有効化)」をクリック。
📌 2. YAMLファイルの作成
リポジトリのルートディレクトリにbitbucket-pipelines.yml
というファイルを作成し、CI/CDのプロセスを定義します。
image: node:16
pipelines:
default:
- step:
name: Install dependencies
caches:
- node
script:
- npm install
- step:
name: Run Tests
script:
- npm test
📌 3. 環境変数の設定
APIキーやデータベースの接続情報など、機密情報を環境変数として管理します。
- Bitbucketの「Repository settings」→「Environment variables」に移動。
- 「Add variable」をクリックし、必要なキーと値を入力。
- 「Secured」をONにすると、変数の値がマスキングされます。
📌 4. キャッシュの活用
ビルド時間を短縮するために、依存関係のキャッシュを設定します。例えば、Node.jsの場合:
caches:
- node
これにより、次回のビルド時に依存関係を再インストールする必要がなくなります。
📌 5. 実行結果の確認
Pipelinesが正しく動作するか確認するため、テストコミットをプッシュし、「Pipelines」タブでログをチェックします。
🚀 自動デプロイの設定手順
Bitbucket CI/CDを活用して自動デプロイを設定することで、開発プロセスの効率化と安定性の向上が可能です。以下の手順で安全かつスムーズなデプロイ環境を構築しましょう。
📌 1. デプロイ先サーバーの準備
- デプロイ先のサーバーにSSHでログインし、必要なディレクトリを作成。
- 適切なユーザー権限を設定し、Bitbucketからアクセスできるようにする。
- 必要なランタイム環境(Node.js, Python, Docker など)をインストール。
📌 2. SSH鍵の設定
- ローカルマシンでSSH鍵を生成(Bitbucket専用の鍵を作成)。
- 生成された公開鍵(
id_rsa.pub
)をデプロイ先サーバーの~/.ssh/authorized_keys
に追加。 - Bitbucketの「Repository settings」→「SSH keys」に秘密鍵(
id_rsa
)を登録。
ssh-keygen -t rsa -b 4096 -C "bitbucket-ci"
📌 3. Bitbucket Pipelinesにデプロイステップを追加
デプロイの自動化を行うために、bitbucket-pipelines.yml
にデプロイステップを追加します。
pipelines:
branches:
master:
- step:
name: Deploy to Production
deployment: production
script:
- echo "Starting deployment..."
- scp -r ./dist user@server:/var/www/project
- ssh user@server 'cd /var/www/project && npm install --production && pm2 restart app'
📌 4. 環境変数の設定
- Bitbucketの「Repository settings」→「Environment variables」を開く。
- 以下の変数を追加し、安全に管理。
DEPLOY_SERVER
(デプロイ先のサーバーアドレス)DEPLOY_USER
(デプロイ用のSSHユーザー)DEPLOY_PATH
(デプロイ先のディレクトリ)
📌 5. デプロイのテスト
- 新しいブランチを作成し、デプロイ用の設定が正しく機能するかテスト。
- テスト後、Bitbucket Pipelinesのログを確認し、エラーが発生していないかチェック。
- 必要に応じてデバッグを行い、本番環境に適用。
📌 6. ロールバック戦略の準備
万が一のデプロイ失敗時に備えて、以下の方法でロールバックを迅速に行えるように準備しておきます。
- Gitタグや過去のブランチを使用して、安定版のバージョンへ迅速に戻せるようにする。
- デプロイ前にバックアップを取得し、環境を復旧できるようにする。
- デプロイスクリプトにロールバック用のコマンドを追加しておく。
これで、Bitbucket CI/CDを活用した自動デプロイ環境のセットアップが完了しました。今後の運用の中で適宜最適化を行い、よりスムーズなデプロイプロセスを確立しましょう。
✅ 自動デプロイのベストプラクティス
- 環境変数を活用: APIキーや認証情報を直接コードに含めず、安全に管理。
- デプロイの前にテストを実施: バグが本番環境に流入しないようにする。
- ロールバック戦略を用意: 万が一問題が発生した場合に迅速に対応できるように。
- 自動通知を設定: Slackやメール通知を設定し、デプロイの成功・失敗をチームに共有。
❓ Q&A
Q1. Bitbucket Pipelinesは無料で使えますか?
A. 無料プランでも利用可能ですが、実行時間には制限があります。
Q2. 環境変数の設定方法は?
A. Bitbucketの「Repository settings」→「Environment variables」から追加可能です。
Q3. デプロイが失敗する場合の対処法は?
A. ログを確認し、環境変数や接続設定を見直しましょう。
Q4. 複数の環境(開発/本番)でデプロイを分けるには?
A. branches
セクションを使用し、環境ごとに異なるステップを定義します。
Q5. Slack通知を設定するには?
A. BitbucketのWebhook機能を利用し、SlackのIncoming Webhookと連携します。