GRM-4: refactor: consolidate systemd checks and deduplicate role structure
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
---
|
||||
- name: Include Docker installation
|
||||
ansible.builtin.include_tasks: docker.yml
|
||||
|
||||
- name: Ensure runner data directory exists
|
||||
ansible.builtin.file:
|
||||
path: "{{ gitea_runner_data_dir }}"
|
||||
state: directory
|
||||
mode: "0755"
|
||||
|
||||
- name: Create gitea_runner config file in data directory
|
||||
ansible.builtin.template:
|
||||
src: gitea-runner-config.toml.j2
|
||||
dest: "{{ gitea_runner_data_dir }}/config.toml"
|
||||
mode: "0644"
|
||||
|
||||
- name: Pull gitea_runner image
|
||||
ansible.builtin.command: docker pull {{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }}
|
||||
changed_when: "'Downloaded newer image' in pull_result.stdout or 'Status: Downloaded' in pull_result.stdout"
|
||||
register: pull_result
|
||||
|
||||
- name: Check if runner is already registered
|
||||
ansible.builtin.stat:
|
||||
path: "{{ gitea_runner_data_dir }}/.runner"
|
||||
register: runner_registered
|
||||
|
||||
- name: Register runner with Gitea via Docker
|
||||
ansible.builtin.command: >
|
||||
docker run --rm
|
||||
-v {{ gitea_runner_data_dir }}:/data
|
||||
{{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }} register
|
||||
--token {{ registration_token }}
|
||||
--name {{ runner_name }}
|
||||
--instance {{ gitea_url }}
|
||||
--labels {{ runner_labels }}
|
||||
--no-interactive
|
||||
when:
|
||||
- not runner_registered.stat.exists
|
||||
- not skip_runner_registration
|
||||
register: register_output
|
||||
changed_when: "'already exists' not in register_output.stdout | default('')"
|
||||
|
||||
- name: Check if gitea_runner container exists
|
||||
ansible.builtin.command: docker inspect -f '{{ '{{' }} .State.Running {{ '}}' }}' gitea-runner-{{ runner_name }}
|
||||
register: container_check
|
||||
changed_when: false
|
||||
failed_when: container_check.rc != 0 and 'no such object' not in container_check.stderr
|
||||
|
||||
- name: Run gitea_runner daemon container
|
||||
ansible.builtin.command: >
|
||||
docker run -d
|
||||
--name gitea-runner-{{ runner_name }}
|
||||
--restart unless-stopped
|
||||
-v /var/run/docker.sock:/var/run/docker.sock
|
||||
-v {{ gitea_runner_data_dir }}:/data
|
||||
{{ gitea_runner_docker_image }}:{{ gitea_runner_version | regex_replace('^v', '') }} daemon
|
||||
--config /data/config.toml
|
||||
when:
|
||||
- container_check.rc != 0
|
||||
- not skip_runner_registration
|
||||
register: docker_run
|
||||
changed_when: docker_run.rc == 0
|
||||
Reference in New Issue
Block a user