/
/
/
Ansible role that deployes services on my runner machine
1---
2# Runner Services - Stirling-PDF Processing Service
3
4- name: Create Stirling-PDF configuration directories
5 file:
6 path: "{{ item }}"
7 state: directory
8 owner: "{{ runner_user }}"
9 group: "users"
10 mode: '2775' # setgid bit for inheritance, group writable (umask 002)
11 loop:
12 - "{{ stirling_pdf_config_dir }}"
13 - "{{ stirling_pdf_data_dir }}"
14 - "{{ stirling_pdf_data_dir }}/logs"
15 - "{{ stirling_pdf_data_dir }}/customFiles"
16 - "{{ stirling_pdf_data_dir }}/pipeline"
17
18- name: Generate Stirling-PDF environment file
19 template:
20 src: stirling-pdf.env.j2
21 dest: "{{ stirling_pdf_config_dir }}/stirling-pdf.env"
22 owner: "{{ runner_user }}"
23 group: "users"
24 mode: '0664' # group writable
25 notify: restart stirling-pdf
26
27- name: Create Stirling-PDF Docker Compose file
28 template:
29 src: stirling-pdf-compose.yml.j2
30 dest: "{{ stirling_pdf_config_dir }}/docker-compose.yml"
31 owner: "{{ runner_user }}"
32 group: "users"
33 mode: '0664' # group writable
34 notify: restart stirling-pdf
35
36- name: Check if Stirling-PDF is already running
37 community.docker.docker_compose_v2:
38 project_src: "{{ stirling_pdf_config_dir }}"
39 state: present
40 restarted: false
41 register: stirling_pdf_running
42 changed_when: false
43 failed_when: false
44
45- name: Start Stirling-PDF services
46 community.docker.docker_compose_v2:
47 project_src: "{{ stirling_pdf_config_dir }}"
48 state: present
49 register: stirling_pdf_start_result
50 check_mode: no
51
52- name: Wait for Stirling-PDF to be healthy
53 uri:
54 url: "http://localhost:{{ stirling_pdf_port }}/api/v1/info/status"
55 method: GET
56 status_code: 200
57 timeout: 10
58 register: stirling_pdf_health
59 until: stirling_pdf_health.status == 200
60 retries: 15
61 delay: 10
62 failed_when: false
63 when: stirling_pdf_start_result is changed
64 check_mode: no
65
66- name: Display Stirling-PDF deployment summary
67 debug:
68 msg: |
69 Stirling-PDF Processing Service Deployment:
70 - Status: {{ 'Started' if stirling_pdf_start_result is changed else 'Already running' }}
71 - Health: {{ 'OK' if (stirling_pdf_health.status | default(0)) == 200 else 'Check manually' }}
72 - Web UI: http://{{ ansible_default_ipv4.address }}:{{ stirling_pdf_port }}
73 - API Endpoint: http://{{ ansible_default_ipv4.address }}:{{ stirling_pdf_port }}/api/v1
74 - Configuration: {{ stirling_pdf_config_dir }}
75 - Data Storage: {{ stirling_pdf_data_dir }}
76 - Custom Files: {{ stirling_pdf_data_dir }}/customFiles
77 - Pipeline Configs: {{ stirling_pdf_data_dir }}/pipeline
78
79 API Features:
80 - PDF Conversion (Office docs, images, etc.)
81 - OCR and text extraction
82 - PDF manipulation (merge, split, rotate)
83 - Digital signatures and security
84 - Form filling and annotation
85 - Batch processing capabilities
86