- name: Install MySQL Support for Python apt: name: python-pymysql state: present - name: Create Database mysql_db: name: "{{ mw_db_name }}" state: present login_unix_socket: /var/run/mysqld/mysqld.sock - name: Create Database User mysql_user: name: "{{ mw_db_user }}" password: "{{ mw_db_pass }}" priv: "{{ mw_db_name }}.*:ALL,GRANT" state: present login_unix_socket: /var/run/mysqld/mysqld.sock - name: Install PHP Modules apt: name: ['php-xml', 'php-mbstring'] state: present notify: Reload Apache2 - name: Create Public HTML Directory file: path: "{{ mw_dir }}/public_html" state: directory # https://www.mediawiki.org/wiki/Manual:Short_URL#Moving_a_wiki_from_/wiki_to_/w - name: Create Directory /w for Short URLs file: path: "{{ mw_dir }}/public_html/w" state: directory - name: Create Logs Directory file: path: "{{ mw_dir }}/logs" state: directory - name: Download MediaWiki get_url: url: "https://releases.wikimedia.org/mediawiki/\ {{ mw_version | regex_replace('\\.\\d+$', '') }}/\ mediawiki-{{ mw_version }}.tar.gz" dest: /tmp/mediawiki-{{ mw_version }}.tar.gz - name: Extract MediaWiki unarchive: src: /tmp/mediawiki-{{ mw_version }}.tar.gz dest: "{{ mw_dir }}/public_html/w" owner: www-data group: www-data extra_opts: [--strip-components=1] remote_src: yes - name: Install MediaWiki command: | php maintenance/install.php --server="http://{{ mw_domain }}/" \ --dbname="{{ mw_db_name }}" --dbuser="{{ mw_db_user }}" \ --dbpass="{{ mw_db_pass }}" --pass="{{ mw_admin_pass }}" \ --scriptpath="/w" "{{ mw_namespace }}" "{{ mw_admin }}" args: chdir: "{{ mw_dir }}/public_html/w" creates: "{{ mw_dir }}/public_html/w/LocalSettings.php" - name: Set MediaWiki Article Path lineinfile: path: "{{ mw_dir }}/public_html/w/LocalSettings.php" regexp: '^\$wgArticlePath' insertafter: '^\$wgScriptPath' line: '$wgArticlePath = "/wiki/$1";' - name: "Enable Apache Module: rewrite" apache2_module: name: rewrite state: present - name: Apply Apache Configuration template: src: mediawiki.conf.j2 dest: /etc/apache2/sites-available/{{ mw_domain }}.conf notify: Reload Apache2 - name: Enable Apache Website shell: a2ensite {{ mw_domain }} args: creates: /etc/apache2/sites-enabled/{{ mw_domain }}.conf notify: Reload Apache2