从gitlab.com CI管道在aws EFS上部署文件

问题描述 投票:0回答:1

从Gitlab CI管道在aws EFS中部署文件的最佳实践是什么?

目前,我们通过ssh将文件从gitlab.com部署到EFS到安装了EFS的EC2实例之一。这样做有更好的方法吗?不太热衷于为我们的EC2实例提供对gitlab的ssh访问权限

amazon-web-services gitlab-ci amazon-efs
1个回答
0
投票

如果您希望文件最终在EFS上,那么在一天结束时,您必须从安装了EFS卷的系统(某处)写入文件。除了写入它提供的nfs安装卷之外,没有办法写入EFS。 (EFS提供FileSync服务,AFAICT仅包含创建EC2实例并通过它转移到EFS的数据的过程,但这看起来更适合迁移而不是正在进行的文件操作)。

这并不一定意味着你必须允许gitlab进入ssh。你可以让gitlab将文件存放到某个地方并通知系统。或者您可以让系统轮询更改。但这些都不像你的实现那么简单。

另一种选择是限制ssh用户可以执行的操作。这需要花一点时间来确定gitlab文件复制过程的确切功能。如果它只使用SFTP或SCP,您应该能够将用户限制在此范围内,并且用户文件系统权限可以阻止用户写入不适当的位置。

总的来说,我没有看到很多devops构建流程复制代码到共享文件系统这些天。 NFS是共享文件的有效解决方案,但有其自身的缺陷。相反,部署过程通常构建某种类型的包,然后使用部署挂钩(“Continuous Delivery”式)自动部署包,或者手动更新部署自动化以升级版本。通常将两者结合起来,为开发环境提供持续的交付流程,并为生产提供手动版本设置。

© www.soinside.com 2019 - 2024. All rights reserved.