The lifecycle scenario runs in a Docker container without systemd as PID 1. The side_effect and verify playbooks used systemd module operations unconditionally, causing failures like: System has not been booted with systemd as init system Add a systemd availability check (/run/systemd/system stat) to both playbooks and conditionally skip systemd tasks when running in environments without systemd (e.g. Molecule Docker containers).
51 lines
1.4 KiB
YAML
51 lines
1.4 KiB
YAML
---
|
|
- name: Stop runner instance
|
|
hosts: all
|
|
become: true
|
|
vars:
|
|
runner_name: "lifecycle-test-runner"
|
|
pre_tasks:
|
|
- name: Check if systemd is available
|
|
ansible.builtin.stat:
|
|
path: /run/systemd/system
|
|
register: systemd_available
|
|
tasks:
|
|
- name: Stop gitea-runner systemd instance
|
|
ansible.builtin.systemd:
|
|
name: "gitea-runner@{{ runner_name }}"
|
|
state: stopped
|
|
daemon_reload: true
|
|
when: systemd_available.stat.exists
|
|
|
|
- name: Disable gitea-runner systemd instance
|
|
ansible.builtin.systemd:
|
|
name: "gitea-runner@{{ runner_name }}"
|
|
enabled: false
|
|
daemon_reload: true
|
|
when: systemd_available.stat.exists
|
|
|
|
- name: Re-enable and start runner
|
|
hosts: all
|
|
become: true
|
|
vars:
|
|
runner_name: "lifecycle-test-runner"
|
|
pre_tasks:
|
|
- name: Check if systemd is available
|
|
ansible.builtin.stat:
|
|
path: /run/systemd/system
|
|
register: systemd_available
|
|
tasks:
|
|
- name: Enable gitea-runner systemd instance
|
|
ansible.builtin.systemd:
|
|
name: "gitea-runner@{{ runner_name }}"
|
|
enabled: true
|
|
daemon_reload: true
|
|
when: systemd_available.stat.exists
|
|
|
|
- name: Start gitea-runner systemd instance
|
|
ansible.builtin.systemd:
|
|
name: "gitea-runner@{{ runner_name }}"
|
|
state: started
|
|
daemon_reload: true
|
|
when: systemd_available.stat.exists
|