diff --git a/defaults/main.yml b/defaults/main.yml
index 445efd7bffc60d1ceef9ea2dbce3711def336ac5..5c04e4e7bc680317282a0a443a52b54723fef2c7 100644
--- a/defaults/main.yml
+++ b/defaults/main.yml
@@ -1,2 +1,3 @@
 ---
-# defaults file for gitlab-runner
+# Maximum number of jobs to run concurrently
+gitlab_runner_concurrent: '{{ ansible_processor_cores }}'
diff --git a/tasks/global-setup.yml b/tasks/global-setup.yml
new file mode 100644
index 0000000000000000000000000000000000000000..0c141ffa182500b3fa1d22fd9546133ba3fa0f0a
--- /dev/null
+++ b/tasks/global-setup.yml
@@ -0,0 +1,7 @@
+---
+- name: Set concurrent option
+  lineinfile:
+    dest: /etc/gitlab-runner/config.toml
+    regexp: ^concurrent =
+    line: concurrent = {{ gitlab_runner_concurrent }}
+    state: present
diff --git a/tasks/main.yml b/tasks/main.yml
index d0904b5423a37274dabaf7b96a86055d774ccf0b..eb76afeb69556d769f3a343eb229897d0ba2e5da 100644
--- a/tasks/main.yml
+++ b/tasks/main.yml
@@ -2,3 +2,6 @@
 - name: Install GitLab Runner (RedHat)
   include: install-redhat.yml
   when: ansible_os_family == 'RedHat'
+
+- name: Set global options
+  include: global-setup.yml