持续集成运行器可以访问生产服务器

我正在为产品设置CI。 我正在使用Gitlab CI内部的Gitlab服务器来pipe理项目的testing和部署

部署项目并不像同步文件那么简单。 它需要build立,检查不一致性,如果更新没有成功则回滚。

我担心的是运行testing和pipe理新代码集成的gitlab runner实例可以访问生产实例。

我的第一个想法是让跑步者简单地向生产服务器发送一个HTTP POST请求,要求它自己更新,然后报告是成功还是失败。 这样,跑步者无法访问生产服务器上的文件系统,并且生产服务器可以决定是否响应该请求。 这种方法的问题是POST请求很可能会超时等待响应,因为构build不是即时的。

我的第二种方法是让gitlab ci runner使用受限制的用户无密码的sshlogin到生产服务器,其唯一目的是构build和运行项目,以便运行者可以简单地使用结构脚本来更新服务器并直接报告失败。 这将很容易实现,并与Gitlab CI系统配合使用。

更新 :我尝试了面料的方法,但是当跑步者似乎不想login的时候,我停了下来。那么你的想法是什么? 一些docker魔法?