123 lines
3.5 KiB
YAML
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
|