mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-09-14 14:26:04 +02:00
- Accept HTTP 302 (Distribution Wizard redirects) in REST readiness and extension checks - Treat 302 as missing admin user during bootstrap - Move superadmin password to xwiki.cfg (correct location) - Disable automatic Distribution Wizard start in xwiki.properties - Standardize run_once includes for postgres, cdn, and xwiki roles See: https://chatgpt.com/share/68c3a67b-80b4-800f-8a90-ebdcd4abb86c
44 lines
1.5 KiB
YAML
44 lines
1.5 KiB
YAML
---
|
|
# Wait until REST endpoint is available (01_core usually ensures this, but add safety)
|
|
- name: "XWIKI | Wait until REST answers"
|
|
uri:
|
|
url: "http://127.0.0.1:{{ XWIKI_HOST_PORT }}/xwiki/rest/"
|
|
status_code: [200, 401]
|
|
register: _rest_ping
|
|
retries: 60
|
|
delay: 5
|
|
until: _rest_ping is succeeded
|
|
|
|
# Check if the target admin already exists
|
|
# 404 => missing, 302 => DW redirect (treat as missing for bootstrap)
|
|
- name: "XWIKI | Check if target admin user exists"
|
|
uri:
|
|
url: "{{ XWIKI_REST_GENERAL }}/users/{{ XWIKI_ADMIN_USER | urlencode }}"
|
|
method: GET
|
|
user: "{{ XWIKI_SUPERADMIN_USERNAME }}"
|
|
password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
|
|
force_basic_auth: true
|
|
status_code: [200, 404, 302]
|
|
register: _admin_exists
|
|
|
|
# Create admin user if not existing (or DW still redirecting)
|
|
- name: "XWIKI | Create admin user via REST"
|
|
uri:
|
|
url: "{{ XWIKI_REST_GENERAL }}/users"
|
|
method: POST
|
|
user: "{{ XWIKI_SUPERADMIN_USERNAME }}"
|
|
password: "{{ XWIKI_SUPERADMIN_PASSWORD }}"
|
|
force_basic_auth: true
|
|
status_code: 201
|
|
headers:
|
|
Content-Type: "application/xml"
|
|
body: |
|
|
<user>
|
|
<firstName>{{ users.administrator.firstname | default('Admin') }}</firstName>
|
|
<lastName>{{ users.administrator.lastname | default('User') }}</lastName>
|
|
<email>{{ users.administrator.email }}</email>
|
|
<username>{{ XWIKI_ADMIN_USER }}</username>
|
|
<password>{{ XWIKI_ADMIN_PASS }}</password>
|
|
</user>
|
|
when: _admin_exists.status in [404, 302]
|