|
|
|
---
|
|
|
|
|
|
|
|
- name: Install needed tools
|
|
|
|
yum:
|
|
|
|
name:
|
|
|
|
- unzip
|
|
|
|
- mariadb
|
|
|
|
- acl
|
|
|
|
- php{{ matomo_php_version }}-php-pecl-geoip
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Download Matomo
|
|
|
|
get_url:
|
|
|
|
url: "{{ matomo_archive_url }}"
|
|
|
|
dest: "{{ matomo_root_dir }}/tmp/"
|
|
|
|
checksum: "sha1:{{ matomo_archive_sha1 }}"
|
|
|
|
when: matomo_install_mode != 'none'
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Extract matomo archive
|
|
|
|
unarchive:
|
|
|
|
src: "{{ matomo_root_dir }}/tmp/matomo-{{ matomo_version }}.tar.gz"
|
|
|
|
dest: "{{ matomo_root_dir }}/tmp"
|
|
|
|
remote_src: yes
|
|
|
|
when: matomo_install_mode != 'none'
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Check if we have the list of core plugins
|
|
|
|
stat: path={{ matomo_root_dir }}/meta/core_plugins.txt
|
|
|
|
register: matomo_core_plugins_list
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Build a list of core plugins, which should never be removed
|
|
|
|
shell: find {{ matomo_root_dir }}/web/plugins/ -mindepth 1 -maxdepth 1 -type d -exec basename "{}" \; > {{ matomo_root_dir }}/meta/core_plugins.txt
|
|
|
|
when:
|
|
|
|
- matomo_install_mode == 'none'
|
|
|
|
- not matomo_core_plugins_list.stat.exists
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Build a list of core plugins, which should never be removed
|
|
|
|
shell: find {{ matomo_root_dir }}/tmp/matomo/plugins/ -mindepth 1 -maxdepth 1 -type d -exec basename "{}" \; > {{ matomo_root_dir }}/meta/core_plugins.txt
|
|
|
|
when: matomo_install_mode != "none"
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Remove known non core plugins from the list
|
|
|
|
lineinfile: path={{ matomo_root_dir }}/meta/core_plugins.txt regexp='^{{ item }}$' state=absent
|
|
|
|
with_items: "{{ matomo_plugins.keys() | list }}"
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Read core plugins list
|
|
|
|
command: cat {{ matomo_root_dir }}/meta/core_plugins.txt
|
|
|
|
register: matomo_core_plugins
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: List previously installed plugins
|
|
|
|
shell: find {{ matomo_root_dir }}/archives/{{ matomo_current_version }}/web/plugins/ -mindepth 1 -maxdepth 1 -type d -exec basename "{}" \;
|
|
|
|
register: matomo_previous_plugins
|
|
|
|
when: matomo_install_mode == "upgrade"
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Move matomo to the web directory
|
|
|
|
synchronize:
|
|
|
|
src: "{{ matomo_root_dir }}/tmp/matomo/"
|
|
|
|
dest: "{{ matomo_root_dir }}/web/"
|
|
|
|
recursive: True
|
|
|
|
delete: True
|
|
|
|
rsync_opts:
|
|
|
|
- '--exclude=config/config.ini.php'
|
|
|
|
delegate_to: "{{ inventory_hostname }}"
|
|
|
|
when: matomo_install_mode != "none"
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Restore previous unmanaged plugins
|
|
|
|
synchronize:
|
|
|
|
src: "{{ matomo_root_dir }}/archives/{{ matomo_current_version }}/web/plugins/{{ item }}"
|
|
|
|
dest: "{{ matomo_root_dir }}/web/plugins/"
|
|
|
|
delegate_to: "{{ inventory_hostname }}"
|
|
|
|
recursive: True
|
|
|
|
with_items: "{{ matomo_previous_plugins.stdout_lines }}"
|
|
|
|
when:
|
|
|
|
- matomo_install_mode == 'upgrade'
|
|
|
|
- not matomo_remove_unmanaged_plugins
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: List installed plugins
|
|
|
|
shell: find {{ matomo_root_dir }}/web/plugins/ -mindepth 1 -maxdepth 1 -type d -exec basename "{}" \;
|
|
|
|
register: matomo_current_plugins
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Disable unmanaged plugins
|
|
|
|
command: php{{ (matomo_php_version == '54') | ternary('',matomo_php_version) }} {{ matomo_root_dir }}/web/console plugin:deactivate {{ item }}
|
|
|
|
with_items: "{{ matomo_current_plugins.stdout_lines }}"
|
|
|
|
when:
|
|
|
|
- item not in matomo_plugins_to_install
|
|
|
|
- item not in matomo_core_plugins.stdout
|
|
|
|
- matomo_remove_unmanaged_plugins
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Remove unmanaged plugins
|
|
|
|
file: path={{ matomo_root_dir }}/web/plugins/{{ item }} state=absent
|
|
|
|
with_items: "{{ matomo_current_plugins.stdout_lines }}"
|
|
|
|
when:
|
|
|
|
- item not in matomo_plugins_to_install
|
|
|
|
- item not in matomo_core_plugins.stdout
|
|
|
|
- matomo_remove_unmanaged_plugins
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- import_tasks: ../includes/webapps_create_mysql_db.yml
|
|
|
|
vars:
|
|
|
|
- db_name: "{{ matomo_db_name }}"
|
|
|
|
- db_user: "{{ matomo_db_user }}"
|
|
|
|
- db_server: "{{ matomo_db_server }}"
|
|
|
|
- db_pass: "{{ matomo_db_pass }}"
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- set_fact: matomo_db_created={{ db_created }}
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Copy the DB structure
|
|
|
|
copy: src=matomo.sql dest={{ matomo_root_dir }}/tmp/matomo.sql
|
|
|
|
when: matomo_install_mode == 'install'
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Init the database
|
|
|
|
mysql_db:
|
|
|
|
state: import
|
|
|
|
login_host: "{{ matomo_db_server }}"
|
|
|
|
login_user: sqladmin
|
|
|
|
login_password: "{{ mysql_admin_pass }}"
|
|
|
|
name: "{{ matomo_db_name }}"
|
|
|
|
target: "{{ matomo_root_dir }}/tmp/matomo.sql"
|
|
|
|
when:
|
|
|
|
- matomo_install_mode == 'install'
|
|
|
|
- matomo_db_created.changed
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Build a list of installed plugins
|
|
|
|
shell: find {{ matomo_root_dir }}/web/plugins -maxdepth 1 -mindepth 1 -type d -exec basename "{}" \;
|
|
|
|
register: matomo_installed_plugins
|
|
|
|
changed_when: False
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Download plugins
|
|
|
|
get_url:
|
|
|
|
url: http://plugins.matomo.org/api/2.0/plugins/{{ item }}/download/{{ matomo_plugins[item].version }}
|
|
|
|
dest: "{{ matomo_root_dir }}/tmp"
|
|
|
|
checksum: "sha1:{{ matomo_plugins[item].sha1 }}"
|
|
|
|
when: item not in matomo_installed_plugins.stdout_lines
|
|
|
|
with_items: "{{ matomo_plugins_to_install }}"
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Extract plugins
|
|
|
|
unarchive:
|
|
|
|
src: "{{ matomo_root_dir }}/tmp/{{ item }}-{{ matomo_plugins[item].version }}.zip"
|
|
|
|
dest: "{{ matomo_root_dir }}/web/plugins/"
|
|
|
|
remote_src: yes
|
|
|
|
when: item not in matomo_installed_plugins.stdout_lines
|
|
|
|
with_items: "{{ matomo_plugins_to_install }}"
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Deploy backup scripts
|
|
|
|
template: src={{ item }}-backup.j2 dest=/etc/backup/{{ item }}.d/matomo_{{ matomo_id }} mode=750
|
|
|
|
loop:
|
|
|
|
- pre
|
|
|
|
- post
|
|
|
|
tags: matomo
|
|
|
|
|
|
|
|
- name: Setup cron task
|
|
|
|
cron:
|
|
|
|
name: matomo_{{ matomo_id }}
|
|
|
|
special_time: hourly
|
|
|
|
user: "{{ matomo_php_user }}"
|
|
|
|
job: "/bin/php{{ (matomo_php_version == '54') | ternary('',matomo_php_version) }} {{ matomo_root_dir }}/web/console core:archive --url={{ matomo_public_url }} 2>&1 | /bin/systemd-cat -t matomo_{{ matomo_id }}"
|
|
|
|
cron_file: matomo_{{ matomo_id }}
|
|
|
|
tags: matomo
|
|
|
|
|