01_patch_config.ymlΒΆ

---
# The seeds need to be executed as root, because www-data isn't allowed to create files in the wordpress directory

- name: "🧹 Strip stale Multisite bareword constants from {{ WORDPRESS_CONFIG_FILE }}"
  shell: >
    container exec --user root {{ WORDPRESS_CONTAINER_ADDRESS }}
    sed -i -E "/^\s*define\(\s*'(DOMAIN_CURRENT_SITE|PATH_CURRENT_SITE)'\s*,.*\);\s*$/d"
    {{ WORDPRESS_DOCKER_CONF_PATH }}
  changed_when: true

- name: πŸ”„ Update DB host in {{ WORDPRESS_CONFIG_FILE }}
  shell: >
    container exec --user root {{ WORDPRESS_CONTAINER_ADDRESS }}
    sed -i "s/define(\s*'DB_HOST'\s*,\s*'[^']*'\s*);/define( 'DB_HOST', '{{ lookup('database', application_id, 'host') | sed_escape('/') }}:{{ lookup('database',
    application_id, 'port') | sed_escape('/') }}' );/i" {{ WORDPRESS_DOCKER_CONF_PATH }}
  notify: compose-up

- name: πŸ”„ Update DB name in {{ WORDPRESS_CONFIG_FILE }}
  shell: >
    container exec --user root {{ WORDPRESS_CONTAINER_ADDRESS }}
    sed -i "s/define(\s*'DB_NAME'\s*,\s*'[^']*'\s*);/define( 'DB_NAME', '{{ lookup('database', application_id, 'name') | sed_escape('/') }}' );/i" {{ WORDPRESS_DOCKER_CONF_PATH
    }}
  notify: compose-up

- name: πŸ”„ Update DB user in {{ WORDPRESS_CONFIG_FILE }}
  shell: >
    container exec --user root {{ WORDPRESS_CONTAINER_ADDRESS }}
    sed -i "s/define(\s*'DB_USER'\s*,\s*'[^']*'\s*);/define( 'DB_USER', '{{ lookup('database', application_id, 'username') | sed_escape('/') }}' );/i" {{ WORDPRESS_DOCKER_CONF_PATH
    }}
  notify: compose-up

- name: πŸ”„ Update DB password in {{ WORDPRESS_CONFIG_FILE }}
  shell: >
    IFS= read -r PATCH_PASSWORD && export PATCH_PASSWORD && container exec --user root
    -e PATCH_PASSWORD
    {{ WORDPRESS_CONTAINER_ADDRESS }}
    sh -c "sed -i \"s/define(\\s*'DB_PASSWORD'\\s*,\\s*'[^']*'\\s*);/define( 'DB_PASSWORD', '\${PATCH_PASSWORD}' );/i\" {{ WORDPRESS_DOCKER_CONF_PATH }}"
  args:
    stdin: "{{ lookup('database', application_id, 'password') | sed_escape('/') }}"
  notify: compose-up
  no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"

- name: "🚿 Flush handlers to reinitialize new database credentials"
  meta: flush_handlers