## module url :https://github.com/puppetlabs/puppetlabs-mysql #################
node 'puppetagent.domain.local'{
## Mysql Repo Install ##########################################################
yumrepo { 'mysql56-community':
descr => 'CentOS $releasever - mysql56-community',
baseurl => 'http://repo.mysql.com/yum/mysql-5.6-community/el/6/$basearch/',
gpgkey => 'file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql',
enabled => 1,
gpgcheck => 1,
}->
file { '/etc/pki/rpm-gpg/RPM-GPG-KEY-mysql':
owner => 'root',
group => 'root',
mode => '600',
content => template("mysql/RPM-GPG-KEY-mysql"),
}
## Mysql Server Install ########################################################
class {'mysql::server':
package_name => 'mysql-community-server',
package_ensure => '5.6.32-2.el6',
service_name => 'mysqld',
config_file => '/etc/my.cnf',
restart => false,
service_enabled => true,
service_manage => true,
includedir => '/etc/my.cnf.d',
create_root_user => true,
create_root_my_cnf => true,
root_password => 'reload1',
remove_default_accounts => true,
override_options => {
client => {
port => '3306',
socket => '/var/lib/mysql/mysql.sock'
},
mysqld => {
## General #########################################################
user => 'mysql',
port => '3306',
socket => '/var/lib/mysql/mysql.sock',
pid-file => '/var/run/mysqld/mysqld.pid',
default-storage-engine => 'InnoDB',
character-set-server => 'latin5',
server-id => '1',
## Loging ##########################################################
log_warnings => '1',
log-error => '/var/lib/mysql/error.log',
general_log => '0',
general_log_file => '/var/lib/mysql/general.log',
## Safety ##########################################################
max_allowed_packet => '2MB',
old_passwords => '1',
symbolic-links => '0' ,
explicit_defaults_for_timestamp => '',
skip-name-resolve => '',
## Data & Tmp Directory #############################################
datadir => '/var/lib/mysql/',
tmpdir => '/var/lib/mysql/',
## Connection and Thread variables ##################################
max_connections => '25',
back_log => '110',
thread_cache_size => '10',
## Query Cache #######################################################
query_cache_type => '1',
query_cache_size => '8MB',
query_cache_limit => '8MB',
## Session & Memory Variables #########################################
sort_buffer_size => '2MB',
tmp_table_size => '16MB',
max_heap_table_size => '16MB',
read_buffer_size => '131072',
read_rnd_buffer_size => '262144',
## Other Buffers and Caches ###########################################
table_definition_cache => '656',
table_open_cache => '512',
join_buffer_size => '256K',
## Slow Log ##########################################################
log-queries-not-using-indexes => '0',
slow_query_log => '1',
long_query_time => '3',
slow-query-log-file => '/var/lib/mysql/logs/slow.log',
## INNODB #############################################################
innodb_data_home_dir => '/var/lib/mysql/',
innodb_log_files_in_group => '2',
innodb_log_group_home_dir => '/var/lib/mysql/',
innodb-log-file-size => '128M',
innodb_log_buffer_size => '8M',
innodb-buffer-pool-size => '1456MB',
innodb-buffer-pool-instances => '4',
innodb-read-io-threads => '8',
innodb-write-io-threads => '8',
innodb-file-per-table => '1',
innodb_additional_mem_pool_size => '8MB',
innodb_file_per_table => '1',
innodb_flush_method => 'O_DIRECT',
## Myisam #############################################################
myisam_sort_buffer_size => '32MB',
key_buffer_size => '64MB',
myisam-recover => 'FORCE,BACKUP',
## Master Replication #################################################
#log_bin => '/var/lib/mysql/mysql-bin',
#expire_logs_days => '7',
#sync_binlog => '1',
#binlog_format => 'MIXED',
#binlog-ignore-db => 'mysql',
#binlog-ignore-db => 'information_schema',
#binlog-ignore-db => 'performance_schema',
#binlog-ignore-db => 'backup',
#binlog-ignore-db => 'test',
#master_info_repository => 'TABLE',
#relay_log_info_repository => 'TABLE',
## Slave Replication ###################################################
#relay_log => '/var/lib/mysql/mysql-relay-bin',
#slave_net_timeout => '60',
#read_only => '1',
#master_info_repository = TABLE,
#relay_log_info_repository = TABLE,
#replicate-ignore-table => 'dbname.tablename',
},
mysqldump => {
max_allowed_packet => '16MB',
},
mysqld_safe => {
log-error => '/var/lib/mysql/error.log',
pid-file => '/var/lib/mysql/mysqld.pid',
socket => '/var/lib/mysql/mysql.sock',
},
}
}
## Mysql Backup Job Create ###################################################
class { 'mysql::server::backup':
ensure => 'present',
backupuser => 'backupuser',
backuppassword => 'reload',
backupdir => '/data/mysql_backup',
backupdirmode => '700',
backupdirowner => 'root',
backupdirgroup => 'root',
backupdatabases => ['mysql', 'test'],
backuprotate => 7,
backupcompress => true,
file_per_database => true,
time => ['3', '45'],
}
## Mysql Tuning Script Create 'perl /usr/local/bin/mysqltuner' ##############
class { 'mysql::server::mysqltuner':
ensure => 'present',
version => 'master',
}
## Mysql Monitor User Create ################################################
class { 'mysql::server::monitor':
mysql_monitor_username => 'monitoruser',
mysql_monitor_password => 'reload',
mysql_monitor_hostname => '192.168.177.158',
}
## Dependencies definition ################################################
Yumrepo['mysql56-community']->
Class['mysql::server']
}