diff --git a/roles/lokole/mediawiki/defaults/main.yml b/roles/lokole/mediawiki/defaults/main.yml new file mode 100644 index 000000000..e75396acb --- /dev/null +++ b/roles/lokole/mediawiki/defaults/main.yml @@ -0,0 +1,24 @@ +mediawiki_major_version: "1.31" +mediawiki_minor_version: "0" +mediawiki_version: "{{ mediawiki_major_version }}.{{ mediawiki_minor_version }}" + +mediawiki_download_base_url: "https://releases.wikimedia.org/mediawiki/{{ mediawiki_major_version }}" +mediawiki_src: "mediawiki-{{ mediawiki_version }}.tar.gz" + +mediawiki_db_name: iiab_mediawiki +mediawiki_db_user: iiab_mediawiki_user +mediawiki_db_user_password: changeme + +mediawiki_admin_user: Admin +mediawiki_admin_user_password: changeme + +mediawiki_site_name: Community Wiki + +mediawiki_install: True +mediawiki_enabled: True + +mediawiki_install_path: "{{ content_base }}" +mediawiki_abs_path: "{{ mediawiki_install_path }}/mediawiki-{{ mediawiki_version }}" + +mediawiki_url: /mediawiki +mediawiki_full_url: "http://{{ iiab_hostname }}.{{ iiab_domain }}/{{ mediawiki_url }}" diff --git a/roles/lokole/mediawiki/tasks/install.yml b/roles/lokole/mediawiki/tasks/install.yml new file mode 100644 index 000000000..cd89c0c71 --- /dev/null +++ b/roles/lokole/mediawiki/tasks/install.yml @@ -0,0 +1,112 @@ +- name: Install packages required by MediaWiki + package: + name: "{{ item }}" + state: present + with_items: + - "php{{ php_version }}-intl" + - "php{{ php_version }}-mbstring" + tags: + - download + +- name: Download MediaWiki software, per roles/mediawiki/defaults/main.yml + get_url: + url: "{{ mediawiki_download_base_url }}/{{ mediawiki_src }}" + dest: "{{ downloads_dir }}" + timeout: "{{ download_timeout }}" +# force: yes +# backup: yes + register: mediawiki_download_output + when: internet_available + +- name: Unpack download to permanent location + unarchive: + src: "{{ downloads_dir }}/{{ mediawiki_src }}" + dest: "{{ mediawiki_install_path }}" + owner: root + group: "{{ apache_user }}" + mode: 0755 + keep_newer: yes + +- name: MySQL database needs to be running if we are trying to create a new db + service: + state: started + name: "{{ mysql_service }}" + +- name: Create MySQL mediawiki database + mysql_db: + name: "{{ mediawiki_db_name }}" + state: present + +- name: Create MySQL mediawiki database user + mysql_user: + name: "{{ mediawiki_db_user }}" + password: "{{ mediawiki_db_user_password }}" + priv: "{{ mediawiki_db_name }}.*:ALL,GRANT" + state: present + +- name: Configure MediaWiki + 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 }} + --scriptpath=/mediawiki + --lang=en + --pass={{ mediawiki_admin_user_password }} + "{{ mediawiki_site_name }}" + "{{ mediawiki_admin_user }}" + args: + chdir: "{{ mediawiki_abs_path }}" + creates: "{{ mediawiki_abs_path }}/LocalSettings.php" + +- name: Copy mediawiki httpd conf file + template: + src: mediawiki.conf.j2 + dest: "/etc/{{ apache_config_dir }}/mediawiki.conf" + +- name: Enable httpd conf file if we are disabled (debuntu) + file: + src: /etc/apache2/sites-available/mediawiki.conf + dest: /etc/apache2/sites-enabled/mediawiki.conf + state: link + when: mediawiki_enabled and is_debuntu + +- name: Remove httpd conf file if we are disabled (OS's other than debuntu) + file: + path: /etc/apache2/sites-enabled/mediawiki.conf + state: absent + when: not mediawiki_enabled and is_debuntu + +- name: Restart Apache, so it picks up the new aliases + service: + name: "{{ apache_service }}" + state: restarted + +- name: Add 'mediawiki' to list of services at /etc/iiab/iiab.ini + ini_file: + dest: "{{ service_filelist }}" + section: mediawiki + option: "{{ item.option }}" + value: "{{ item.value }}" + with_items: + - option: name + value: mediawiki + - option: description + value: '"mediawiki is a blog and web site management application."' + - option: mediawiki_src + value: "{{ mediawiki_src }}" + - option: mediawiki_abs_path + value: "{{ mediawiki_abs_path }}" + - option: mediawiki_db_name + value: "{{ mediawiki_db_name }}" + - option: mediawiki_db_user + value: "{{ mediawiki_db_user }}" + - option: mediawiki_url + value: "{{ mediawiki_url }}" + - option: mediawiki_full_url + value: "{{ mediawiki_full_url }}" + - option: mediawiki_enabled + value: "{{ mediawiki_enabled }}" diff --git a/roles/lokole/mediawiki/tasks/main.yml b/roles/lokole/mediawiki/tasks/main.yml new file mode 100644 index 000000000..6c77d3e7c --- /dev/null +++ b/roles/lokole/mediawiki/tasks/main.yml @@ -0,0 +1,3 @@ +- name: Include the install playbook + include_tasks: install.yml + when: mediawiki_install diff --git a/roles/lokole/mediawiki/templates/mediawiki.conf.j2 b/roles/lokole/mediawiki/templates/mediawiki.conf.j2 new file mode 100644 index 000000000..1da5e193b --- /dev/null +++ b/roles/lokole/mediawiki/templates/mediawiki.conf.j2 @@ -0,0 +1,6 @@ +Alias {{ mediawiki_url }} {{ mediawiki_abs_path }} + + Options Indexes FollowSymLinks + AllowOverride All + Require all granted +