1
0
Fork 0
mirror of https://github.com/iiab/iiab.git synced 2025-02-13 11:42:08 +00:00
iiab/roles/mediawiki/tasks/install.yml

138 lines
5.7 KiB
YAML
Raw Normal View History

- name: "Set 'mysql_install: True' and 'mysql_enabled: True'"
set_fact:
mysql_install: True
mysql_enabled: True
- name: MYSQL - run 'mysql' role (attempt to install & enable MySQL / MariaDB)
include_role:
name: mysql
- name: FAIL (STOP THE INSTALL) IF 'mysql_installed is undefined'
fail:
msg: "MediaWiki install cannot proceed, as MySQL / MariaDB is not installed."
when: mysql_installed is undefined
- name: Record (initial) disk space used
shell: df -B1 --output=used / | tail -1
register: df1
# https://www.mediawiki.org/wiki/Manual:Installation_requirements#PHP
- name: 'Install packages: php{{ php_version }}-intl, php{{ php_version }}-mbstring, php{{ php_version }}-xml'
2018-03-22 20:06:11 +00:00
package:
2018-10-28 16:33:33 +00:00
name:
2021-06-27 22:25:49 +00:00
#- php{{ php_version }}-common # Auto-installed as an apt dependency. REGARDLESS: php{{ php_version }}-common superset php{{ php_version }}-cli is auto-installed by php{{ php_version }}-fpm in nginx/tasks/install.yml
- php{{ php_version }}-intl # Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml, wordpress/tasks/install.yml
#- php{{ php_version }}-json # See stanza just below
- php{{ php_version }}-mbstring # Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml, pbx/tasks/freepbx_dependencies.yml, wordpress/tasks/install.yml
- php{{ php_version }}-xml # 2021-06-27: REQUIRED (AND ENFORCED) despite this being missing from MediaWiki's above requirements doc! Likewise installed in moodle/tasks/install.yml, nextcloud/tasks/install.yml, pbx/tasks/freepbx_dependencies.yml, wordpress/tasks/install.yml -- AND REGARDLESS dragged in later by Admin Console's use of php-pear for roles/cmdsrv/tasks/main.yml
2018-03-22 20:06:11 +00:00
state: present
2018-03-20 18:20:01 +00:00
# For PHP >= 8.0: phpX.Y-json is baked into PHP itself.
# For PHP < 8.0: phpX.Y-json auto-installed by phpX.Y-fpm AND phpX.Y-cli in 3-base-server's nginx/tasks/install.yml, as confirmed by: apt rdepends phpX.Y-json
#
#- name: Install php{{ php_version }}-json if PHP < 8.0
# package:
# name: php{{ php_version }}-json
# state: present
# when: php_version is version('8.0', '<')
2018-09-20 23:15:56 +00:00
- name: Download {{ mediawiki_download_base_url }}/{{ mediawiki_src }} to {{ downloads_dir }}
2018-03-20 18:20:01 +00:00
get_url:
url: "{{ mediawiki_download_base_url }}/{{ mediawiki_src }}"
2020-02-04 00:15:56 +00:00
dest: "{{ downloads_dir }}" # /opt/iiab/downloads
2018-03-20 18:20:01 +00:00
timeout: "{{ download_timeout }}"
2018-09-20 23:15:56 +00:00
#force: yes
#backup: yes
2018-03-20 18:20:01 +00:00
2020-02-04 00:15:56 +00:00
- name: Unarchive (unpack) it to permanent location {{ mediawiki_abs_path }} ({{ apache_user }}:{{ apache_user }}, u+rw,g+r,o+r)
2018-03-20 18:20:01 +00:00
unarchive:
2018-03-21 15:37:52 +00:00
src: "{{ downloads_dir }}/{{ mediawiki_src }}"
2020-02-04 00:15:56 +00:00
dest: "{{ mediawiki_install_path }}" # /library
owner: "{{ apache_user }}" # www-data on debuntu
2018-03-20 18:20:01 +00:00
group: "{{ apache_user }}"
2020-01-17 05:14:59 +00:00
mode: u+rw,g+r,o+r # '0755' forced executable bits on files
2018-03-20 18:20:01 +00:00
keep_newer: yes
2020-02-04 00:15:56 +00:00
- name: Symlink {{ doc_root }}/{{ mediawiki_symlink }} -> {{ mediawiki_abs_path }}
2019-12-29 17:20:04 +00:00
file:
2020-02-04 00:15:56 +00:00
src: "{{ mediawiki_abs_path }}" # /library/mediawiki-1.XY.Z
path: "{{ doc_root }}/{{ mediawiki_symlink }}" # /library/www/html/w
2019-12-29 17:20:04 +00:00
state: link
2020-01-17 05:14:59 +00:00
- name: Start MySQL systemd service ({{ mysql_service }}) so we can create db
systemd:
name: "{{ mysql_service }}" # mariadb on debuntu
2020-02-04 00:15:56 +00:00
state: started
2018-03-20 18:20:01 +00:00
2018-09-20 22:49:36 +00:00
- name: Create MySQL database {{ mediawiki_db_name }}
2018-03-20 18:20:01 +00:00
mysql_db:
2020-02-04 00:15:56 +00:00
name: "{{ mediawiki_db_name }}" # iiab_mediawiki
#state: present
2018-03-20 18:20:01 +00:00
2020-01-17 05:14:59 +00:00
- name: Create MySQL database user {{ mediawiki_db_user }} with password, and permissions to above db
2018-03-20 18:20:01 +00:00
mysql_user:
2020-02-04 00:15:56 +00:00
name: "{{ mediawiki_db_user }}" # iiab_mediawiki_user
2018-03-20 18:20:01 +00:00
password: "{{ mediawiki_db_user_password }}"
priv: "{{ mediawiki_db_name }}.*:ALL,GRANT"
2020-02-04 00:15:56 +00:00
#state: present
2018-03-20 18:20:01 +00:00
2018-09-20 23:23:04 +00:00
- name: Configure MediaWiki, if {{ mediawiki_abs_path }}/LocalSettings.php doesn't exist
2018-03-21 15:37:52 +00:00
shell: >
php '{{ mediawiki_abs_path }}/maintenance/install.php'
--dbname={{ mediawiki_db_name }}
--dbserver="localhost"
--installdbuser={{ mediawiki_db_user }}
--installdbpass={{ mediawiki_db_user_password }}
--dbuser={{ mediawiki_db_user }}
--dbpass={{ mediawiki_db_user_password }}
2020-01-28 22:13:02 +00:00
--scriptpath=/{{ mediawiki_symlink }}
2018-03-21 15:37:52 +00:00
--lang=en
--pass={{ mediawiki_admin_user_password }}
"{{ mediawiki_site_name }}"
"{{ mediawiki_admin_user }}"
2018-03-21 16:05:51 +00:00
args:
2020-02-04 00:15:56 +00:00
chdir: "{{ mediawiki_abs_path }}" # /library/mediawiki-1.XY.Z
2018-03-21 16:05:51 +00:00
creates: "{{ mediawiki_abs_path }}/LocalSettings.php"
2018-03-21 15:37:52 +00:00
- name: Configure $wgArticlePath variable in {{ mediawiki_abs_path }}/LocalSettings.php
2019-12-29 17:20:04 +00:00
lineinfile:
2020-02-04 00:15:56 +00:00
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
2019-12-29 17:20:04 +00:00
line: '$wgArticlePath = "/wiki/$1";'
- name: Configure $wgUsePathInfo variable in {{ mediawiki_abs_path }}/LocalSettings.php
2019-12-29 17:20:04 +00:00
lineinfile:
2020-02-04 00:15:56 +00:00
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
2019-12-29 17:20:04 +00:00
line: '$wgUsePathInfo = true;'
- name: Configure $wgServer variable in {{ mediawiki_abs_path }}/LocalSettings.php
lineinfile:
2020-02-04 00:15:56 +00:00
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
regexp: '^\$wgServer ='
line: '$wgServer = "//" . $_SERVER["HTTP_HOST"];'
2019-12-29 17:20:04 +00:00
2020-01-30 09:00:00 +00:00
# RECORD MediaWiki AS INSTALLED
- name: Record (final) disk space used
shell: df -B1 --output=used / | tail -1
register: df2
- name: Add 'mediawiki_disk_usage = {{ df2.stdout|int - df1.stdout|int }}' to {{ iiab_ini_file }}
ini_file:
path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
section: mediawiki
option: mediawiki_disk_usage
value: "{{ df2.stdout|int - df1.stdout|int }}"
2020-01-30 09:00:00 +00:00
- name: "Set 'mediawiki_installed: True'"
set_fact:
mediawiki_installed: True
2018-03-20 18:20:01 +00:00
- name: "Add 'mediawiki_installed: True' to {{ iiab_state_file }}"
2019-09-14 23:03:51 +00:00
lineinfile:
2020-02-04 00:15:56 +00:00
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
2019-09-14 23:03:51 +00:00
regexp: '^mediawiki_installed'
2019-10-07 17:11:21 +00:00
line: 'mediawiki_installed: True'