mirror of
https://github.com/iiab/iiab.git
synced 2025-02-15 04:32:11 +00:00
Merge pull request #2233 from holta/cleaner-mediawiki
Cleaner MediaWiki playbook for IIAB
This commit is contained in:
commit
7013e2d981
6 changed files with 105 additions and 86 deletions
|
@ -29,4 +29,4 @@ mediawiki_abs_path: "{{ mediawiki_install_path }}/mediawiki-{{ mediawiki_version
|
|||
mediawiki_url: /wiki
|
||||
mediawiki_url2: /mediawiki
|
||||
mediawiki_full_url: "http://{{ iiab_hostname }}.{{ iiab_domain }}{{ mediawiki_url }}" # http://box.lan/wiki
|
||||
mediawiki_symlink: w # can also be mwlink. NO slashes as they are suppplied as needed in the code
|
||||
mediawiki_symlink: w # Can also be mwlink. NO slashes as they are supplied as needed in the code
|
||||
|
|
12
roles/mediawiki/tasks/apache.yml
Normal file
12
roles/mediawiki/tasks/apache.yml
Normal file
|
@ -0,0 +1,12 @@
|
|||
- name: Enable http://box{{ mediawiki_url }} via Apache # http://box/wiki
|
||||
command: a2ensite mediawiki.conf
|
||||
when: mediawiki_enabled | bool
|
||||
|
||||
- name: Disable http://box{{ mediawiki_url }} via Apache # http://box/wiki
|
||||
command: a2dissite mediawiki.conf
|
||||
when: not mediawiki_enabled
|
||||
|
||||
- name: Restart '{{ apache_service }}' systemd service
|
||||
systemd:
|
||||
name: "{{ apache_service }}" # apache2 or httpd, as set in /opt/iiab/iiab/vars/<OS>.yml
|
||||
state: restarted
|
|
@ -1,62 +0,0 @@
|
|||
# Apache
|
||||
|
||||
- name: Enable http://box{{ mediawiki_url }} via Apache # i.e. http://box/wiki
|
||||
command: a2ensite mediawiki.conf
|
||||
when: apache_install and mediawiki_enabled
|
||||
|
||||
- name: Disable http://box{{ mediawiki_url }} via Apache
|
||||
command: a2dissite mediawiki.conf
|
||||
when: apache_install and not mediawiki_enabled
|
||||
|
||||
- name: Restart Apache systemd service ({{ apache_service }})
|
||||
systemd:
|
||||
name: "{{ apache_service }}" # apache2 or httpd, as set in /opt/iiab/iiab/vars/<OS>.yml
|
||||
state: restarted
|
||||
when: apache_enabled | bool
|
||||
|
||||
# NGINX
|
||||
|
||||
- name: Enable http://box{{ mediawiki_url }} & http://box{{ mediawiki_url2 }} via NGINX, by installing {{ nginx_conf_dir }}/mediawiki-nginx.conf from template
|
||||
template:
|
||||
src: mediawiki-nginx.conf.j2
|
||||
dest: "{{ nginx_conf_dir }}/mediawiki-nginx.conf"
|
||||
when: nginx_install and mediawiki_enabled
|
||||
|
||||
- name: Disable http://box{{ mediawiki_url }} & http://box{{ mediawiki_url2 }} via NGINX, by removing {{ nginx_conf_dir }}/mediawiki-nginx.conf
|
||||
file:
|
||||
path: "{{ nginx_conf_dir }}/mediawiki-nginx.conf"
|
||||
state: absent
|
||||
when: nginx_install and not mediawiki_enabled
|
||||
|
||||
- name: Restart 'nginx' systemd service
|
||||
systemd:
|
||||
name: nginx
|
||||
state: restarted
|
||||
when: nginx_enabled | bool
|
||||
|
||||
|
||||
- name: Add 'mediawiki' variable values to {{ iiab_ini_file }}
|
||||
ini_file:
|
||||
path: "{{ iiab_ini_file }}"
|
||||
section: mediawiki
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value | string }}"
|
||||
with_items:
|
||||
- option: name
|
||||
value: MediaWiki
|
||||
- option: description
|
||||
value: '"MediaWiki is a blog and web site management application, from the people who create Wikipedia."'
|
||||
- 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 }}"
|
|
@ -8,43 +8,43 @@
|
|||
- name: Download {{ mediawiki_download_base_url }}/{{ mediawiki_src }} to {{ downloads_dir }}
|
||||
get_url:
|
||||
url: "{{ mediawiki_download_base_url }}/{{ mediawiki_src }}"
|
||||
dest: "{{ downloads_dir }}"
|
||||
dest: "{{ downloads_dir }}" # /opt/iiab/downloads
|
||||
timeout: "{{ download_timeout }}"
|
||||
#force: yes
|
||||
#backup: yes
|
||||
when: internet_available | bool
|
||||
|
||||
- name: Unpack it to permanent location {{ mediawiki_abs_path }}
|
||||
- name: Unarchive (unpack) it to permanent location {{ mediawiki_abs_path }} ({{ apache_user }}:{{ apache_user }}, u+rw,g+r,o+r)
|
||||
unarchive:
|
||||
src: "{{ downloads_dir }}/{{ mediawiki_src }}"
|
||||
dest: "{{ mediawiki_install_path }}"
|
||||
dest: "{{ mediawiki_install_path }}" # /library
|
||||
owner: "{{ apache_user }}"
|
||||
group: "{{ apache_user }}"
|
||||
mode: u+rw,g+r,o+r # '0755' forced executable bits on files
|
||||
keep_newer: yes
|
||||
|
||||
- name: Create symlink {{ doc_root }}/{{ mediawiki_symlink }} -> {{ mediawiki_abs_path }}
|
||||
- name: Symlink {{ doc_root }}/{{ mediawiki_symlink }} -> {{ mediawiki_abs_path }}
|
||||
file:
|
||||
src: "{{ mediawiki_abs_path }}"
|
||||
path: "{{ doc_root }}/{{ mediawiki_symlink }}"
|
||||
src: "{{ mediawiki_abs_path }}" # /library/mediawiki-1.XY.Z
|
||||
path: "{{ doc_root }}/{{ mediawiki_symlink }}" # /library/www/html/w
|
||||
state: link
|
||||
|
||||
- name: Start MySQL systemd service ({{ mysql_service }}) so we can create db
|
||||
systemd:
|
||||
state: started
|
||||
name: "{{ mysql_service }}"
|
||||
state: started
|
||||
|
||||
- name: Create MySQL database {{ mediawiki_db_name }}
|
||||
mysql_db:
|
||||
name: "{{ mediawiki_db_name }}"
|
||||
state: present
|
||||
name: "{{ mediawiki_db_name }}" # iiab_mediawiki
|
||||
#state: present
|
||||
|
||||
- name: Create MySQL database user {{ mediawiki_db_user }} with password, and permissions to above db
|
||||
mysql_user:
|
||||
name: "{{ mediawiki_db_user }}"
|
||||
name: "{{ mediawiki_db_user }}" # iiab_mediawiki_user
|
||||
password: "{{ mediawiki_db_user_password }}"
|
||||
priv: "{{ mediawiki_db_name }}.*:ALL,GRANT"
|
||||
state: present
|
||||
#state: present
|
||||
|
||||
- name: Configure MediaWiki, if {{ mediawiki_abs_path }}/LocalSettings.php doesn't exist
|
||||
shell: >
|
||||
|
@ -61,29 +61,29 @@
|
|||
"{{ mediawiki_site_name }}"
|
||||
"{{ mediawiki_admin_user }}"
|
||||
args:
|
||||
chdir: "{{ mediawiki_abs_path }}"
|
||||
chdir: "{{ mediawiki_abs_path }}" # /library/mediawiki-1.XY.Z
|
||||
creates: "{{ mediawiki_abs_path }}/LocalSettings.php"
|
||||
|
||||
- name: Configure wgArticlePath variable in {{ mediawiki_abs_path }}/LocalSettings.php
|
||||
lineinfile:
|
||||
dest: "{{ mediawiki_abs_path }}/LocalSettings.php"
|
||||
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
|
||||
line: '$wgArticlePath = "/wiki/$1";'
|
||||
|
||||
- name: Configure $wgUsePathInfo variable in {{ mediawiki_abs_path }}/LocalSettings.php
|
||||
lineinfile:
|
||||
dest: "{{ mediawiki_abs_path }}/LocalSettings.php"
|
||||
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
|
||||
line: '$wgUsePathInfo = true;'
|
||||
|
||||
- name: Configure $wgServer variable in {{ mediawiki_abs_path }}/LocalSettings.php
|
||||
lineinfile:
|
||||
dest: "{{ mediawiki_abs_path }}/LocalSettings.php"
|
||||
path: "{{ mediawiki_abs_path }}/LocalSettings.php" # /library/mediawiki-1.XY.Z
|
||||
regexp: '^\$wgServer ='
|
||||
line: '$wgServer = "//" . $_SERVER["HTTP_HOST"];'
|
||||
|
||||
- name: Install /etc/{{ apache_conf_dir }}/mediawiki.conf from template, for http://box{{ mediawiki_url }} via Apache
|
||||
template:
|
||||
src: mediawiki.conf.j2
|
||||
dest: "/etc/{{ apache_conf_dir }}/mediawiki.conf"
|
||||
dest: "/etc/{{ apache_conf_dir }}/mediawiki.conf" # apache2/sites-available on debuntu
|
||||
|
||||
|
||||
# RECORD MediaWiki AS INSTALLED
|
||||
|
@ -94,6 +94,6 @@
|
|||
|
||||
- name: "Add 'mediawiki_installed: True' to {{ iiab_state_file }}"
|
||||
lineinfile:
|
||||
dest: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
|
||||
path: "{{ iiab_state_file }}" # /etc/iiab/iiab_state.yml
|
||||
regexp: '^mediawiki_installed'
|
||||
line: 'mediawiki_installed: True'
|
||||
|
|
|
@ -1,7 +1,60 @@
|
|||
- name: Install MediaWiki {{ mediawiki_version }}
|
||||
include_tasks: install.yml
|
||||
when: mediawiki_install and not mediawiki_installed is defined
|
||||
# "How do i fail a task in Ansible if the variable contains a boolean value?
|
||||
# I want to perform input validation for Ansible playbooks"
|
||||
# https://stackoverflow.com/questions/46664127/how-do-i-fail-a-task-in-ansible-if-the-variable-contains-a-boolean-value-i-want/46667499#46667499
|
||||
|
||||
- name: Enable MediaWiki
|
||||
include_tasks: enable.yml
|
||||
when: mediawiki_install or mediawiki_installed is defined
|
||||
# We assume 0-init/tasks/validate_vars.yml has DEFINITELY been run, so no need
|
||||
# to re-check whether vars are defined here. As Ansible vars cannot be unset:
|
||||
# https://serverfault.com/questions/856729/how-to-destroy-delete-unset-a-variable-value-in-ansible
|
||||
|
||||
- name: Assert that "mediawiki_install is sameas true" (boolean not string etc)
|
||||
assert:
|
||||
that: mediawiki_install is sameas true
|
||||
fail_msg: "PLEASE SET 'mediawiki_install: True' e.g. IN: /etc/iiab/local_vars.yml"
|
||||
quiet: yes
|
||||
|
||||
- name: Assert that "mediawiki_enabled | type_debug == 'bool'" (boolean not string etc)
|
||||
assert:
|
||||
that: mediawiki_enabled | type_debug == 'bool'
|
||||
fail_msg: "PLEASE GIVE VARIABLE 'mediawiki_enabled' A PROPER (UNQUOTED) ANSIBLE BOOLEAN VALUE e.g. IN: /etc/iiab/local_vars.yml"
|
||||
quiet: yes
|
||||
|
||||
|
||||
- name: Install MediaWiki {{ mediawiki_version }} if 'mediawiki_installed' not defined, e.g. in {{ iiab_state_file }} # /etc/iiab/iiab_state.yml
|
||||
include_tasks: install.yml
|
||||
when: mediawiki_installed is undefined
|
||||
|
||||
|
||||
- name: Enable/Disable/Restart Apache if primary
|
||||
include_tasks: apache.yml
|
||||
when: not nginx_enabled
|
||||
|
||||
- name: Enable/Disable/Restart NGINX if primary
|
||||
include_tasks: nginx.yml
|
||||
when: nginx_enabled | bool
|
||||
|
||||
|
||||
- name: Add 'mediawiki' variable values to {{ iiab_ini_file }}
|
||||
ini_file:
|
||||
path: "{{ iiab_ini_file }}" # /etc/iiab/iiab.ini
|
||||
section: mediawiki
|
||||
option: "{{ item.option }}"
|
||||
value: "{{ item.value | string }}"
|
||||
with_items:
|
||||
- option: name
|
||||
value: MediaWiki
|
||||
- option: description
|
||||
value: '"MediaWiki is a blog and web site management application, from the people who create Wikipedia."'
|
||||
- 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 }}"
|
||||
|
|
16
roles/mediawiki/tasks/nginx.yml
Normal file
16
roles/mediawiki/tasks/nginx.yml
Normal file
|
@ -0,0 +1,16 @@
|
|||
- name: Enable http://box{{ mediawiki_url }} & http://box{{ mediawiki_url2 }} via NGINX, by installing {{ nginx_conf_dir }}/mediawiki-nginx.conf from template # http://box/wiki & http://box/mediawiki
|
||||
template:
|
||||
src: mediawiki-nginx.conf.j2
|
||||
dest: "{{ nginx_conf_dir }}/mediawiki-nginx.conf" # /etc/nginx.conf.d
|
||||
when: mediawiki_enabled | bool
|
||||
|
||||
- name: Disable http://box{{ mediawiki_url }} & http://box{{ mediawiki_url2 }} via NGINX, by removing {{ nginx_conf_dir }}/mediawiki-nginx.conf # http://box/wiki & http://box/mediawiki
|
||||
file:
|
||||
path: "{{ nginx_conf_dir }}/mediawiki-nginx.conf" # /etc/nginx.conf.d
|
||||
state: absent
|
||||
when: not mediawiki_enabled
|
||||
|
||||
- name: Restart 'nginx' systemd service
|
||||
systemd:
|
||||
name: nginx
|
||||
state: restarted
|
Loading…
Reference in a new issue