1
0
homelab/ansible/roles/forgejo_runner/tasks/main.yml

123 lines
3.5 KiB
YAML

---
- name: Combine default and user settings, decrypt vault.
ansible.builtin.set_fact:
forgejo_runner_settings: "{{ forgejo_runner_default_settings |
ansible.builtin.combine(forgejo_runner_settings, recursive=true) }}"
no_log: true
- name: Create forgejo-runner user.
ansible.builtin.user:
name: forgejo-runner
groups:
- docker
password: '!'
system: true
state: present
- name: Create forgejo-runner config directory.
ansible.builtin.file:
path: /etc/forgejo-runner
owner: root
group: forgejo-runner
mode: "0770"
state: directory
- name: Create forgejo-runner data directory.
ansible.builtin.file:
path: /var/lib/forgejo-runner
owner: forgejo-runner
group: forgejo-runner
mode: "0750"
state: directory
- name: Clean forgejo-runner binaries.
when: forgejo_runner_settings.clean_binaries
block:
- name: Get all forgejo binaries.
ansible.builtin.find:
paths: /usr/local/bin/
patterns: forgejo-runner*
register: forgejo_runner_binary_find
- name: Delete forgejo-runner binary files.
ansible.builtin.file:
path: "{{ item.path }}"
state: absent
loop: "{{ forgejo_runner_binary_find.files }}"
- name: Download forgejo-runner binary.
ansible.builtin.get_url:
url: "https://code.forgejo.org/forgejo/runner/releases/download\
/v{{ forgejo_runner_settings.version }}\
/forgejo-runner-{{ forgejo_runner_settings.version }}-linux-amd64"
dest: "/usr/local/bin/forgejo-runner-{{ forgejo_runner_settings.version }}"
owner: root
group: root
mode: "0555"
- name: Create symlink to forgejo-runner binary.
ansible.builtin.file:
src: "/usr/local/bin/forgejo-runner-{{ forgejo_runner_settings.version }}"
dest: /usr/local/bin/forgejo-runner
owner: root
group: root
mode: "0555"
state: link
notify:
- Restart forgejo-runner service.
- name: Install forgejo service file.
ansible.builtin.copy:
src: forgejo-runner.service
dest: /etc/systemd/system/forgejo-runner.service
owner: root
group: root
mode: "0644"
- name: Install forgejo-runner configuration file.
ansible.builtin.template:
src: config.yml.j2
dest: /etc/forgejo-runner/config.yml
owner: root
group: forgejo-runner
mode: "0640"
notify:
- Restart forgejo-runner service.
- name: Remove forgejo-runner registration file.
ansible.builtin.file:
path: "/var/lib/forgejo-runner\
/{{ forgejo_runner_settings.config.runner.file }}"
state: absent
when: forgejo_runner_settings.force_register
notify:
- Restart forgejo-runner service.
- name: Register forgejo-runner.
ansible.builtin.command:
chdir: /var/lib/forgejo-runner/
cmd: "/usr/local/bin/forgejo-runner --config \
/etc/forgejo-runner/config.yml register --no-interactive \
--name {{ forgejo_runner_settings.name }} \
--instance {{ forgejo_runner_settings.instance }} \
--token {{ forgejo_runner_settings.token }}"
creates: "{{ forgejo_runner_settings.config.runner.file }}"
no_log: true
- name: Change forgejo-runner registration file ownership.
ansible.builtin.file:
path: "/var/lib/forgejo-runner\
/{{ forgejo_runner_settings.config.runner.file }}"
owner: forgejo-runner
group: forgejo-runner
mode: "0640"
- name: Enable and start forgejo-runner service.
ansible.builtin.service:
name: forgejo-runner
state: started
enabled: true