自动将代码从 Git 实验室部署到 AWS EC2 实例

Automate code deploy from Git lab to AWS EC2 instance

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

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

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

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

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

关于如何将 CodeDeploy 与 S3 结合使用的 AWS 教程非常详细,因此我将跳过此处重现内容的尝试。

关于您当前手动执行的实际部署命令和操作,AWS CodeDeploy 根据应用程序的事件挂钩,通过应用程序规范文件中定义的脚本提供 运行 某些操作的能力:

希望对您有所帮助。

这是我的旧 post 之一。但我碰巧找到了答案。虽然我的问题是针对代码部署的,但我会说没有必要使用 gitlab 使用任何 aws 要求。

我们根本不需要代码部署。不再需要使用任何外部 CI 服务器,如 team city 或 jenkins 来从 GitLab 执行 CI。

我们需要在分支的源目录下添加.gitlab-ci.yml文件,并在里面写一个.yml脚本。 GitLab 中有管道会自动执行 CI/CD。

GitLab CI/CD 的管道看起来更类似于 Jenkins 服务器的工作功能。使用 YML 脚本,我们可以在 EC2 实例上执行 SSH 并将文件放入其中。

如何将 gitlab .yml 文件写入 ssh 到 ec2 实例的示例在这里 https://docs.gitlab.com/ee/ci/yaml/README.html