Compare commits

..

6 Commits

Author SHA1 Message Date
81e398b255 add restart after install for updates 2026-03-04 19:34:01 +01:00
352c94c173 add tag handling 2026-03-04 19:32:57 +01:00
6ebeaf01dd update runner 2026-03-04 19:31:06 +01:00
7780e384c4 fix dir creation for scripts 2026-03-04 19:26:37 +01:00
917bf2e100 add scripts 2026-03-04 19:16:20 +01:00
67a51f3fc5 restructur tasks 2026-03-04 19:06:18 +01:00
4 changed files with 123 additions and 83 deletions

View File

@@ -1,4 +1,4 @@
RUNNER_VERSION: "0.2.11" RUNNER_VERSION: "0.3.0"
RUNNER_DOWNLOAD_URL: "https://dl.gitea.com/act_runner/{{ RUNNER_VERSION }}/act_runner-{{ RUNNER_VERSION }}-linux-amd64" RUNNER_DOWNLOAD_URL: "https://dl.gitea.com/act_runner/{{ RUNNER_VERSION }}/act_runner-{{ RUNNER_VERSION }}-linux-amd64"
RUNNER_TOKEN: RUNNER_TOKEN:
RUNNER_INSTANCE: https://git.exampe.com/ RUNNER_INSTANCE: https://git.exampe.com/
@@ -12,4 +12,10 @@ RUNNER_SERVICE_NAME: "{{ RUNNER_NAME }}.service"
RUNNER_DOWNLOAD_DIR: /tmp RUNNER_DOWNLOAD_DIR: /tmp
RUNNER_LABELS: RUNNER_LABELS:
- REPLACE_ME - REPLACE_ME
RUNNER_REDEPLOY: false RUNNER_REDEPLOY: false
RUNNER_SCRIPT_DIR: "{{ RUNNER_DIR }}/scripts"
RUNNER_DEFAULT_SCRIPTS:
- name: askpass_helper.sh
content: |
#!/bin/bash
echo $GIT_TOKEN

53
tasks/config.yml Normal file
View File

@@ -0,0 +1,53 @@
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
# https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/file_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html
# https://docs.ansible.com/projects/ansible/latest/collections/ansible/builtin/command_module.html
---
- name: delete .runner file for redeploy
tags: [install, config]
ansible.builtin.file:
state: absent
path: "{{ RUNNER_DIR }}/.runner"
when: RUNNER_REDEPLOY
- name: register runner
tags: [install, config]
notify: restart runner
ansible.builtin.command:
cmd: "{{ RUNNER_DIR }}/{{ RUNNER_NAME }} register --no-interactive --instance {{ RUNNER_INSTANCE }} --token {{ RUNNER_TOKEN }}"
chdir: "{{ RUNNER_DIR }}"
creates: "{{ RUNNER_DIR }}/.runner"
when:
- RUNNER_TOKEN != None
- name: ensure correct access rights for .runner file
tags: [install, config]
ansible.builtin.file:
path: "{{ RUNNER_DIR }}/.runner"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP }}"
mode: '0660'
- name: enable runner
tags: [install, config]
notify: restart runner
ansible.builtin.service:
name: "{{ RUNNER_SERVICE_NAME }}"
enabled: yes
- name: create scripts dir
tags: [install, config]
ansible.builtin.file:
path: "{{ RUNNER_SCRIPT_DIR }}"
state: directory
mode: '0755'
- name: create default scripts
tags: [install, config]
ansible.builtin.copy:
dest: "{{ RUNNER_SCRIPT_DIR }}/{{ item.name }}"
content: "{{ item.content }}"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP }}"
mode: '0760'
loop: "{{ RUNNER_DEFAULT_SCRIPTS }}"

55
tasks/install.yml Normal file
View File

