Skip to main content

SSH to Digital Ocean

生成公私鑰匙

  • 在本機生成一組公私鑰匙,執行 ssh-keygen。
  • 複製公鑰內容。
  • ssh 連線服務器。
  • 將生公鑰內容貼上至 .ssh/authorized_keys。

生成公私鑰匙 Cache Flow

服務器貼上 Cache Flow

設定 Gitlab 環境變數

  • 登入 Gitlab。
  • 左側導航欄點擊 Settings > CI/CD。
  • 在中央操作區點擊 Variables 的 Collapse 點擊 Add Variable。
  • 依序添加三個環境變數 DEV_SERVER_PRIVATE_KEY,DEV_SERVER_URL,DEV_SERVER_USER。

Cache Flow Cache Flow Cache Flow

編寫 gitlab-ci.yml

建立一個 stage 叫做 deploy,這個 stage 執行 ssh 連線到服務器。

  • gitlab-runner 環境啟用 ssh 服務,eval $(ssh-agent -s)。
  • 將環境變數 DEV_SERVER_PRIVATE_KEY 內容注入 ssh-agent,ssh-add <(echo "$DEV_SERVER_PRIVATE_KEY")。
  • ssh 連線服務器,-o StrictHostKeyChecking=no 跳過 ssh 第一次連線出現的提示,避免 gitlab-runner 卡住。
deploy_to_dev:
stage: deploy
tags:
- do
before_script:
- eval $(ssh-agent -s)
- ssh-add <(echo "$DEV_SERVER_PRIVATE_KEY")
script:
- ssh -o StrictHostKeyChecking=no $DEV_SERVER_USER@$DEV_SERVER_URL "ls -al"