refriedjello
refriedjello

Reputation: 817

Is it possible to have multiple gitlab-runners all execute the same jobs?

I'm hoping to leverage GitLab CI/CD / gitlab-runner to keep custom code up to date on a fleet of servers.

Desired effect is that when a commit is made against a certain project in GitLab, several servers then automatically pull those changes down.

Is it possible to leverage gitlab-runner's in this way, so that every runner registered with the project executes the contents of the .gitlab-ci.yml file? Or is there a better tool to accomplish this?

I could use Ansible to push updates files down to each server, but I was looking for something easier to solve for - something inherent in GitLab.

Edit: Alternative Solution

I decided to go the route of pre- and post-hook files in my repos as described here:

https://gist.github.com/noelboss/3fe13927025b89757f8fb12e9066f2fa

Basically I will be denoting a primary server as the main source for code pushes into the master repo, and have defined my entire fleet as remote repos in .git/config there. Using post-hooks inside of bare repo's on all of my servers, I can then copy my code into the proper execution path.

Upvotes: 0

Views: 981

Answers (1)

alex-at-gitlab
alex-at-gitlab

Reputation: 41

@ahxn81 Runners aren't really intended to be used in the pull way you describe. The Ansible push method you proposed is more in line with typical deploy flow. I can see why you might prefer the simplicity of the pull method over pushing via script. I guess a fleet of servers these days is via kubernetes or docker swarm which can simplify deployment after an initial setup headache.

Upvotes: 2

Related Questions