vm/chef/cookbooks/piwik/recipes/default.rb (74 lines of code) (raw):

# Copyright 2024 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. ENV['DEBIAN_FRONTEND'] = 'noninteractive' include_recipe 'apache2' include_recipe 'apache2::rm-index' include_recipe 'apache2::security-config' include_recipe 'php74' include_recipe 'php74::module_dom' include_recipe 'php74::module_gd' include_recipe 'php74::module_libapache2' include_recipe 'php74::module_mbstring' include_recipe 'php74::module_mysql' include_recipe 'mysql::version-8.0-embedded' include_recipe 'piwik::ospo' remote_file 'download_matomo' do path '/tmp/matomo.tar.gz' source 'https://builds.matomo.org/matomo.tar.gz' owner 'root' group 'root' mode '0640' action :create end execute 'untar_matomo_tar ' do cwd '/tmp' command 'tar xzf matomo.tar.gz -C /var/www/html --strip-components 1' end # Preparing Piwik bash 'configure_piwik_for_first_use' do user 'root' code <<-EOH rm -Rf /var/www/html/plugins/Morpheus/icons/submodules mkdir /var/www/html/tmp/assets chmod -R 0755 /var/www/html/tmp/assets mkdir /var/www/html/tmp/cache chmod -R 0755 /var/www/html/tmp/cache mkdir /var/www/html/tmp/logs chmod -R 0755 /var/www/html/tmp/logs mkdir /var/www/html/tmp/tcpdf chmod -R 0755 /var/www/html/tmp/tcpdf mkdir /var/www/html/tmp/templates_c chmod -R 0755 /var/www/html/tmp/templates_c mkdir /var/www/html/tmp/cache/tracker/ chmod -R 0755 /var/www/html/tmp/cache/tracker/ chown -R www-data:www-data /var/www/html EOH end # Remove ExampleUI plugin having icons with license telling that they are free # for non-commercial use only. directory 'remove_exampleui_plugin' do path '/var/www/html/plugins/ExampleUI' recursive true action :delete end bash 'prepare_database_configuration' do user 'root' code <<-EOH mysql -u root -e "CREATE USER '$user'@'localhost' IDENTIFIED BY '$pass'" mysql -u root -e "CREATE DATABASE $dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci" mysql -u root -e "GRANT ALL PRIVILEGES ON $dbname.* TO '$user'@'localhost'" mysql -u root -e "FLUSH PRIVILEGES" EOH flags '-eu' environment({ 'user' => node['matomo']['db']['username'], 'pass' => node['matomo']['db']['password'], 'dbname' => node['matomo']['db']['name'], }) end template '/etc/apache2/sites-available/piwik.conf' do source 'piwik.conf.erb' end execute 'a2ensite piwik' service 'apache2' do action :restart end c2d_startup_script 'piwik' do source 'piwik.erb' action :template end