Home
Product
Article
clodu buildからcompute engineへssh(scp)している例があまり無かったのでメモ。
Cloud Build構成ファイル(cloudbuild.yaml)は以下の通り
steps:
# ① Cloud Buildの実行環境にSSH鍵を作成
- name: 'bash'
secretEnv: ['SSH_KEY','SSH_KEY_PUB']
entrypoint: 'bash'
args:
- -c
- |
mkdir -p /builder/home/.ssh
echo "$$SSH_KEY" >>/builder/home/.ssh/google_compute_engine
echo "$$SSH_KEY_PUB" >>/builder/home/.ssh/google_compute_engine.pub
chmod 400 /builder/home/.ssh/google_compute_engine
# ② アプリをビルド
- name: node:16.14.0
entrypoint: npm
args: ['install']
- name: node:16.14.0
entrypoint: npm
args: ["run","build"]
# ③ VMインスタンスへファイルを転送
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
entrypoint: gcloud
args: ['compute', 'scp', '--recurse', 'src','root@instanceName:api', '--zone', 'asia-northeast1-b']
availableSecrets:
secretManager:
- versionName: projects/{projectName}/secrets/SSH_KEY/versions/latest
env: SSH_KEY
- versionName: projects/{projectName}/secrets/SSH_KEY_PUB/versions/latest
env: SSH_KEY_PUB
options:
logging: CLOUD_LOGGING_ONLY
timeout: 1200s
① Compute Engineへssh(scp)する為の鍵をCloud Buildの実行環境に作成
ssh鍵の内容はSecret Managerに保存し、ビルド時に復号する。
② アプリをビルド
③ VMインスタンスへscpでファイルを送信
ssh-keygen -t rsa -f ~/.ssh/google_compute_engine
作成した公開鍵(google_compute_engine.pub)の中身をVMインスタンスのメタデータに追加する メタデータはCompute Engine管理画面の「メタデータ」 > 「SSH 認証鍵」から編集できる
1で作成したSSH鍵をCloud Buildの実行環境で使う為に、Secret Managerにシークレットを追加する yamlファイルでいうSSH_KEYとSSH_KEY_PUB
Cloud Build構成ファイル(cloudbuild.yaml)を作成
Cloud Buildのトリガーを作成してビルドを実行
参考
フロント側のデプロイフローも紹介してるのでこちらも是非
4min