vm/chef/cookbooks/moodle/recipes/default.rb (60 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. # Reference: https://docs.moodle.org/34/en/Installing_Moodle_on_Debian_based_distributions include_recipe 'apache2' include_recipe 'apache2::rm-index' include_recipe 'apache2::security-config' include_recipe 'mysql::version-8.0-embedded' include_recipe 'php81' include_recipe 'php81::module_curl' include_recipe 'php81::module_gd' include_recipe 'php81::module_intl' include_recipe 'php81::module_libapache2' include_recipe 'php81::module_mbstring' include_recipe 'php81::module_mysql' include_recipe 'php81::module_soap' include_recipe 'php81::module_xml' include_recipe 'php81::module_xmlrpc' include_recipe 'php81::module_zip' include_recipe 'moodle::ospo' remote_file '/tmp/moodle.tgz' do source "https://download.moodle.org/download.php/direct/stable#{node['moodle']['track']}/moodle-#{node['moodle']['version']}.tgz" action :create end bash 'configure moodle' do user 'root' cwd '/tmp' code <<-EOH # Extract to /var/www/html and skip moodle directory tar -xf moodle.tgz -C /var/www/html --strip-components 1 chown -R $user:$user /var/www/html/ mysql -u root -e "CREATE DATABASE $defdb" EOH environment({ 'user' => node['moodle']['user'], 'defdb' => node['moodle']['db']['name'], }) end directory '/var/www/moodledata' do owner node['moodle']['user'] group node['moodle']['group'] action :create mode '0755' end bash 'php configuration' do user 'root' code <<-EOH sed -i 's/^;max_input_vars = .*/max_input_vars = 5000/' /etc/php/*/apache2/php.ini sed -i 's/^;max_input_vars = .*/max_input_vars = 5000/' /etc/php/*/cli/php.ini a2enmod rewrite EOH end cron 'configure cron' do user node['moodle']['user'] minute '*/10' command 'php /var/www/html/admin/cli/cron.php > /dev/null' action :create end c2d_startup_script 'moodle' cookbook_file '/etc/apache2/sites-available/moodle.conf' do source 'moodle.conf' end execute 'enable moodle.conf' do command 'a2ensite moodle' end