diff --git a/ansible/roles/gitea_runner/tasks/install_runner.yml b/ansible/roles/gitea_runner/tasks/install_runner.yml index b977c45..82d4c73 100644 --- a/ansible/roles/gitea_runner/tasks/install_runner.yml +++ b/ansible/roles/gitea_runner/tasks/install_runner.yml @@ -13,9 +13,9 @@ - name: Include validation ansible.builtin.include_tasks: validate.yml +- name: Include service setup + ansible.builtin.include_tasks: service.yml + - name: Include registration ansible.builtin.include_tasks: register.yml when: not gitea_runner_skip_registration - -- name: Include service setup - ansible.builtin.include_tasks: service.yml diff --git a/ansible/roles/gitea_runner/tasks/register.yml b/ansible/roles/gitea_runner/tasks/register.yml index 105753c..931c761 100644 --- a/ansible/roles/gitea_runner/tasks/register.yml +++ b/ansible/roles/gitea_runner/tasks/register.yml @@ -44,6 +44,16 @@ ('already exists' not in gitea_runner_register_output.stdout | default('')) timeout: 60 -# Note: service start is handled by service.yml (included after register.yml -# in install_runner.yml). Starting here fails because the systemd unit file -# has not been created yet. +- name: Restart runner service after (re-)registration + ansible.builtin.command: systemctl --user restart gitea-runner + become: true + become_user: "{{ gitea_runner_service_user }}" + environment: + XDG_RUNTIME_DIR: "/run/user/{{ gitea_runner_uid }}" + DBUS_SESSION_BUS_ADDRESS: "unix:path=/run/user/{{ gitea_runner_uid | default(0) }}/bus" + changed_when: true + when: + - gitea_runner_systemd_available.stat.exists + - gitea_runner_docker_rootless_setup + - gitea_runner_register_output is defined + - gitea_runner_register_output.rc | default(1) == 0 diff --git a/ansible/roles/gitea_runner/tasks/rootless_docker.yml b/ansible/roles/gitea_runner/tasks/rootless_docker.yml index 4c61836..1f62ae3 100644 --- a/ansible/roles/gitea_runner/tasks/rootless_docker.yml +++ b/ansible/roles/gitea_runner/tasks/rootless_docker.yml @@ -143,6 +143,10 @@ {% if gitea_runner_docker_rootless_net_driver == 'pasta' %} Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS=--ipv6" {% endif %} + Restart=always + RestartSec=5 + StartLimitIntervalSec=300 + StartLimitBurst=10 mode: "0644" owner: "{{ gitea_runner_service_user }}" group: "{{ gitea_runner_service_user }}" @@ -254,6 +258,10 @@ {% if gitea_runner_docker_rootless_net_driver == 'pasta' %} Environment="DOCKERD_ROOTLESS_ROOTLESSKIT_FLAGS=--ipv6" {% endif %} + Restart=always + RestartSec=5 + StartLimitIntervalSec=300 + StartLimitBurst=10 mode: "0644" owner: "{{ gitea_runner_service_user }}" group: "{{ gitea_runner_service_user }}"