2021-07-09 17:29:28 +03:00
|
|
|
# Copyright (c) 2021 Red Hat, Inc.
|
|
|
|
#
|
|
|
|
# Author:
|
|
|
|
# Cleber Rosa <crosa@redhat.com>
|
|
|
|
#
|
|
|
|
# This work is licensed under the terms of the GNU GPL, version 2 or
|
|
|
|
# later. See the COPYING file in the top-level directory.
|
|
|
|
#
|
|
|
|
# This is an ansible playbook file. Run it to set up systems with the
|
|
|
|
# gitlab-runner agent.
|
|
|
|
---
|
|
|
|
- name: Installation of gitlab-runner
|
|
|
|
hosts: all
|
|
|
|
vars_files:
|
|
|
|
- vars.yml
|
|
|
|
tasks:
|
|
|
|
- debug:
|
|
|
|
msg: 'Checking for a valid GitLab registration token'
|
|
|
|
failed_when: "gitlab_runner_registration_token == 'PLEASE_PROVIDE_A_VALID_TOKEN'"
|
|
|
|
|
|
|
|
- name: Create a group for the gitlab-runner service
|
|
|
|
group:
|
|
|
|
name: gitlab-runner
|
|
|
|
|
|
|
|
- name: Create a user for the gitlab-runner service
|
|
|
|
user:
|
|
|
|
user: gitlab-runner
|
|
|
|
group: gitlab-runner
|
|
|
|
comment: GitLab Runner
|
|
|
|
home: /home/gitlab-runner
|
|
|
|
shell: /bin/bash
|
|
|
|
|
|
|
|
- name: Remove the .bash_logout file when on Ubuntu systems
|
|
|
|
file:
|
|
|
|
path: /home/gitlab-runner/.bash_logout
|
|
|
|
state: absent
|
|
|
|
when: "ansible_facts['distribution'] == 'Ubuntu'"
|
|
|
|
|
|
|
|
- name: Set the Operating System for gitlab-runner
|
|
|
|
set_fact:
|
|
|
|
gitlab_runner_os: "{{ ansible_facts[\"system\"]|lower }}"
|
|
|
|
- debug:
|
|
|
|
msg: gitlab-runner OS is {{ gitlab_runner_os }}
|
|
|
|
|
|
|
|
- name: Set the architecture for gitlab-runner
|
|
|
|
set_fact:
|
|
|
|
gitlab_runner_arch: "{{ ansible_to_gitlab_arch[ansible_facts[\"architecture\"]] }}"
|
|
|
|
- debug:
|
|
|
|
msg: gitlab-runner arch is {{ gitlab_runner_arch }}
|
|
|
|
|
|
|
|
- name: Download the matching gitlab-runner
|
|
|
|
get_url:
|
|
|
|
dest: /usr/local/bin/gitlab-runner
|
|
|
|
url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-{{ gitlab_runner_arch }}"
|
|
|
|
owner: gitlab-runner
|
|
|
|
group: gitlab-runner
|
|
|
|
mode: u=rwx,g=rwx,o=rx
|
|
|
|
|
|
|
|
- name: Register the gitlab-runner
|
|
|
|
command: "/usr/local/bin/gitlab-runner register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list {{ ansible_facts[\"architecture\"] }},{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
|
|
|
|
|
|
|
- name: Install the gitlab-runner service using its own functionality
|
|
|
|
command: /usr/local/bin/gitlab-runner install --user gitlab-runner --working-directory /home/gitlab-runner
|
|
|
|
register: gitlab_runner_install_service_result
|
|
|
|
failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
|
|
|
|
|
|
|
|
- name: Enable the gitlab-runner service
|
|
|
|
service:
|
|
|
|
name: gitlab-runner
|
|
|
|
state: started
|
|
|
|
enabled: yes
|
2022-02-25 20:20:11 +03:00
|
|
|
|
|
|
|
- name: Download secondary gitlab-runner
|
|
|
|
get_url:
|
|
|
|
dest: /usr/local/bin/gitlab-runner-arm
|
|
|
|
url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-arm"
|
|
|
|
owner: gitlab-runner
|
|
|
|
group: gitlab-runner
|
|
|
|
mode: u=rwx,g=rwx,o=rx
|
|
|
|
when:
|
|
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- ansible_facts['distribution_version'] == '20.04'
|
|
|
|
|
|
|
|
- name: Register secondary gitlab-runner
|
|
|
|
command: "/usr/local/bin/gitlab-runner-arm register --non-interactive --url {{ gitlab_runner_server_url }} --registration-token {{ gitlab_runner_registration_token }} --executor shell --tag-list aarch32,{{ ansible_facts[\"distribution\"]|lower }}_{{ ansible_facts[\"distribution_version\"] }} --description '{{ ansible_facts[\"distribution\"] }} {{ ansible_facts[\"distribution_version\"] }} {{ ansible_facts[\"architecture\"] }} ({{ ansible_facts[\"os_family\"] }})'"
|
|
|
|
when:
|
|
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- ansible_facts['distribution_version'] == '20.04'
|
|
|
|
|
|
|
|
- name: Install the secondary gitlab-runner service using its own functionality
|
|
|
|
command: /usr/local/bin/gitlab-runner-arm install --user gitlab-runner --working-directory /home/gitlab-runner/arm -n gitlab-runner-arm
|
|
|
|
register: gitlab_runner_install_service_result
|
|
|
|
failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr"
|
|
|
|
when:
|
|
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- ansible_facts['distribution_version'] == '20.04'
|
|
|
|
|
|
|
|
- name: Enable the secondary gitlab-runner service
|
|
|
|
service:
|
|
|
|
name: gitlab-runner-arm
|
|
|
|
state: started
|
|
|
|
enabled: yes
|
|
|
|
when:
|
|
|
|
- ansible_facts['distribution'] == 'Ubuntu'
|
|
|
|
- ansible_facts['architecture'] == 'aarch64'
|
|
|
|
- ansible_facts['distribution_version'] == '20.04'
|