mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-30 07:18:09 +02:00
Why - Fix flaky first-run installs and make config edits idempotent. - Prepare LDAP support and allow optional inline CSP for UI. - Improve observability and guard against broken configuration.php. What - config/main.yml: enable features.ldap; add CSP flags (allow inline style/script elem); minor spacing. - tasks/: split into 01_install (wait for core, absolute CLI path), 02_debug (toggle $debug/$error_reporting safely), 03_patch (patch DB creds in configuration.php), 04_ldap (configure plugin via helper), 05_assert (optional php -l). - templates/Dockerfile.j2: conditionally install/compile php-ldap (fallback to docker-php-ext-install with libsasl2-dev). - templates/cli-ldap.php.j2: idempotently enable & configure Authentication - LDAP from env. - templates/docker-compose.yml.j2: build custom image when LDAP is enabled; mount cli-ldap.php; pull_policy: never. - templates/env.j2: add site/admin vars, MariaDB connector/env, full LDAP env. - vars/main.yml: default to MariaDB (mysqli), add JOOMLA_* vars incl. JOOMLA_CONFIG_FILE. Notes - LDAP path implemented but NOT yet tested end-to-end. - Ref: https://chatgpt.com/share/68b068a8-2aa4-800f-8cd1-56383561a9a8.
54 lines
1.7 KiB
YAML
54 lines
1.7 KiB
YAML
# Wait until the Joomla core is copied into the volume
|
|
- name: "Wait for Joomla files to exist"
|
|
command:
|
|
argv: [ docker, exec, "{{ JOOMLA_CONTAINER }}", test, -f, /var/www/html/index.php ]
|
|
register: joomla_files
|
|
changed_when: false
|
|
retries: 60
|
|
delay: 2
|
|
until: joomla_files.rc == 0
|
|
|
|
# (Optional) specifically wait for the CLI installer script
|
|
- name: "Check for CLI installer"
|
|
command:
|
|
argv: [ docker, exec, "{{ JOOMLA_CONTAINER }}", test, -f, /var/www/html/installation/joomla.php ]
|
|
register: has_installer
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
# Only if not already installed (no configuration.php)
|
|
- name: "Check if Joomla is already installed"
|
|
command:
|
|
argv: [ docker, exec, "{{ JOOMLA_CONTAINER }}", test, -f, "{{ JOOMLA_CONFIG_FILE }}" ]
|
|
register: joomla_installed
|
|
changed_when: false
|
|
failed_when: false
|
|
|
|
# Install (uses absolute path + argv)
|
|
- name: "Joomla CLI install (first run only)"
|
|
command:
|
|
argv:
|
|
- docker
|
|
- exec
|
|
- "{{ JOOMLA_CONTAINER }}"
|
|
- php
|
|
- /var/www/html/installation/joomla.php
|
|
- install
|
|
- "--db-type={{ JOOMLA_DB_CONNECTOR }}"
|
|
- "--db-host={{ database_host }}"
|
|
- "--db-user={{ database_username }}"
|
|
- "--db-pass={{ database_password }}"
|
|
- "--db-name={{ database_name }}"
|
|
- "--admin-user={{ JOOMLA_USER }}"
|
|
- "--admin-username={{ JOOMLA_USER_NAME }}"
|
|
- "--admin-password={{ JOOMLA_USER_PASSWORD }}"
|
|
- "--admin-email={{ JOOMLA_USER_EMAIL }}"
|
|
- "--no-interaction"
|
|
- "--site-name={{ JOOMLA_SITE_NAME }}"
|
|
register: j_install
|
|
changed_when: j_install.rc == 0
|
|
failed_when: j_install.rc != 0
|
|
when:
|
|
- joomla_installed.rc != 0
|
|
- has_installer.rc == 0
|