Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有可能让多个gitlab运行程序都执行相同的作业吗?_Gitlab_Gitlab Ci Runner - Fatal编程技术网

有可能让多个gitlab运行程序都执行相同的作业吗?

有可能让多个gitlab运行程序都执行相同的作业吗?,gitlab,gitlab-ci-runner,Gitlab,Gitlab Ci Runner,我希望利用GitLab CI/CD/GitLab runner在一组服务器上保持自定义代码的最新状态 理想的效果是,当对GitLab中的某个项目进行提交时,几个服务器会自动停止这些更改 是否可以以这种方式利用gitlab runner,以便每个注册到项目的runner都执行.gitlab ci.yml文件的内容?还是有更好的工具来实现这一点 我可以使用Ansible将更新文件推送到每台服务器,但我正在寻找更容易解决的问题—GitLab中固有的问题 编辑:替代解决方案 我决定在我的回购协议中使用前

我希望利用GitLab CI/CD/GitLab runner在一组服务器上保持自定义代码的最新状态

理想的效果是,当对GitLab中的某个项目进行提交时,几个服务器会自动停止这些更改

是否可以以这种方式利用gitlab runner,以便每个注册到项目的runner都执行
.gitlab ci.yml
文件的内容?还是有更好的工具来实现这一点

我可以使用Ansible将更新文件推送到每台服务器,但我正在寻找更容易解决的问题—GitLab中固有的问题

编辑:替代解决方案

我决定在我的回购协议中使用前钩子文件和后钩子文件,如下所述:


基本上,我将指定一个主服务器作为代码推入主repo的主要源,并在那里的.git/config中将我的整个团队定义为远程repo。在我所有的服务器上使用bare repo中的post钩子,我就可以将代码复制到正确的执行路径中。

@ahxn81运行程序并不是真的打算以您描述的拉动方式使用。您提出的Ansible推送方法更符合典型的部署流程。我可以理解为什么您可能更喜欢pull方法的简单性而不是通过脚本进行推送。我猜现在的服务器群是通过kubernetes或docker swarm来实现的,这可以简化初始设置后的部署。

@ahxn81跑步者并不是真的打算以您描述的拉动方式使用。您提出的Ansible推送方法更符合典型的部署流程。我可以理解为什么您可能更喜欢pull方法的简单性而不是通过脚本进行推送。我猜现在的服务器群是通过kubernetes或docker swarm来实现的,这可以简化初始设置后的部署。

我认为最好有一个运行程序,并从运行程序中引入服务器。是否不可能让所有运行程序都注册到项目流程中?是的,例如,您可以使用但您需要在X服务器上管理X个跑步者。你想这样做吗?是的。我可以轻松地自动化部署和注册跑步者的过程,这样我的车队中的每台服务器上都有一名跑步者。然后,每个运行程序上的任务都是相同的——从git中提取代码并将代码复制到该服务器上的适当目录中。通过查看shell executor和gitlab runner文档,我没有看到任何控制参数强制项目中的多个(全部)运行程序全部执行-似乎是第一个使用它获取作业的运行程序,然后管道就完成了。也许您的问题可以在客户端得到解决?定期从中提取代码或使用一些想法。如果您在gitlab之外处理它,就不必担心更新管道,您只需生成Serwer并让它们处理从存储库中拉取更改。我认为最好使用一个运行程序并从运行程序中触发服务器拉取。是否不可能将所有运行程序注册到项目进程管道中?是的,您可以使用,例如,但您需要在X服务器上管理X运行程序。你想这样做吗?是的。我可以轻松地自动化部署和注册跑步者的过程,这样我的车队中的每台服务器上都有一名跑步者。然后,每个运行程序上的任务都是相同的——从git中提取代码并将代码复制到该服务器上的适当目录中。通过查看shell executor和gitlab runner文档,我没有看到任何控制参数强制项目中的多个(全部)运行程序全部执行-似乎是第一个使用它获取作业的运行程序,然后管道就完成了。也许您的问题可以在客户端得到解决?定期从中提取代码或使用一些想法。如果您在gitlab之外处理它,您就不必担心更新管道,您只需生成Serwer并让他们处理从存储库中提取更改。感谢您的澄清。这就是我最终得出的结论。我花了几个小时阅读GitLab CI/CD以及如何设置Runner。作为一名老年人,我从来没有看到过任何关于这通常如何运作的基本原理的澄清。可能是因为有开发背景的人已经有了基本的理解。谢谢你的澄清。这就是我最终得出的结论。我花了几个小时阅读GitLab CI/CD以及如何设置Runner。作为一名老年人,我从来没有看到过任何关于这通常如何运作的基本原理的澄清。可能是因为有开发背景的人已经有了基本的理解。