Files
setup-gitea-runner/tasks/main.yml
2025-01-26 20:10:54 +01:00

71 lines
2.2 KiB
YAML

# 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/stat_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
ansible.builtin.fail:
msg: no token is set!
when: RUNNER_TOKEN == None
- name: create runner user
ansible.builtin.user:
name: "{{ RUNNER_USER }}"
create_home: yes
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: conf.yml.j2
dest: "{{ RUNNER_DIR }}/conf.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: check if runner registerd
stat:
path: "{{ RUNNER_DIR }}/.runner"
register: stat_result
- name: register runner
command: "{{ RUNNER_DIR }}/{{ RUNNER_NAME }} register --no-interactive --instance {{ RUNNER_INSTANCE }} --token {{ RUNNER_TOKEN }}"
when:
- not stat_result.stat.exists
- RUNNER_TOKEN != None
- name: enable runner
notify: restart runner
ansible.builtin.service:
name: "{{ RUNNER_SERVICE_NAME }}"
enabled: yes