@@ -0,0 +1,55 @@
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/get_url_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html
---
- name: create runner user
tags: [install]
ansible.builtin.user:
name: "{{ RUNNER_USER }}"
create_home: yes
groups: "{{ RUNNER_USER_GROUPS }}"
append: true
home: "{{ RUNNER_DIR }}"
- name: download runner
tags: [install]
delegate_to: localhost
run_once: true
ansible.builtin.get_url:
url: "{{ RUNNER_DOWNLOAD_URL }}"
dest: "/{{ RUNNER_DOWNLOAD_DIR }}/{{ RUNNER_NAME }}"
mode: '0440'
- name: copy runner binary
tags: [install]
notify: restart runner
copy:
src: "{{ RUNNER_DOWNLOAD_DIR }}/{{ RUNNER_NAME }}"
dest: "{{ RUNNER_DIR }}/{{ RUNNER_NAME }}"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP | default(RUNNER_USER) }}"
mode: '0770'
- name: create runner config
tags: [install]
ansible.builtin.template:
src: config.yml.j2
dest: "{{ RUNNER_DIR }}/config.yml"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP | default(RUNNER_USER) }}"
mode: '0660'
- name: create runner service file
tags: [install]
notify: reload daemons
ansible.builtin.template:
src: runner.service.j2
dest: "/etc/systemd/system/{{ RUNNER_SERVICE_NAME }}"
owner: root
group: root
mode: '0600'
- name: flush handlers
meta: flush_handlers

View File

@@ -1,83 +1,9 @@
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/get_url_module.html # https://docs.ansible.com/ansible/latest/collections/ansible/builtin/include_tasks_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/user_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/copy_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/template_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/command_module.html
# https://docs.ansible.com/ansible/latest/collections/ansible/builtin/service_module.html
--- ---
- name: check runner token - name: install runner
ansible.builtin.fail: tags: [install]
msg: no token is set! include_tasks: install.yml
when: RUNNER_TOKEN == None
- name: create runner user - name: config env
ansible.builtin.user: tags: [install, config]
name: "{{ RUNNER_USER }}" include_tasks: config.yml
create_home: yes
groups: "{{ RUNNER_USER_GROUPS }}"
append: true
home: "{{ RUNNER_DIR }}"
- name: download runner
delegate_to: localhost
run_once: true
ansible.builtin.get_url:
url: "{{ RUNNER_DOWNLOAD_URL }}"
dest: "/{{ RUNNER_DOWNLOAD_DIR }}/{{ RUNNER_NAME }}"
mode: '0440'
- name: copy runner binary
copy:
src: "{{ RUNNER_DOWNLOAD_DIR }}/{{ RUNNER_NAME }}"
dest: "{{ RUNNER_DIR }}/{{ RUNNER_NAME }}"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP | default(RUNNER_USER) }}"
mode: '0770'
- name: create runner config
ansible.builtin.template:
src: config.yml.j2
dest: "{{ RUNNER_DIR }}/config.yml"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP | default(RUNNER_USER) }}"
mode: '0660'
- name: create runner service file
notify: reload daemons
ansible.builtin.template:
src: runner.service.j2
dest: "/etc/systemd/system/{{ RUNNER_SERVICE_NAME }}"
owner: root
group: root
mode: '0600'
- name: flush handlers
meta: flush_handlers
- name: delete .runner file for redeploy
ansible.builtin.file:
state: absent
path: "{{ RUNNER_DIR }}/.runner"
when: RUNNER_REDEPLOY
- name: register runner
notify: restart runner
ansible.builtin.command:
cmd: "{{ RUNNER_DIR }}/{{ RUNNER_NAME }} register --no-interactive --instance {{ RUNNER_INSTANCE }} --token {{ RUNNER_TOKEN }}"
chdir: "{{ RUNNER_DIR }}"
creates: "{{ RUNNER_DIR }}/.runner"
when:
- RUNNER_TOKEN != None
- name: ensure correct access rights for .runner file
ansible.builtin.file:
path: "{{ RUNNER_DIR }}/.runner"
owner: "{{ RUNNER_USER }}"
group: "{{ RUNNER_GROUP }}"
mode: '0660'
- name: enable runner
notify: restart runner
ansible.builtin.service:
name: "{{ RUNNER_SERVICE_NAME }}"
enabled: yes