SSH to Digital Ocean
生成公私鑰匙
- 在本機生成一組公私鑰匙,執行 ssh-keygen。
- 複製公鑰內容。
- ssh 連線服務器。
- 將生公鑰內容貼上至 .ssh/authorized_keys。
生成公私鑰匙
服務器貼上
設定 Gitlab 環境變數
- 登入 Gitlab。
- 左側導航欄點擊 Settings > CI/CD。
- 在中央操作區點擊 Variables 的 Collapse 點擊 Add Variable。
- 依序添加三個環境變數 DEV_SERVER_PRIVATE_KEY,DEV_SERVER_URL,DEV_SERVER_USER。
編寫 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"