summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorSilvio Rhatto <rhatto@riseup.net>2013-04-12 17:12:53 -0300
committerSilvio Rhatto <rhatto@riseup.net>2013-04-12 17:12:53 -0300
commit1be2228d5650b42d77774992ebaa3ccbe822ce35 (patch)
tree6336b151e1d756450c8114f39706222187f9af1b /manifests
downloadpuppet-database-1be2228d5650b42d77774992ebaa3ccbe822ce35.tar.gz
puppet-database-1be2228d5650b42d77774992ebaa3ccbe822ce35.tar.bz2
Initial import
Diffstat (limited to 'manifests')
-rw-r--r--manifests/config.pp10
-rw-r--r--manifests/init.pp29
-rw-r--r--manifests/instance.pp26
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}@%"],
+ }
+ }
+}