[小团队自动化] 基于 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 操做

系列文章

相关文章
相关标签/搜索