Files
gatehouse-api/deploy/ansible/tasks/install_one_runner.yml
T

69 lines
2.0 KiB
YAML
Raw Normal View History

2026-06-20 11:06:27 +07:00
---
2026-06-23 00:26:00 +00:00
# Installs + registers + services a single act_runner instance.
2026-06-20 11:06:27 +07:00
# Inputs: project_spec (dict), idx (int), project_token (str).
- name: Set per-runner facts
ansible.builtin.set_fact:
runner_name: "{{ inventory_hostname }}-{{ project_spec.project }}-{{ runner_env }}-{{ idx }}"
2026-06-23 00:26:00 +00:00
runner_dir: "{{ runner_home }}/act-runner-{{ project_spec.project }}-{{ idx }}"
svc_name: "gitea-runner-{{ project_spec.project }}-{{ idx }}"
2026-06-20 11:06:27 +07:00
- name: "Create runner dir {{ runner_dir }}"
ansible.builtin.file:
path: "{{ runner_dir }}"
state: directory
owner: "{{ runner_user }}"
group: "{{ runner_user }}"
mode: "0755"
2026-06-23 00:26:00 +00:00
- name: Download act_runner binary (sha256 verified)
2026-06-20 11:06:27 +07:00
ansible.builtin.get_url:
2026-06-23 00:26:00 +00:00
url: "{{ act_runner_download_url }}"
dest: "{{ runner_dir }}/gitea-runner"
checksum: "sha256:{{ act_runner_sha256 }}"
2026-06-20 11:06:27 +07:00
owner: "{{ runner_user }}"
group: "{{ runner_user }}"
2026-06-23 00:26:00 +00:00
mode: "0755"
2026-06-20 11:06:27 +07:00
- name: "Register runner {{ runner_name }}"
ansible.builtin.command:
cmd: >-
2026-06-23 00:26:00 +00:00
./gitea-runner register
--no-interactive
--instance {{ gitea_instance }}
2026-06-20 11:06:27 +07:00
--token {{ project_token }}
--name {{ runner_name }}
2026-06-23 00:26:00 +00:00
--labels {{ project_spec.labels }}
2026-06-20 11:06:27 +07:00
chdir: "{{ runner_dir }}"
creates: "{{ runner_dir }}/.runner"
become_user: "{{ runner_user }}"
2026-06-23 00:26:00 +00:00
- name: "Write systemd unit for {{ svc_name }}"
ansible.builtin.copy:
dest: "/etc/systemd/system/{{ svc_name }}.service"
owner: root
group: root
mode: "0644"
content: |
[Unit]
Description=Gitea Actions Runner ({{ runner_name }})
After=network.target
2026-06-20 11:06:27 +07:00
2026-06-23 00:26:00 +00:00
[Service]
Type=simple
User={{ runner_user }}
WorkingDirectory={{ runner_dir }}
ExecStart={{ runner_dir }}/gitea-runner daemon
Restart=always
RestartSec=5s
Environment=HOME={{ runner_home }}
2026-06-20 11:06:27 +07:00
2026-06-23 00:26:00 +00:00
[Install]
WantedBy=multi-user.target
- name: "Enable + start {{ svc_name }}"
ansible.builtin.systemd:
name: "{{ svc_name }}"
enabled: true
state: started
daemon_reload: true