さまざまな方法でプロジェクトをデプロイする、ビルド、転送、デプロイ。
CI/CDなしの方法
鍵ペアを生成する
bash
# デフォルト -> ~/.ssh/id_rsa
ssh-keygen -t rsa -b 4096 -C "xxx"
# ファイル名を指定 -> ~/.ssh/id_rsa_deploy
ssh-keygen -t rsa -b 4096 -C "xxx" -f ~/.ssh/id_rsa_deploy
サイトオーナーはデプロイ用に専用の鍵ペアを生成しているため、他の鍵ペアに影響を与えません。
id_rsa_deploy.pub
の内容をサーバーの ~/.ssh/authorized_keys
ファイルに配置する必要があります。これにより、パスワードなしでログインできます。
デフォルトでは id_rsa
鍵が使用されますが、他の鍵を使用する場合は2つの方法があります。
deploy.sh
スクリプトで鍵ファイルを指定することができます。
deploy.sh
#!/bin/bash
ssh -i ~/.ssh/id_rsa_xxx root@xxx.xxx.xxx.xxx [実行するコマンド]
~/.ssh/config
ファイルを設定します。これにより、deploy.sh
スクリプトでssh deploy
コマンドを直接使用できます。
~/.ssh/config
# 特定のサーバーに特定の鍵を使用する
Host deploy
HostName xxx.xxx.xxx.xxx
User root
IdentityFile ~/.ssh/id_rsa_deploy
deploy.sh
#!/bin/bash
ssh deploy [実行するコマンド]
実行中にパスワードを入力する問題が発生します。このスクリプトは、SSH鍵のパスワードを3回入力する必要があります。Enter passphrase for key '/c/Users/Linux/.ssh/id_rsa_deploy':
問題は、ssh-add
コマンドを使用して鍵を ssh-agent
に追加することで解決できます。これにより、パスワードを再度入力する必要がなくなります。
bash
# SSHエージェント
eval "$(ssh-agent -s)"
# 鍵を追加
ssh-add ~/.ssh/id_rsa_deploy
# 追加された鍵を表示
ssh-add -l
# SSHエージェントを終了
ssh-agent -k
完全な実行スクリプト、パスワードは一度だけ入力します。
deploy.sh
#!/bin/bash
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_rsa_deploy
echo "プロジェクトを構築中"
pnpm run build
echo "ファイルを圧縮中..."
tar -zcvf .output.tar.gz .output
echo "サービスを停止中"
ssh deploy "cd /usr/local/app/node_run/it-fb && pm2 stop ecosystem.config.cjs && rm -rf .output.bak && mv .output .output.bak"
echo "ファイルをアップロード中..."
scp .output.tar.gz deploy:/usr/local/app/node_run/it-fb
echo "サービスを起動中"
ssh deploy "cd /usr/local/app/node_run/it-fb && tar -zxvf .output.tar.gz && pm2 start ecosystem.config.cjs && rm -rf .output.tar.gz"
echo "デプロイ完了"
rm -rf .output.tar.gz
ssh-agent -k
実行
package.json
{
"scripts": {
"deploy": "sh ./deploy.sh"
}
}
bash
# Windowsではgit bashで実行する必要があります
pnpm run deploy