/
/
/
1---
2# Runner Services - Prerequisites and System Setup
3
4- name: Install required packages for runner services (excluding Docker - handled by geerlingguy.docker)
5 package:
6 name:
7 - nfs-common
8 - python3-docker
9 - python3-pip
10 - htop
11 - curl
12 - jq
13 state: present
14 become: yes
15
16- name: Verify Docker is installed and running (installed by geerlingguy.docker role)
17 systemd:
18 name: docker
19 state: started
20 become: yes
21
22- name: Create local configuration directories
23 file:
24 path: "{{ item }}"
25 state: directory
26 owner: "{{ runner_user }}"
27 group: "{{ runner_group }}"
28 mode: '0775'
29 loop: "{{ runner_config_directories }}"
30
31- name: Set group sticky bit on runner directories for permission inheritance
32 file:
33 path: "{{ item }}"
34 state: directory
35 mode: "g+s"
36 loop: "{{ runner_config_directories }}"
37
38- name: Create NFS mount directories
39 file:
40 path: "{{ item }}"
41 state: directory
42 owner: "{{ runner_user }}"
43 group: "{{ runner_group }}"
44 mode: '0775'
45 loop: "{{ runner_nfs_directories }}"
46
47- name: Set group sticky bit on NFS directories for permission inheritance
48 file:
49 path: "{{ item }}"
50 state: directory
51 mode: "g+s"
52 loop: "{{ runner_nfs_directories }}"
53
54- name: Check Docker daemon is running
55 command: docker info
56 register: docker_info
57 changed_when: false
58 failed_when: docker_info.rc != 0
59
60- name: Verify Docker Compose is working
61 command: docker compose version
62 register: compose_version
63 changed_when: false
64 failed_when: compose_version.rc != 0
65
66- name: Display Docker information
67 debug:
68 msg: |
69 Docker Information:
70 - Docker Compose Version: {{ compose_version.stdout }}
71 - Docker Status: Running
72 - Runner User: {{ runner_user }} (UID: {{ runner_uid }})
73 - Service Directory Structure: Each service in /docker/[service] format
74 - Total Config Directories: {{ runner_config_directories | length }}
75 - NFS Mount Path: {{ runner_nfs_mount_dir }}