Skip to content

Instantly share code, notes, and snippets.

@gam6itko
Last active February 27, 2025 18:14
Show Gist options
  • Save gam6itko/90a1d1f0baa70baaff39ec3dc8a7b58e to your computer and use it in GitHub Desktop.
Save gam6itko/90a1d1f0baa70baaff39ec3dc8a7b58e to your computer and use it in GitHub Desktop.
ansible community.general.gitlab_runner - Install and register gitlab group runner example
---
- name: Play gitlab-runner
hosts: all
tasks:
- name: Create a GitLab Runner user
user:
name: gitlab-runner
comment: GitLab Runner
create_home: true
shell: /bin/bash
become: true
- name: Download the binary for your system
get_url:
url: https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-amd64
dest: /usr/bin/gitlab-runner
mode: 0777
become: true
- name: Install gitlab-runner
command:
cmd: gitlab-runner install --user=gitlab-runner --working-directory=/home/gitlab-runner
creates: /etc/systemd/system/gitlab-runner.service
become: true
- name: Start gitlab-runner service
service:
name: gitlab-runner
enabled: true
state: started
become: true
- name: Install pip module `python-gitlab`
pip:
name: python-gitlab
state: present
become: true
- name: Register group docker runner
block:
- name: Register group docker runner
community.general.gitlab_runner:
access_level: ref_protected
api_url: "{{ gitlab.url }}"
api_token: "{{ gitlab.access_token }}"
registration_token: "{{ gitlab.group_registration_token }}"
description: Group docker runner
state: present
active: true
tag_list: [ "docker" ]
run_untagged: false
locked: false
owned: true
become: true
register: reg_gitlab_runner_group
- name: Insert runner config block
when: reg_gitlab_runner_group.runner.token is defined
block:
- name: Render template
set_fact:
gitlab_group_runner_block: "{{ lookup('template', 'group-runner.block.toml.j2') }}"
- name: Block file
blockinfile:
dest: /etc/gitlab-runner/config.toml
content: '{{ gitlab_group_runner_block }}'
state: present
marker: "# {mark} group runner"
become: true
- name: Verify
command:
cmd: gitlab-runner verify
handlers:
- name: gitlab-runner-restart
ansible.builtin.service:
name: gitlab-runner
state: restarted
become: true
[[runners]]
name = "{{ ansible_hostname }}: docker"
url = "https://gitlab.com/"
id = {{ reg_gitlab_runner_group.runner.id }}
token = "{{ reg_gitlab_runner_group.runner.token }}"
executor = "docker"
[runners.custom_build_dir]
[runners.docker]
tls_verify = false
image = "php:8.1"
privileged = false
disable_entrypoint_overwrite = false
oom_kill_disable = false
disable_cache = false
volumes = ["/cache"]
shm_size = 0
[runners.cache]
[runners.cache.s3]
[runners.cache.gcs]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment