1*40de78c2SCleber Rosa# Copyright (c) 2021 Red Hat, Inc. 2*40de78c2SCleber Rosa# 3*40de78c2SCleber Rosa# Author: 4*40de78c2SCleber Rosa# Cleber Rosa <crosa@redhat.com> 5*40de78c2SCleber Rosa# 6*40de78c2SCleber Rosa# This work is licensed under the terms of the GNU GPL, version 2 or 7*40de78c2SCleber Rosa# later. See the COPYING file in the top-level directory. 8*40de78c2SCleber Rosa# 9*40de78c2SCleber Rosa# This is an ansible playbook file. Run it to set up systems with the 10*40de78c2SCleber Rosa# gitlab-runner agent. 11*40de78c2SCleber Rosa--- 12*40de78c2SCleber Rosa- name: Installation of gitlab-runner 13*40de78c2SCleber Rosa hosts: all 14*40de78c2SCleber Rosa vars_files: 15*40de78c2SCleber Rosa - vars.yml 16*40de78c2SCleber Rosa tasks: 17*40de78c2SCleber Rosa - debug: 18*40de78c2SCleber Rosa msg: 'Checking for a valid GitLab registration token' 19*40de78c2SCleber Rosa failed_when: "gitlab_runner_registration_token == 'PLEASE_PROVIDE_A_VALID_TOKEN'" 20*40de78c2SCleber Rosa 21*40de78c2SCleber Rosa - name: Create a group for the gitlab-runner service 22*40de78c2SCleber Rosa group: 23*40de78c2SCleber Rosa name: gitlab-runner 24*40de78c2SCleber Rosa 25*40de78c2SCleber Rosa - name: Create a user for the gitlab-runner service 26*40de78c2SCleber Rosa user: 27*40de78c2SCleber Rosa user: gitlab-runner 28*40de78c2SCleber Rosa group: gitlab-runner 29*40de78c2SCleber Rosa comment: GitLab Runner 30*40de78c2SCleber Rosa home: /home/gitlab-runner 31*40de78c2SCleber Rosa shell: /bin/bash 32*40de78c2SCleber Rosa 33*40de78c2SCleber Rosa - name: Remove the .bash_logout file when on Ubuntu systems 34*40de78c2SCleber Rosa file: 35*40de78c2SCleber Rosa path: /home/gitlab-runner/.bash_logout 36*40de78c2SCleber Rosa state: absent 37*40de78c2SCleber Rosa when: "ansible_facts['distribution'] == 'Ubuntu'" 38*40de78c2SCleber Rosa 39*40de78c2SCleber Rosa - name: Set the Operating System for gitlab-runner 40*40de78c2SCleber Rosa set_fact: 41*40de78c2SCleber Rosa gitlab_runner_os: "{{ ansible_facts[\"system\"]|lower }}" 42*40de78c2SCleber Rosa - debug: 43*40de78c2SCleber Rosa msg: gitlab-runner OS is {{ gitlab_runner_os }} 44*40de78c2SCleber Rosa 45*40de78c2SCleber Rosa - name: Set the architecture for gitlab-runner 46*40de78c2SCleber Rosa set_fact: 47*40de78c2SCleber Rosa gitlab_runner_arch: "{{ ansible_to_gitlab_arch[ansible_facts[\"architecture\"]] }}" 48*40de78c2SCleber Rosa - debug: 49*40de78c2SCleber Rosa msg: gitlab-runner arch is {{ gitlab_runner_arch }} 50*40de78c2SCleber Rosa 51*40de78c2SCleber Rosa - name: Download the matching gitlab-runner 52*40de78c2SCleber Rosa get_url: 53*40de78c2SCleber Rosa dest: /usr/local/bin/gitlab-runner 54*40de78c2SCleber Rosa url: "https://s3.amazonaws.com/gitlab-runner-downloads/v{{ gitlab_runner_version }}/binaries/gitlab-runner-{{ gitlab_runner_os }}-{{ gitlab_runner_arch }}" 55*40de78c2SCleber Rosa owner: gitlab-runner 56*40de78c2SCleber Rosa group: gitlab-runner 57*40de78c2SCleber Rosa mode: u=rwx,g=rwx,o=rx 58*40de78c2SCleber Rosa 59*40de78c2SCleber Rosa - name: Register the gitlab-runner 60*40de78c2SCleber Rosa 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\"] }})'" 61*40de78c2SCleber Rosa 62*40de78c2SCleber Rosa - name: Install the gitlab-runner service using its own functionality 63*40de78c2SCleber Rosa command: /usr/local/bin/gitlab-runner install --user gitlab-runner --working-directory /home/gitlab-runner 64*40de78c2SCleber Rosa register: gitlab_runner_install_service_result 65*40de78c2SCleber Rosa failed_when: "gitlab_runner_install_service_result.rc != 0 and \"already exists\" not in gitlab_runner_install_service_result.stderr" 66*40de78c2SCleber Rosa 67*40de78c2SCleber Rosa - name: Enable the gitlab-runner service 68*40de78c2SCleber Rosa service: 69*40de78c2SCleber Rosa name: gitlab-runner 70*40de78c2SCleber Rosa state: started 71*40de78c2SCleber Rosa enabled: yes 72