SCP を使用したデプロイ
このガイドでは、Bitbucket Pipelines で SCP-deploy パイプを使用してリモート ホストにファイルをデプロイする方法を説明します。
この例では、シンプルな ReactApp を作成し、SCP-deploy パイプを使用して本番環境にデプロイしました。
Pipelines とパイプを使用した自身のホストへのデプロイをハンズオンで確認したい場合、このリポジトリで完全なエンドツーエンドのサンプルを利用できます。
前提条件:
ssh アクセスが可能なリモート ホスト
Bitbucket リポジトリ
ステップ 1: プロジェクト用に Bitbucket リポジトリを構成する
Bitbucket の資格情報と構成設定を変数として追加します (「Pipelines 変数の設定方法」を参照)。
名前 | 値 |
---|---|
USER | リモート ホストで構成されているユーザー。 |
SERVER | ファイルの転送先のリモート ホスト。 |
これらの変数は、デプロイメント環境、リポジトリ、またはチーム レベルで定義できます。以下の例は、リポジトリ変数を示しています。
ステップ 2: SSH キーを構成する
Bitbucket Pipelines で SSH キーをセットアップするか、保護された変数 SSH_KEY
として提供します (「複数の ssh キーの使用」を参照)。既定では、SCP-deploy パイプは構成された SSH キーと known_hosts ファイルを使用します。
ステップ 3: サーバーを構成する
リモート ホスト (本番環境ノード) でを次のように構成します。
- ユーザーによる HTTP (ポート 80) への接続を許可します。
- アクセスを許可するように ssh キーを構成します。
サーバーで NGINX を使用する場合の構成例を示します。注: この構成はデモのみを目的としています。
server {
listen 80;
listen [::]:80;
root /var/www/scp-deploy/html;
index index.html index.htm;
server_name <your_host_public_DNS_name>, <example.com>;
location / {
try_files $uri $uri/ =404;
}
}
ステップ 4: CI/CD 構成をセットアップする
bitbucket-pipelines.yml
ファイルを編集します。
SCP-deploy パイプの詳細を調べるには、エディタの右側でそれを選択します。
次のステップを bitbucket-pipelines.yml
に追加します。
image: node:10.15.3
pipelines:
default:
- step:
name: Build and test
caches:
- node
script:
- npm install
- npm test
- npm run build
artifacts:
- build/**
- step:
name: Deploy artifacts using SCP to PROD
deployment: production
script:
- pipe: atlassian/scp-deploy:0.3.3
variables:
USER: $USER
SERVER: $SERVER
REMOTE_PATH: '/var/www/scp-deploy/html'
LOCAL_PATH: 'build/*'
この構成では、Bitbucket リポジトリにプッシュするたびに SCP-deploy パイプを使用して、テストを実行し、ビルドして、リモート ホストにファイルをデプロイできます。「Bitbucket Pipelines 設定を編集および設定する方法」の詳細をご覧ください。
ステップ 5: アプリケーションを本番環境にデプロイする
アプリケーションのコードを Bitbucket リポジトリにプッシュし、それによってパイプラインをトリガーします。[Pipelines] を選択して、パイプラインの進行状況を確認できます。
これで、ユーザーは優れたアプリケーションのビルドに集中して取り組みながら、その他の作業を Bitbucket Pipelines で処理できるようになりました。