Knife-Zero doesn't include Berkshelf support, so vendoring everything in the repo is convenient again
		
			
				
	
	
		
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			3.1 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
#
 | 
						|
# Cookbook Name:: mariadb
 | 
						|
# Recipe:: config
 | 
						|
#
 | 
						|
# Copyright 2014, blablacar.com
 | 
						|
#
 | 
						|
# 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.
 | 
						|
#
 | 
						|
 | 
						|
template node['mariadb']['configuration']['path'] + '/my.cnf' do
 | 
						|
  source 'my.cnf.erb'
 | 
						|
  owner 'root'
 | 
						|
  group 'root'
 | 
						|
  mode '0644'
 | 
						|
end
 | 
						|
 | 
						|
innodb_options = {}
 | 
						|
 | 
						|
innodb_options['comment1'] = '#'
 | 
						|
innodb_options['comment2'] = '# * InnoDB'
 | 
						|
innodb_options['comment3'] = '#'
 | 
						|
innodb_options['comment4'] = '# InnoDB is enabled by default with a 10MB ' \
 | 
						|
  'datafile in /var/lib/mysql/.'
 | 
						|
innodb_options['comment5'] = '# Read the manual for more InnoDB ' \
 | 
						|
  'related options. There are many!'
 | 
						|
 | 
						|
innodb_options['innodb_log_file_size_comment1'] = '# you can\'t just ' \
 | 
						|
  'change log file size, ' \
 | 
						|
  'requires special procedure'
 | 
						|
if node['mariadb']['innodb']['log_file_size'].empty?
 | 
						|
  innodb_options['innodb_log_file_size']  = '#innodb_log_file_size   = 50M'
 | 
						|
else
 | 
						|
  innodb_options['innodb_log_file_size'] = \
 | 
						|
    node['mariadb']['innodb']['log_file_size']
 | 
						|
end
 | 
						|
if node['mariadb']['innodb']['bps_percentage_memory']
 | 
						|
  innodb_options['innodb_buffer_pool_size'] = (
 | 
						|
    (
 | 
						|
      node['mariadb']['innodb']['buffer_pool_size'].to_f *
 | 
						|
      (node['memory']['total'][0..-3].to_i / 1024)
 | 
						|
    ).round).to_s + 'M'
 | 
						|
else
 | 
						|
  innodb_options['innodb_buffer_pool_size'] = \
 | 
						|
    node['mariadb']['innodb']['buffer_pool_size']
 | 
						|
end
 | 
						|
innodb_options['innodb_log_buffer_size'] = \
 | 
						|
  node['mariadb']['innodb']['log_buffer_size']
 | 
						|
innodb_options['innodb_file_per_table']  = \
 | 
						|
  node['mariadb']['innodb']['file_per_table']
 | 
						|
innodb_options['innodb_open_files'] = node['mariadb']['innodb']['open_files']
 | 
						|
innodb_options['innodb_io_capacity']   = \
 | 
						|
  node['mariadb']['innodb']['io_capacity']
 | 
						|
innodb_options['innodb_flush_method']  = \
 | 
						|
  node['mariadb']['innodb']['flush_method']
 | 
						|
node['mariadb']['innodb']['options'].each do |key, value|
 | 
						|
  innodb_options[key] = value
 | 
						|
end
 | 
						|
 | 
						|
mariadb_configuration 'innodb' do
 | 
						|
  section 'mysqld'
 | 
						|
  option innodb_options
 | 
						|
  action :add
 | 
						|
end
 | 
						|
 | 
						|
replication_opts = {}
 | 
						|
 | 
						|
replication_opts['log_bin'] = node['mariadb']['replication']['log_bin']
 | 
						|
replication_opts['log_bin_index']    = \
 | 
						|
  node['mariadb']['replication']['log_bin_index']
 | 
						|
replication_opts['expire_logs_days'] = \
 | 
						|
  node['mariadb']['replication']['expire_logs_days']
 | 
						|
replication_opts['max_binlog_size']  = \
 | 
						|
  node['mariadb']['replication']['max_binlog_size']
 | 
						|
unless node['mariadb']['replication']['server_id'].empty?
 | 
						|
  replication_opts['server-id'] = node['mariadb']['replication']['server_id']
 | 
						|
end
 | 
						|
node['mariadb']['replication']['options'].each do |key, value|
 | 
						|
  replication_opts[key] = value
 | 
						|
end
 | 
						|
 | 
						|
mariadb_configuration 'replication' do
 | 
						|
  section 'mysqld'
 | 
						|
  option replication_opts
 | 
						|
  action :add
 | 
						|
end
 |