Forge Home


A Module to Install and register the Gitlab CI Multirunner.


8,079 latest version

4.4 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 0.3.0 (latest)
  • 0.2.4
  • 0.2.3
  • 0.2.2
  • 0.2.1
  • 0.2.0
  • 0.1.7
  • 0.1.6
  • 0.1.5
  • 0.1.4
  • 0.1.3
  • 0.1.2
  • 0.1.1
  • 0.1.0
  • 0.0.3
  • 0.0.2
  • 0.0.1 (deleted)
released Nov 2nd 2016
This version is compatible with:
  • , , , ,

Start using this module

  • r10k or Code Manager
  • Bolt
  • Manual installation
  • Direct download

Add this module to your Puppetfile:

mod 'frankiethekneeman-gitlab_ci_multi_runner', '0.3.0'
Learn more about managing modules with a Puppetfile

Add this module to your Bolt project:

bolt module add frankiethekneeman-gitlab_ci_multi_runner
Learn more about using this module with an existing project

Manually install this module globally with Puppet module tool:

puppet module install frankiethekneeman-gitlab_ci_multi_runner --version 0.3.0

Direct download is not typically how you would use a Puppet module to manage your infrastructure, but you may want to download the module in order to inspect the code.



frankiethekneeman/gitlab_ci_multi_runner — version 0.3.0 Nov 2nd 2016

Build Status


This module has seen some use, and noone is more surprised than me. I clearly don't have the bandwidth to maintain it properly anymore. If you're interested in helping, please send me an email: fjvanw at I will figure out how to deal with the credentials needed, here and on PuppetForge, at the time.

Puppet Gitlab CI Multi Runner

A module for the installation and use of the Gitlab CI MultiRunner written in Go.

Installation takes place via the instructions found here

  • Repo is added, User created and managed, and the Runners are registered.

The version of the gitlab-ci-multi-runner package is restricted to v0.4.2 for RHEL5 and RHEL6 derivatives due to restrictions identified on CentOS systems. RHEL7 and Debian derivatives are set to use the most current release available.


class {'gitlab_ci_multi_runner': 
    nice => '15'

gitlab_ci_multi_runner::runner { "This is My Runner":
    gitlab_ci_url => '',
    tags          => ['tag', 'tag2','java', 'php'],
    token         => 'sometoken',
    executor      => 'shell',

gitlab_ci_multi_runner::runner { "This is My Second Runner":
    gitlab_ci_url => '',
    tags          => ['tag', 'tag2','npm', 'grunt'],
    token         => 'sometoken'
    executor      => 'ssh',
    ssh_host      => '',
    ssh_port      => 22,
    ssh_user      => 'mister-ci',
    ssh_password  => 'password123'

gitlab_ci_multi_runner::runner { "This is My Third Runner using Docker":
    gitlab_ci_url           => ''
    tags                    => ['tag', 'tag2','docker', 'container'],
    token                   => 'sometoken'
    executor                => 'docker',
    docker_image            => 'ruby:2.1',
    docker_postgres         => '9.5',
    docker_allowed_services => ['elasticsearch', 'memcached', 'haproxy'],
    docker_allowed_images   => ['ruby', 'wordpress'],
    docker_volumes          => ['/var/run/docker.sock:/var/run/docker.sock', '/src/webapp:/opt/webapp']

##Installation Options


control the niceness of the actual process running the CI Jobs. Valid values are from -20 to 19.
Leading '+' is optional.

##Runner Options

All options are pulled from the Gitlab CI MultiRunner registration command - The name of the runner will be used to Generate the description when registering the Runner.

###Standard Options Used By all Executors.


The GitLab-CI Coordinator URL

####tags This is a list of tags to apply to the runner - it takes an array, which will be joined into a comma separated list of tags.


The GitLab-CI Token for this Runner


The Executor: shell, docker, docker-ssh, ssh?

The Runner is packages with a "Parallels" Executor as well.

Docker Options

Used by the Docker and Docker SSH executors.


The Docker Image (eg. ruby:2.1)


Run Docker containers in privileged mode

Any truthy value will set this off.


If you want to enable mysql please enter version (X.Y) or enter latest


If you want to enable postgres please enter version (X.Y) or enter latest


If you want to enable redis please enter version (X.Y) or enter latest


If you want to enable mongo please enter version (X.Y) or enter latest


Specify a list of volumes that are being mounted to every docker container spawned by a docker executor. For details see the official documentation about docker volumes.

###Parallels Options Used by the "Parallels" executor.


The Parallels VM (eg. my-vm)

###SSH Options Used by the SSH, Docker SSH, and Parllels Executors.


The SSH Server Address (eg.


The SSH Server Port (eg. 22)


The SSH User (eg. root)


The SSH Password (eg.


Please maintain sensible spacing between logical blocks of code, and a 4 space indent - no tabs, thank you. Where line breaks are concerned - readability is the key here. Since we're no longer using punch cards to run our code, there's no need for our lines to fit into a specific line length 100% of the time. That being said, this repository likes to wrap between 80 and 100 characters when possible, to facilitate a broad range of coding display styles. If you use puppet-lint, I suggest you also use the flag to disable the 80 character line limit.

Please open pull requests for any features you can, and make sure to update the README for your features.