[小團隊自動化] 基於 Gitea+Drone CI+Vault 打造屬於本身的CI/CD工做流

基於 Gitea+Drone CI+Vault 打造屬於本身的CI/CD工做流


寫在前邊前端

剛來深圳的那段時間裏,週末去參加了很多線下活動,多是因爲本身沒有在大廠的工做經歷,從2017年3月份大三在外邊實習開始至今,一直都是運維開發(甚至前端)一把抓,因此很快就對 DevOps 產生了極大的興趣,感受 DevOps 與本身的工做狀態十分貼合。git

苦於剛來到如今這家公司的那段時間裏,業務繁忙,一直沒有時間作一個入門實踐,只是寫過一些定時上線的 Shell 腳本。github

最近這段時間@Dee luo老哥獨立埋頭苦幹,公司的前端項目也已經逐步完成了一套符合公司特徵的基於GitLab + Drone CI + Vault 的CI/CD工做流。golang

你不可思議之前公司的前端項目工做流程多麼落後,前端開發->推到 GitLab 倉庫->後端pull到服務器->打包,如今前端開發完自行上傳就開始自動打包和部署,省去人工的同時,也比人工更加的可靠。docker

近水樓臺先得月,坐在老哥旁邊的我一直蠢蠢欲動,終於等到過完春節的這段時間,最近幾天沒有什麼業務和 Bug ,我以爲是時候大(踩)幹(坑)一(自)場(虐)了。數據庫

感謝@Dee luo請假期間,也毫無怨言的給我指導,給我幫助,筆芯(反正他也看不到)。後端

工具介紹

Gitea

Gitea 是一個開源社區驅動的 Gogs 克隆, 是一個輕量級的代碼託管解決方案,後端採用 Go 編寫,採用 MIT 許可證.安全

Gitea的是建立一個極易安裝,運行很是快速,安裝和使用體驗良好的自建 Git 服務。採用Go做爲後端語言,只要生成一個可執行程序便可。而且它還支持跨平臺,支持 Linux, macOS 和 Windows 以及各類架構,除了x86,amd64,還包括 ARM 和 PowerPC。服務器

對於我來講,選擇他的緣由有兩點架構

  • UI 好看,我喜歡
  • 資源佔用低,最低要求爲廉價樹莓派,對我這種窮B來講,利好
  • 團隊維護的開源,很是活躍

Drone

Drone是一種基於容器技術的持續交付系統。Drone使用簡單的YAML配置文件(docker-compose的超集)來定義和執行Docker容器中的Pipelines。

Drone與流行的源代碼管理系統無縫集成,包括GitHub,GitHub Enterprise,Bitbucket等。

Vault

Vault是一個管理Secrets並保護敏感數據的工具,來自HashiCorp,若是你對這個名字有點陌生,那麼你必定知道Vagrant

Vault是一種安全訪問 Secret 的工具。Secret就是您要嚴格控制訪問的任何內容,例如API密鑰,密碼或證書。Vault爲任何機密提供統一的界面,同時提供嚴格的訪問控制並記錄詳細的審計日誌。

現代系統須要訪問大量Secret:數據庫憑證,外部服務的API密鑰,面向服務的體系結構通訊的憑證等。瞭解誰正在訪問哪些祕密已經很是困難且特定於平臺。若是沒有自定義解決方案,幾乎不可能添加密鑰滾動,安全存儲和詳細的審計日誌。這是Vault介入的地方。

Vault的主要功能包括:

  • 安全祕密存儲:任意密鑰/值祕密能夠存儲在Vault中。Vault會在將這些機密寫入持久存儲以前加密這些機密,所以獲取對原始存儲的訪問權限不足以訪問您的機密。Vault能夠寫入磁盤,Consul等。
  • 動態祕密:Vault能夠按需爲某些系統生成機密,例如AWS或SQL數據庫。例如,當應用程序須要訪問S3存儲桶時,它會要求Vault提供憑據,Vault將根據須要生成具備有效權限的AWS密鑰對。建立這些動態機密後,Vault也會在租約到期後自動撤消它們。
  • 數據加密:Vault能夠加密和解密數據而無需存儲數據。這容許安全團隊定義加密參數,並容許開發人員將加密數據存儲在SQL等位置,而無需設計本身的加密方法。
  • 租賃和續訂:Vault中的全部機密都有與之相關的租約。在租約結束時,Vault將自動撤銷該祕密。客戶能夠經過內置續訂API續訂租約。
  • 撤銷:Vault內置了對祕密撤銷的支持。保險櫃不只能夠撤銷單個祕密,還能夠撤銷祕密樹,例如特定用戶讀取的全部祕密,或特定類型的全部祕密。撤銷有助於關鍵滾動以及在入侵狀況下鎖定系統。

Vault UI 操做

Vault CLI 操做

系列文章

相關文章
相關標籤/搜索