Skip to content
Snippets Groups Projects
Select Git revision
  • efb87293caccc4d4f61eb33adc7622b7b5d7312f
  • master default protected
2 results

gitlab-runner

  • Clone with SSH
  • Clone with HTTPS
  • Name Last commit Last update
    defaults
    files
    meta
    tasks
    templates
    README.md

    GitLab Runner

    This role installs the gitlab-runner agent and registers runners.

    Requirements

    This role requires Ansible 2.0 or higher.

    Role Variables

    Variable Default Purpose
    gitlab_runner_package gitlab-runner As of GitLab 9.0, the GitLab Runner package has started using version 4 of the GitLab API and has been renamed to gitlab-runner. If you need to support GitLab versions prior to v9.0 then you need to use the older GitLab Runner package by setting this variable to gitlab-ci-multi-runner.
    gitlab_runner_install true Asserts whether to install the GitLab Runner agent.
    gitlab_runner_register true Asserts whether to register a runner.

    Runner Agent Variables

    These variables are used to configure the gitlab-runner agent, and thus affect all runners registered with this agent.

    Variable Default Purpose
    gitlab_runner_user gitlab-runner The username of the user that will be created to run the runner agent.
    gitlab_runner_groups [] Additional groups that the gitlab_runner_user should belong to.
    gitlab_runner_shell /bin/bash The shell that the gitlab_runner_user should use.
    gitlab_runner_sudo_cmds [] Specific shelll commands that the gitlab_runner_user can run as sudo, without a password.
    gitlab_runner_concurrent_jobs 2 The number of concurrent jobs that can be executed by this runner
    gitlab_runner_check_interval 5 How often the agent should check for new pending jobs. Value is in seconds.
    gitlab_runner_privkey '' Private SSH key which is added to the gitlab_runner_user for use as a deploy key.
    gitlab_runner_pubkey '' The public SSH key that matches the gitlab_runner_privkey. This is set up as a global deploy key in GitLab so all you have to do it enable that deploy key on your project.

    Per-Runner Variables

    You can register multiple runners with this role and all these variables below can be configured per runner.

    Variable Default Purpose
    gitlab_runner_url '' REQUIRED The GitLab CI coordinator URL.
    gitlab_runner_token '' REQUIRED A runner registration token for a project. These are unique per GitLab project.
    gitlab_runner_description {{ansible_hostname}} The name/description of the runner.
    gitlab_runner_executor shell The executor for this runner. Currently only supports shell.
    gitlab_runner_tags [] List of tags for which the runner should accept jobs. If not empty, then the runner will only run tagged jobs.
    gitlab_runner_locked true Asserts whether the runner should be locked to the project.

    Example Playbook

    This is the basic way to use this role. This will install the GitLab Runner agent, and register a single runner.

    - hosts: servers
      roles:
        - { role: gitlab-runner, gitlab_runner_url: https://gitlab.com/ci, gitlab_runner_token: <registration-token> }

    It is also possible to register multiple runners by running the role multiple times. The first run will install the agent and register the first runner, then each subsequent run will register another runner.

    - hosts: servers
      tasks:
        - include_role:
            name: gitlab-runner
          vars:
            gitlab_runner_url: https://gitlab.com/ci
            gitlab_runner_token: <registration-token>
            gitlab_runner_description: runner-1
        - include_role:
            name: gitlab-runner
          vars:
            gitlab_runner_install: false
            gitlab_runner_url: https://gitlab.com/ci
            gitlab_runner_token: <registration-token>
            gitlab_runner_description: runner-2