database: migrate galera config to a full template

This commit is contained in:
Sebastien Badia 2014-01-04 15:50:36 +01:00
parent 559407cc05
commit 22e0fd4d4b
3 changed files with 74 additions and 69 deletions

View File

@ -59,6 +59,9 @@ class privatecloud::database::sql (
'Debian': {
$package_name = 'mariadb-galera-server'
}
default: {
err "${::osfamily} not supported yet"
}
}
class { 'mysql::server':
@ -184,74 +187,7 @@ basedir = /usr
mysql::server::config{'basic_config':
notify_service => false,
notify => Exec['clean-mysql-binlog'],
settings => inline_template('
[mysqld]
max_connections = 1000
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 64M
thread_cache_size = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_limit = 1M
query_cache_size = 16M
myisam_recover = BACKUP
key_buffer_size = 16M
open-files-limit = 65535
table_open_cache = 500
table_definition_cache = 500
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
log_error = /var/log/mysql/error.log
long_query_time = 1
log_slow_verbosity = query_plan
innodb_buffer_pool_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_thread_concurrency = 48
innodb_file_per_table = 1
innodb_open_files = 65535
innodb_io_capacity = 1000
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_max_dirty_pages_pct = 50
binlog_format = ROW
innodb_autoinc_lock_mode = 2
innodb_locks_unsafe_for_binlog = 1
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "galera_cluster"
<%- if hostname != galera_master -%>
# This node is Galera Master
wsrep_cluster_address = "gcomm://<%= @galera_nextserver[@galera_master] %>"
<%- else -%>
# This node is not Galera Master
wsrep_cluster_address = "gcomm://"
<%- end -%>
wsrep_sst_auth = root:<%= scope.lookupvar("$mysql_password") %>
wsrep_certify_nonPK = 1
wsrep_convert_LOCK_to_trx = 0
wsrep_auto_increment_control = 1
wsrep_drupal_282555_workaround = 0
wsrep_causal_reads = 0
wsrep_sst_method = rsync
wsrep_node_address = "<%= @api_eth %>"
wsrep_node_incoming_address = "<%= @api_eth %>"
# this value here are used by /usr/bin/innobackupex
# and wsrep_sst_xtrabackup take only one configuration file and use the last one
# (/etc/mysql/my.cnf is not used)
datadir = /var/lib/mysql
tmpdir = /tmp
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 32M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2
'),
settings => template('privatecloud/database/mysql.conf.erb'),
}
exec{'clean-mysql-binlog':

View File

@ -63,7 +63,7 @@ describe 'privatecloud::database::sql' do
should contain_class('mysql::server').with(
:package_name => platform_params[:package_name],
:service_name => 'mysql',
:config_hash => { :bind_address => '10.0.0.1', :root_password => 'secrete' },
:config_hash => { 'bind_address' => '10.0.0.1', 'root_password' => 'secrete' },
:notify => 'Service[xinetd]'
)
end

View File

@ -0,0 +1,69 @@
# MANAGED BY PUPPET
# Module:: privatecloud::database::sql
#
[mysqld]
max_connections = 1000
connect_timeout = 5
wait_timeout = 600
max_allowed_packet = 64M
thread_cache_size = 128
sort_buffer_size = 4M
bulk_insert_buffer_size = 16M
tmp_table_size = 128M
max_heap_table_size = 128M
query_cache_limit = 1M
query_cache_size = 16M
myisam_recover = BACKUP
key_buffer_size = 16M
open-files-limit = 65535
table_open_cache = 500
table_definition_cache = 500
myisam_sort_buffer_size = 512M
concurrent_insert = 2
read_buffer_size = 2M
read_rnd_buffer_size = 1M
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
log_error = /var/log/mysql/error.log
long_query_time = 1
log_slow_verbosity = query_plan
innodb_buffer_pool_size = 64M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
innodb_thread_concurrency = 48
innodb_file_per_table = 1
innodb_open_files = 65535
innodb_io_capacity = 1000
innodb_file_format = Barracuda
innodb_file_format_max = Barracuda
innodb_max_dirty_pages_pct = 50
binlog_format = ROW
innodb_autoinc_lock_mode = 2
innodb_locks_unsafe_for_binlog = 1
wsrep_provider = /usr/lib/galera/libgalera_smm.so
wsrep_cluster_name = "galera_cluster"
<% if @hostname != @galera_master -%>
# This node is not Galera Master (connect wsrep to galera_master)
wsrep_cluster_address = "gcomm://<%= @galera_nextserver[0] %>"
<% else -%>
# This node is Galera Master (connect wsrep to localhost)
wsrep_cluster_address = "gcomm://"
<% end -%>
wsrep_sst_auth = root:<%= @mysql_password %>
wsrep_certify_nonPK = 1
wsrep_convert_LOCK_to_trx = 0
wsrep_auto_increment_control = 1
wsrep_drupal_282555_workaround = 0
wsrep_causal_reads = 0
wsrep_sst_method = rsync
wsrep_node_address = "<%= @api_eth %>"
wsrep_node_incoming_address = "<%= @api_eth %>"
# this value here are used by /usr/bin/innobackupex
# and wsrep_sst_xtrabackup take only one configuration file and use the last one
# (/etc/mysql/my.cnf is not used)
datadir = /var/lib/mysql
tmpdir = /tmp
innodb_flush_method = O_DIRECT
innodb_log_buffer_size = 32M
innodb_log_file_size = 256M
innodb_log_files_in_group = 2