master
yml 109 lines 3.54 KB
Raw
1 # Copyright (c) 2021 Red Hat, Inc.
2 #
3 # Author:
4 # Cleber Rosa <crosa@redhat.com>
5 #
6 # This work is licensed under the terms of the GNU GPL, version 2 or
7 # later. See the COPYING file in the top-level directory.
8 #
9 # This is an ansible playbook file. Run it to set up systems with the
10 # gitlab-runner agent.
11 ---
12 - name: Installation of gitlab-runner
13 hosts: all
14 vars_files:
15 - vars.yml
16 tasks:
17 - debug:
18 msg: 'Checking for a valid GitLab registration token'
19 failed_when: "gitlab_runner_authentication_token == 'PLEASE_PROVIDE_A_VALID_TOKEN'"
20
21 - name: Create a group for the gitlab-runner service
22 group:
23 name: gitlab-runner
24
25 - name: Create a user for the gitlab-runner service
26 user:
27 user: gitlab-runner
28 group: gitlab-runner
29 groups: kvm
30 comment: GitLab Runner
31 home: /home/gitlab-runner
32 shell: /bin/bash
33
34 - name: Remove the .bash_logout file when on Ubuntu systems
35 file:
36 path: /home/gitlab-runner/.bash_logout
37 state: absent
38 when: "ansible_facts['distribution'] == 'Ubuntu'"
39
40 - name: Set the Operating System for gitlab-runner
41 set_fact:
42 gitlab_runner_os: "{{ ansible_facts[\"system\"]|lower }}"
43 - debug:
44 msg: gitlab-runner OS is {{ gitlab_runner_os }}
45
46 - name: Set the architecture for gitlab-runner
47 set_fact:
48 gitlab_runner_arch: "{{ ansible_to_gitlab_arch[ansible_facts[\"architecture\"]] }}"
49 - debug:
50 msg: gitlab-runner arch is {{ gitlab_runner_arch }}
51
52 # Debian/Ubuntu setup
53 - name: Get gitlab-runner repo setup script (DEB)
54 get_url:
55 dest: "/root/"
56 url: "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.deb.sh"
57 mode: 0755
58 when:
59 - ansible_facts['distribution'] in ['Ubuntu', 'Debian']
60
61 - name: Run gitlab-runner repo setup script (DEB)
62 shell: "/root/script.deb.sh"
63 when:
64 - ansible_facts['distribution'] in ['Ubuntu', 'Debian']
65
66 - name: Install gitlab-runner (DEB)
67 ansible.builtin.apt:
68 name: gitlab-runner
69 update_cache: yes
70 state: present
71 when:
72 - ansible_facts['distribution'] in ['Ubuntu', 'Debian']
73
74 # RPM setup
75 - name: Get gitlab-runner repo setup script (RPM)
76 get_url:
77 dest: "/root/"
78 url: "https://packages.gitlab.com/install/repositories/runner/gitlab-runner/script.rpm.sh"
79 mode: 0755
80 when:
81 - ansible_facts['distribution'] == 'CentOS'
82
83 - name: Run gitlab-runner repo setup script (RPM)
84 shell: "/root/script.rpm.sh"
85 when:
86 - ansible_facts['distribution'] == 'CentOS'
87
88 - name: Install gitlab-runner (RPM)
89 yum:
90 name: gitlab-runner
91 update_cache: yes
92 state: present
93 when:
94 - ansible_facts['distribution'] == 'CentOS'
95
96 # Register Runners
97 - name: Register the gitlab-runner
98 command: "/usr/bin/gitlab-runner register --non-interactive --url {{ gitlab_runner_server_url }} --token {{ gitlab_runner_authentication_token }} --executor shell"
99
100 - name: Install the gitlab-runner service using its own functionality
101 command: "/usr/bin/gitlab-runner install --user gitlab-runner --working-directory /home/gitlab-runner"
102 register: gitlab_runner_install_service_result
103 failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
104
105 - name: Enable the gitlab-runner service
106 service:
107 name: gitlab-runner
108 state: started
109 enabled: yes