diff options
author | Silvio Rhatto <rhatto@riseup.net> | 2013-04-12 17:12:53 -0300 |
---|---|---|
committer | Silvio Rhatto <rhatto@riseup.net> | 2013-04-12 17:12:53 -0300 |
commit | 1be2228d5650b42d77774992ebaa3ccbe822ce35 (patch) | |
tree | 6336b151e1d756450c8114f39706222187f9af1b /manifests | |
download | puppet-database-1be2228d5650b42d77774992ebaa3ccbe822ce35.tar.gz puppet-database-1be2228d5650b42d77774992ebaa3ccbe822ce35.tar.bz2 |
Initial import
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/config.pp | 10 | ||||
-rw-r--r-- | manifests/init.pp | 29 | ||||
-rw-r--r-- | manifests/instance.pp | 26 |
3 files changed, 65 insertions, 0 deletions
diff --git a/manifests/config.pp b/manifests/config.pp new file mode 100644 index 0000000..1e878b8 --- /dev/null +++ b/manifests/config.pp @@ -0,0 +1,10 @@ +define database::config($value) { + file { "/etc/mysql/conf.d/${name}.cnf": + ensure => present, + owner => root, + group => root, + mode => 0644, + content => "[mysqld]\n${name} = ${value}\n", + notify => Service['mysql'], + } +} diff --git a/manifests/init.pp b/manifests/init.pp new file mode 100644 index 0000000..f361742 --- /dev/null +++ b/manifests/init.pp @@ -0,0 +1,29 @@ +class database { + class { 'mysql::server': } + + # See http://www.smilecouple.org/2011/03/01/fix-out-of-resource-problem-with-mysql + file { '/etc/security/limits.d/mysql.conf': + ensure => absent, + owner => root, + group => root, + mode => 0644, + content => "mysql soft nofile 24000\nmysql hard nofile 32000\n", + } + + # Avoid Errcode: 24 + file { '/etc/mysql/conf.d/mysqld_open_files_limit.cnf': + ensure => present, + owner => root, + group => root, + mode => 0644, + content => "[mysqld]\nopen-files-limit = 500000\n", + notify => Service['mysql'], + } + + backupninja::mysql { "all_databases": + backupdir => '/var/backups/mysql', + compress => true, + sqldump => true, + sqldumpoptions => '--lock-tables --complete-insert --add-drop-table --quick --quote-names --single-transaction', + } +} diff --git a/manifests/instance.pp b/manifests/instance.pp new file mode 100644 index 0000000..2523e28 --- /dev/null +++ b/manifests/instance.pp @@ -0,0 +1,26 @@ +# Database definitions +define database::instance( + $password, + $ensure = 'present', + $privileges = "all" +) { + include mysql::server + + mysql_database { "${name}": + ensure => $ensure, + require => Service['mysql'], + } + + mysql_user { "${name}@%": + ensure => $ensure, + password_hash => mysql_password($password), + require => Mysql_database["${name}"], + } + + if $ensure == 'present' { + mysql_grant { "${name}@%/${name}": + privileges => $privileges, + require => Mysql_user["${name}@%"], + } + } +} |