写在前边
刚来深圳的那段时间里,周末去参加了不少线下活动,可能是由于自己没有在大厂的工作经历,从2017年3月份大三在外边实习开始至今,一直都是运维开发(甚至前端)一把抓,所以很快就对 DevOps
产生了极大的兴趣,感觉 DevOps
与自己的工作状态十分贴合。
苦于刚来到现在这家公司的那段时间里,业务繁忙,一直没有时间做一个入门实践,只是写过一些定时上线的 Shell
脚本。
最近这段时间老哥独立埋头苦干,公司的前端项目也已经逐步完成了一套符合公司特征的基于GitLab
+ Drone CI
+ Vault
的CI/CD工作流。
你难以想象以前公司的前端项目工作流程多么落后,前端开发->推到 GitLab
仓库->后端pull到服务器->打包,现在前端开发完自行上传就开始自动打包和部署,省去人工的同时,也比人工更加的可靠。
近水楼台先得月,坐在老哥旁边的我一直蠢蠢欲动,终于等到过完春节的这段时间,最近几天没有什么业务和 Bug
,我觉得是时候大(踩)干(坑)一(自)场(虐)了。
感谢请假期间,也毫无怨言的给我指导,给我帮助,笔芯(反正他也看不到)。
工具介绍
Gitea 是一个开源社区驱动的 , 是一个轻量级的代码托管解决方案,后端采用 编写,采用 许可证.
Gitea的是创建一个极易安装,运行非常快速,安装和使用体验良好的自建 Git 服务。采用Go作为后端语言,只要生成一个可执行程序即可。并且它还支持跨平台,支持 Linux, macOS 和 Windows 以及各种架构,除了x86,amd64,还包括 ARM 和 PowerPC。
对于我来说,选择他的原因有两点
- UI 好看,我喜欢
- 资源占用低,最低要求为廉价树莓派,对我这种穷B来说,利好
- 团队维护的开源,非常活跃
Drone是一种基于容器技术的持续交付系统。Drone使用简单的YAML配置文件(docker-compose的超集)来定义和执行Docker容器中的Pipelines。
Drone与流行的源代码管理系统无缝集成,包括GitHub,GitHub Enterprise,Bitbucket等。
Vault是一个管理Secrets并保护敏感数据的工具,来自,如果你对这个名字有点陌生,那么你一定知道
Vault是一种安全访问
Secret
的工具。Secret
就是您要严格控制访问的任何内容,例如API密钥,密码或证书。Vault为任何机密提供统一的界面,同时提供严格的访问控制并记录详细的审计日志。现代系统需要访问大量
Secret
:数据库凭证,外部服务的API密钥,面向服务的体系结构通信的凭证等。了解谁正在访问哪些秘密已经非常困难且特定于平台。如果没有自定义解决方案,几乎不可能添加密钥滚动,安全存储和详细的审计日志。这是Vault介入的地方。Vault的主要功能包括:
- 安全秘密存储:任意密钥/值秘密可以存储在Vault中。Vault会在将这些机密写入持久存储之前加密这些机密,因此获取对原始存储的访问权限不足以访问您的机密。Vault可以写入磁盘,等。
- 动态秘密:Vault可以按需为某些系统生成机密,例如AWS或SQL数据库。例如,当应用程序需要访问S3存储桶时,它会要求Vault提供凭据,Vault将根据需要生成具有有效权限的AWS密钥对。创建这些动态机密后,Vault也会在租约到期后自动撤消它们。
- 数据加密:Vault可以加密和解密数据而无需存储数据。这允许安全团队定义加密参数,并允许开发人员将加密数据存储在SQL等位置,而无需设计自己的加密方法。
- 租赁和续订:Vault中的所有机密都有与之相关的租约。在租约结束时,Vault将自动撤销该秘密。客户可以通过内置续订API续订租约。
- 撤销:Vault内置了对秘密撤销的支持。保险柜不仅可以撤销单个秘密,还可以撤销秘密树,例如特定用户读取的所有秘密,或特定类型的所有秘密。撤销有助于关键滚动以及在入侵情况下锁定系统。
Vault UI 操作
Vault CLI 操作
系列文章
- 番外: