如何利用Gitlab-CI持续部署到远程机器?
長話短說,今天聊一聊使用Gitlab-CI 自動部署到遠程服務器。
如果看過《基于docker-compose的Gitlab CI/CD實踐&排坑指南》這篇文章的朋友,會注意到我是在 Gitlab-Runner服務器上自動部署的站點,本次我們結合ssh部署到遠程機器(將CI服務器和部署服務器分離,避免資源搶占)。
SSH免密登陸
還是那句:CI/CD實質是將我們手動集成、拷貝部署的方式腳本化,遠程部署的重要姿勢是要求免密操控。
受控機器上的某個賬戶信任 CI機器上gitlab-runner賬戶。
先執行su gitlab-runner切換到gitlab-runner賬戶
在你的CI機器(主控端)上使用 ssh-keygen命令創建公鑰,使用ssh-keygen -t rsa來創建,程序會問你存放目錄,如果不需要修改,直接回車幾次即可
將~/.ssh目錄下id_rsa.pub文件拷貝到受控機器的~/.ssh目錄中,然后將文件內容導入到~/.ssh/authorized_keys文件
在受控方機器設置權限:
~/.ssh權限設置為700;~/.ssh/authorized_keys權限設置為600
之后在主控CI機器 就具備免密登陸 遠程機器的能力。
如何持續部署?
利用鏡像tag持續部署: gitlab項目只要打出tag--> 執行構建鏡像Job(以此次git tag為鏡像tag)-->執行部署Job,拿到git tag-->部署該tag鏡像
CI_COMMIT_REF_NAME變量得到 The branch or tag name for which project is built
在docker-compose.yml里設置image: ${DOCKER_REGISTRY}/eap/eap-front-end:${TAG},可感知部署時插入的tag變量
上面的黃色背景行描述了 ssh遠程登陸-->切換到部署目錄-->插入本次構建的git tag--->執行容器部署的腳本寫法。
That'all, 本文記錄了gitlab-ci持續部署到遠程機器的過程:? ssh免密登陸是本菜雞最近搞定的姿勢,持續部署的方式簡單實用。
“兩年前,本人也是linux小白,也經歷了[想學][放棄][想學][放棄]...的循環。.NETCore 作為新一代開源跨平臺框架,面向云原生而生,容器技術作為云原生的奠基石,.NETer要擁抱容器,擁抱Linux。
https://www.jianshu.com/p/33461b619d53
總結
以上是生活随笔為你收集整理的如何利用Gitlab-CI持续部署到远程机器?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Istio 中的授权策略详解
- 下一篇: 使用ImpromptuInterface