mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-08-15 08:30:46 +02:00
Use EspoCRM's ConfigWriter API to patch the 'siteUrl' setting during updates. This makes the process idempotent, avoids brittle regex replacements, and ensures the running configuration stays in sync with the deployment domain. https://chatgpt.com/share/689bb860-ba90-800f-adb5-4fa5a992b267
43 lines
1.5 KiB
YAML
43 lines
1.5 KiB
YAML
- name: Update DB host
|
|
command: >
|
|
docker exec --user root {{ espocrm_name }}
|
|
sed -i "s/'host' => .*/'host' => '{{ database_host }}',/" {{ espocrm_config_file }}
|
|
notify: docker compose restart
|
|
|
|
- name: Update DB name
|
|
command: >
|
|
docker exec --user root {{ espocrm_name }}
|
|
sed -i "s/'dbname' => .*/'dbname' => '{{ database_name }}',/" {{ espocrm_config_file }}
|
|
notify: docker compose restart
|
|
|
|
- name: Update DB user
|
|
command: >
|
|
docker exec --user root {{ espocrm_name }}
|
|
sed -i "s/'user' => .*/'user' => '{{ database_username }}',/" {{ espocrm_config_file }}
|
|
notify: docker compose restart
|
|
|
|
- name: Update DB password
|
|
command: >
|
|
docker exec --user root {{ espocrm_name }}
|
|
sed -i "s/'password' => .*/'password' => '{{ database_password }}',/" {{ espocrm_config_file }}
|
|
notify: docker compose restart
|
|
|
|
- name: Ensure siteUrl matches canonical domain
|
|
ansible.builtin.shell: |
|
|
docker compose exec -T web php -r '
|
|
require "/var/www/html/bootstrap.php";
|
|
$app = new \Espo\Core\Application();
|
|
$c = $app->getContainer();
|
|
$cfg = $c->get("config");
|
|
$writer = $c->get("injectableFactory")->create("\Espo\Core\Utils\Config\ConfigWriter");
|
|
$new = "{{ domains | get_url(application_id, WEB_PROTOCOL) }}";
|
|
if ($cfg->get("siteUrl") !== $new) {
|
|
$writer->set("siteUrl", $new);
|
|
$writer->save();
|
|
echo "CHANGED";
|
|
}
|
|
'
|
|
args:
|
|
chdir: "{{ docker_compose.directories.instance }}"
|
|
register: siteurl_set
|
|
changed_when: "'CHANGED' in siteurl_set.stdout" |