自动从Git lab到AWS EC2实例的代码部署

Vib*_*era 7 amazon-s3 amazon-ec2 amazon-web-services gitlab

我们正在构建一个我们正在使用GitLab存储库的应用程序.手动将代码部署到作为Amazon AWS EC2实例的测试服务器是繁琐的,我计划自动化部署过程,这样当我们提交代码时,它应该反映在测试实例中.

据我所知,我们可以使用AWS代码部署服务从GitHub获取代码.代码部署服务不支持GitLab存储库.有没有办法通过GitLab自动化代码部署过程到AWS Ec2实例.或者是否有shell脚本可能实现此目的?请教育我.

aut*_*nix 8

使用AWS CodeDeploy实现此目的的一种方法是将S3选项与Gitlab-CI结合使用:http://docs.aws.amazon.com/codepipeline/latest/userguide/getting-started-w.html

根据项目的设置方式,您可以生成分发Zip(Gradle通过应用程序插件提供此功能).如果您的项目不提供此类功能,则可能需要手动生成"分发"文件.

Gitlab不提供直接的S3集成,但是通过gitlab-ci.yml您可以将其下载到容器中并运行必要的上载命令,以根据AWS指令将生成的zip文件放在S3容器上以触发部署.

以下是您brefore-scriptgitlab-ci.yml文件中的外观示例:

before_script:
  - apt-get update --quiet --yes
  - apt-get --quiet install --yes python
  - pip install -U pip
  - pip install awscli
Run Code Online (Sandbox Code Playgroud)

有关如何将CodeDeploy与S3一起使用的AWS教程非常详细,因此我将跳过尝试在此处重现内容的步骤.

对于您当前正在手动执行的实际部署命令和操作,AWS CodeDeploy提供了通过app-spec文件中定义的脚本运行某些操作的功能,具体取决于应用程序的事件挂钩:

我希望这有帮助.