You've already forked gitlab-runner
Initial commit
This commit is contained in:
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
*.log
|
||||||
|
*.pyc
|
||||||
|
**/__pycache__/
|
||||||
|
.env
|
||||||
|
.secrets
|
||||||
10
.gitlab-ci.yml
Normal file
10
.gitlab-ci.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
stages:
|
||||||
|
- linter
|
||||||
|
|
||||||
|
linter:
|
||||||
|
stage: linter
|
||||||
|
image:
|
||||||
|
name: osshelp/drone-linter
|
||||||
|
entrypoint: [""]
|
||||||
|
script: [entrypoint.sh]
|
||||||
11
.yamllint
Normal file
11
.yamllint
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
extends: default
|
||||||
|
|
||||||
|
rules:
|
||||||
|
braces:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
brackets:
|
||||||
|
max-spaces-inside: 1
|
||||||
|
level: error
|
||||||
|
line-length: disable
|
||||||
|
truthy: disable
|
||||||
26
README.md
Normal file
26
README.md
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
# gitlab-runner
|
||||||
|
|
||||||
|
Simple Ansible role for gitlab-runner installation.
|
||||||
|
|
||||||
|
## Usage (example)
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
- role: gitlab-runner
|
||||||
|
gitlab_runner_registration_token: "secret_string"
|
||||||
|
gitlab_runner_executor: "shell"
|
||||||
|
```
|
||||||
|
|
||||||
|
## Available parameters
|
||||||
|
|
||||||
|
### Main
|
||||||
|
|
||||||
|
| Param | Default | Description |
|
||||||
|
| -------- | -------- | -------- |
|
||||||
|
| `gitlab_runner_registration_token` | `""` | GitLab runner registration token. |
|
||||||
|
| `gitlab_runner_executor` | `""` | GitLab runner executor. Support: `shell` or `docker` |
|
||||||
|
| `gitlab_runner_user` | `gitlab-runner` | Running GitLab runner under the user |
|
||||||
|
| `gitlab_runner_instance_url` | `https://gitlab.com` | GitLab instance URL |
|
||||||
|
| `gitlab_runner_working_directory` | `/home/gitlab-runner` | GitLab Runner working directory |
|
||||||
|
| `gitlab_runner_runner_description` | `The runner was registered using ansible.` | GitLab runner description |
|
||||||
|
| `gitlab_runner_docker_default_image` | `alpine` | GitLab runner default image |
|
||||||
|
| `gitlab_runner_tags` | `""` | GitLab runner tags |
|
||||||
10
defaults/main.yml
Normal file
10
defaults/main.yml
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
gitlab_runner_architecture: "amd64"
|
||||||
|
gitlab_runner_binary_path: "/usr/local/bin/gitlab-runner"
|
||||||
|
gitlab_runner_download_url: "https://gitlab-runner-downloads.s3.amazonaws.com/latest/binaries/gitlab-runner-linux-{{ gitlab_runner_architecture }}"
|
||||||
|
gitlab_runner_instance_url: "https://gitlab.com"
|
||||||
|
gitlab_runner_user: "gitlab-runner"
|
||||||
|
gitlab_runner_working_directory: "/home/gitlab-runner"
|
||||||
|
gitlab_runner_config_path: "/etc/gitlab-runner/config.toml"
|
||||||
|
gitlab_runner_runner_description: "The runner was registered using ansible."
|
||||||
|
gitlab_runner_docker_default_image: "alpine"
|
||||||
6
handlers/main.yml
Normal file
6
handlers/main.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: reload gitlab runner unit
|
||||||
|
systemd: daemon_reload=yes
|
||||||
|
|
||||||
|
- name: restart reload gitlab runner service
|
||||||
|
systemd: name=gitlab-runner state=restarted
|
||||||
12
meta/main.yml
Normal file
12
meta/main.yml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
galaxy_info:
|
||||||
|
author: OldTyT
|
||||||
|
description: GitLab runner install
|
||||||
|
license: GPLv3
|
||||||
|
min_ansible_version: 2.8
|
||||||
|
platforms:
|
||||||
|
- name: Ubuntu
|
||||||
|
versions:
|
||||||
|
- jammy
|
||||||
|
galaxy_tags:
|
||||||
|
- gitlabrunnerinstall
|
||||||
24
tasks/config.yml
Normal file
24
tasks/config.yml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
- name: Create gitlab runner user
|
||||||
|
user:
|
||||||
|
name: "{{ gitlab_runner_user }}"
|
||||||
|
comment: "User for gitlab runner"
|
||||||
|
state: present
|
||||||
|
create_home: false
|
||||||
|
when: gitlab_runner_user != 'root'
|
||||||
|
|
||||||
|
- name: create gitlab runner service
|
||||||
|
template:
|
||||||
|
src: gitlab-runner.service.j2
|
||||||
|
dest: /etc/systemd/system/gitlab-runner.service
|
||||||
|
register: gitlab_runner_service
|
||||||
|
|
||||||
|
- name: Create GitLab runner work directory
|
||||||
|
ansible.builtin.file:
|
||||||
|
path: "{{ gitlab_runner_working_directory }}"
|
||||||
|
state: directory
|
||||||
|
owner: "{{ gitlab_runner_user }}"
|
||||||
|
group: "{{ gitlab_runner_user }}"
|
||||||
|
recurse: yes
|
||||||
|
|
||||||
|
- meta: flush_handlers
|
||||||
6
tasks/install.yml
Normal file
6
tasks/install.yml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
- name: Download GitLab runner
|
||||||
|
get_url:
|
||||||
|
url: "{{ gitlab_runner_download_url }}"
|
||||||
|
dest: "{{ gitlab_runner_binary_path }}"
|
||||||
|
mode: 0755
|
||||||
16
tasks/main.yml
Normal file
16
tasks/main.yml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
- name: gitlab runner installation
|
||||||
|
include_tasks: install.yml
|
||||||
|
|
||||||
|
- name: gitlab runner configuration
|
||||||
|
include_tasks: config.yml
|
||||||
|
|
||||||
|
- name: gitlab runner registration
|
||||||
|
include_tasks: registration.yml
|
||||||
|
|
||||||
|
- name: GitLab Runner started service
|
||||||
|
systemd_service:
|
||||||
|
name: "gitlab-runner"
|
||||||
|
state: started
|
||||||
|
daemon_reload: true
|
||||||
|
enabled: true
|
||||||
30
tasks/registration.yml
Normal file
30
tasks/registration.yml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
- name: Check if GitLab Runner is already registered
|
||||||
|
ansible.builtin.stat:
|
||||||
|
path: /etc/gitlab-runner/config.toml
|
||||||
|
register: gitlab_runner_config
|
||||||
|
|
||||||
|
- name: Register GitLab Runner with Docker executor
|
||||||
|
ansible.builtin.shell:
|
||||||
|
gitlab-runner register
|
||||||
|
--non-interactive
|
||||||
|
--url {{ gitlab_runner_instance_url }}
|
||||||
|
--registration-token {{ gitlab_runner_registration_token }}
|
||||||
|
--executor docker
|
||||||
|
--description "{{ gitlab_runner_runner_description }}"
|
||||||
|
--docker-image "{{ gitlab_runner_docker_default_image }}"
|
||||||
|
--tag-list "{{ gitlab_runner_tags | default('') }}"
|
||||||
|
when: gitlab_runner_config.stat.exists == False and gitlab_runner_executor == 'docker'
|
||||||
|
become: yes
|
||||||
|
|
||||||
|
- name: Register GitLab Runner with Shell executor
|
||||||
|
ansible.builtin.shell: >
|
||||||
|
gitlab-runner register
|
||||||
|
--non-interactive
|
||||||
|
--url {{ gitlab_runner_instance_url }}
|
||||||
|
--registration-token {{ gitlab_runner_registration_token }}
|
||||||
|
--executor shell
|
||||||
|
--description "{{ gitlab_runner_runner_description }}"
|
||||||
|
--tag-list "{{ runner_tags | default('') }}"
|
||||||
|
when: gitlab_runner_config.stat.exists == False and gitlab_runner_executor == 'shell'
|
||||||
|
become: yes
|
||||||
18
templates/gitlab-runner.service.j2
Normal file
18
templates/gitlab-runner.service.j2
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
{{ ansible_managed | comment }}
|
||||||
|
|
||||||
|
[Unit]
|
||||||
|
Description=GitLab Runner
|
||||||
|
ConditionFileIsExecutable={{ gitlab_runner_binary_path }}
|
||||||
|
|
||||||
|
After=syslog.target network.target
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
StartLimitInterval=5
|
||||||
|
StartLimitBurst=10
|
||||||
|
ExecStart={{ gitlab_runner_binary_path }} "run" "--working-directory" "{{ gitlab_runner_working_directory }}" "--config" "{{ gitlab_runner_config_path }}" "--service" "gitlab-runner"{% if not gitlab_runner_user == "root" %} "--user" "{{ gitlab_runner_user }}" {% endif %}
|
||||||
|
Restart=always
|
||||||
|
RestartSec=120
|
||||||
|
#EnvironmentFile=-/etc/sysconfig/gitlab-runner
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
Reference in New Issue
Block a user