71 lines
2.2 KiB
YAML
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 |