我希望利用GitLab CI / CD / gitlab-runner使一批服务器上的自定义代码保持最新。
期望的效果是,当对GitLab中的某个项目进行提交时,几台服务器会自动将这些更改拉下来。
是否可以通过这种方式利用gitlab-runner,以便每个在项目中注册的运行器都执行Kernel
文件的内容?还是有更好的工具来做到这一点?
我可以使用Ansible将更新文件下推到每个服务器,但是我正在寻找更容易解决的东西-GitLab中固有的东西。
编辑:替代解决方案
我决定按照以下说明在存储库中使用挂机前和挂机文件的路径:
https://gist.github.com/noelboss/3fe13927025b89757f8fb12e9066f2fa
基本上,我将主服务器表示为将代码推送到主存储库的主要来源,并在.git / config中将我的整个舰队定义为远程存储库。使用我所有服务器上裸仓库中的后钩子,然后可以将代码复制到正确的执行路径中。
答案 0 :(得分:1)
@ ahxn81并非真的打算将转轮用于您所描述的拉动方式。您提出的Ansible push方法更符合典型的部署流程。我明白了为什么您可能更喜欢pull方法的简单性而不是通过脚本进行推送。我想这几天的服务器是通过kubernetes或docker swarm,它们可以简化最初设置后的部署。