--- - name: "load docker, db and proxy for {{ application_id }}" include_role: name: sys-stk-full-stateful vars: docker_compose_flush_handlers: true - name: "Wait for DB to be reachable" command: > docker exec {{ MEDIAWIKI_CONTAINER }} php /var/www/html/maintenance/sql.php --query "SELECT 1;" register: mw_db_ready retries: 15 delay: 2 until: mw_db_ready.rc == 0 changed_when: false failed_when: false - name: "Install MediaWiki if no schema exists" command: > docker exec -u {{ MEDIAWIKI_USER }} {{ MEDIAWIKI_CONTAINER }} php /var/www/html/maintenance/install.php --dbname="{{ database_name }}" --dbuser="{{ database_username }}" --dbpass="{{ database_password }}" --dbserver="{{ database_host }}:{{ database_port }}" --installdbuser="{{ database_username }}" --installdbpass="{{ database_password }}" --server="{{ MEDIAWIKI_URL }}" --scriptpath="" --lang={{ HOST_LL }} --pass="{{ MEDIAWIKI_ADMINISTRATOR_PASSWORD }}" "{{ MEDIAWIKI_SITENAME }}" "{{ MEDIAWIKI_ADMINISTRATOR_NAME }}" no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}" register: mw_install changed_when: mw_install.rc == 0 failed_when: > mw_install.rc != 0 and ('LocalSettings.php file has been detected' not in (((mw_install.stdout | default('')) ~ (mw_install.stderr | default(''))))) and ('run update.php instead' not in (((mw_install.stdout | default('')) ~ (mw_install.stderr | default(''))))) - name: "Initialize / migrate MediaWiki database schema" command: > docker exec -u {{ MEDIAWIKI_USER }} {{ MEDIAWIKI_CONTAINER }} php /var/www/html/maintenance/update.php --quick register: mw_update changed_when: "'...done.' in (mw_update.stdout | default(''))" failed_when: mw_update.rc != 0 - name: "Create MediaWiki admin user" command: > docker exec -u {{ MEDIAWIKI_USER }} {{ MEDIAWIKI_CONTAINER }} php /var/www/html/maintenance/createAndPromote.php --bureaucrat --sysop {{ MEDIAWIKI_ADMINISTRATOR_NAME }} {{ MEDIAWIKI_ADMINISTRATOR_PASSWORD }} {{ MEDIAWIKI_ADMINISTRATOR_EMAIL }} register: create_admin changed_when: > ('created' in ((create_admin.stdout | default('')) ~ (create_admin.stderr | default('')))) or ('Created' in ((create_admin.stdout | default('')) ~ (create_admin.stderr | default('')))) failed_when: > create_admin.rc != 0 and ('already exists' not in ((create_admin.stdout | default('')) ~ (create_admin.stderr | default('')))) and ('Account exists' not in ((create_admin.stdout | default('')) ~ (create_admin.stderr | default('')))) async: "{{ ASYNC_TIME if ASYNC_ENABLED | bool else omit }}" poll: "{{ ASYNC_POLL if ASYNC_ENABLED | bool else omit }}" no_log: "{{ MASK_CREDENTIALS_IN_LOGS | bool }}"