我希望利用GitLab CI/CD / gitlab-runner,在一组服务器上保持自定义代码的最新更新。
期望的效果是,当针对GitLab中的某个项目进行提交时,多个服务器会自动将这些更改拉下来。
是否有可能以这种方式利用gitlab,以便在项目中注册的每个运行者都执行.gitlab-ci.yml文件的内容?还是有更好的工具来完成这一任务?
我可以使用Ansible将更新文件推到每台服务器上,但我正在寻找更容易解决的问题-- GitLab中固有的内容。
编辑:替代解决方案
我决定在repos中选择预挂钩和后挂钩文件的路径,如下所述:
https://gist.github.com/noelboss/3fe13927025b89757f8fb12e9066f2fa
基本上,我将主服务器表示为代码推入主回购的主要源代码,并将我的整个车队定义为. .git/config中的远程repos。在我所有的服务器上,使用repo内部的post钩子,我可以将代码复制到正确的执行路径中。
发布于 2019-12-18 08:53:25
@aren 81跑步者并不打算在你描述的拉力方式中使用。您提出的Ansible push方法更符合典型的部署流程。我明白为什么您可能更喜欢简单的拉方法而不是通过脚本推送。我想,这些天的服务器群是通过kubernetes或码头群,这可以简化部署后,最初的设置头痛。
https://stackoverflow.com/questions/59366689
复制相似问题