summaryrefslogtreecommitdiff
path: root/manifests/server
diff options
context:
space:
mode:
authormh <mh@immerda.ch>2009-10-03 15:19:11 +0200
committermh <mh@immerda.ch>2009-10-03 15:19:11 +0200
commit647d5fda99f79f6af3d14765092510c19801e8d0 (patch)
tree77dc0a493fae932cbc8d9fc51fef169fd33804ce /manifests/server
parent8100f49e3255ceda036dd107d127aebd914ca054 (diff)
refactor classes
Diffstat (limited to 'manifests/server')
-rw-r--r--manifests/server/base.pp71
-rw-r--r--manifests/server/centos.pp9
-rw-r--r--manifests/server/clientpackage.pp15
-rw-r--r--manifests/server/gentoo.pp6
4 files changed, 101 insertions, 0 deletions
diff --git a/manifests/server/base.pp b/manifests/server/base.pp
new file mode 100644
index 0000000..bc4380f
--- /dev/null
+++ b/manifests/server/base.pp
@@ -0,0 +1,71 @@
+class mysql::server::base {
+ package { mysql-server:
+ ensure => present,
+ }
+ file{'/etc/mysql/my.cnf':
+ source => [
+ "puppet://$server/files/mysql/${fqdn}/my.cnf",
+ "puppet://$server/files/mysql/my.cnf",
+ "puppet://$server/mysql/config/my.cnf.${operatingsystem}",
+ "puppet://$server/mysql/config/my.cnf"
+ ],
+ ensure => file,
+ require => Package[mysql-server],
+ notify => Service[mysql],
+ owner => root, group => 0, mode => 0644;
+ }
+ file{'/var/lib/mysql/data':
+ ensure => directory,
+ require => Package[mysql-server],
+ before => File['/etc/mysql/my.cnf'],
+ owner => mysql, group => mysql, mode => 0755;
+ }
+
+ file{'/var/lib/mysql/data/ibdata1':
+ ensure => file,
+ require => Package[mysql-server],
+ before => File['/opt/bin/setmysqlpass.sh'],
+ owner => mysql, group => mysql, mode => 0660;
+ }
+
+ case $mysql_rootpw {
+ '': { fail("You need to define a mysql root password! Please set \$mysql_rootpw in your site.pp or host config") }
+ }
+ file{'/opt/bin/setmysqlpass.sh':
+ source => "puppet://$server/mysql/config/${operatingsystem}/setmysqlpass.sh",
+ require => Package[mysql-server],
+ owner => root, group => 0, mode => 0500;
+ }
+ file {'/root/.my.cnf':
+ content => template('mysql/root/my.cnf.erb'),
+ require => [ Package[mysql-server] ],
+ owner => root, group => 0, mode => 0400;
+ }
+ exec{'set_mysql_rootpw':
+ command => "/opt/bin/setmysqlpass.sh $mysql_rootpw",
+ unless => "mysqladmin -uroot status > /dev/null",
+ require => [ File['/opt/bin/setmysqlpass.sh'], Package[mysql-server] ],
+ }
+ file{'/etc/cron.d/mysql_backup.cron':
+ source => [ "puppet://$server/mysql/backup/mysql_backup.cron.${operatingsystem}",
+ "puppet://$server/mysql/backup/mysql_backup.cron" ],
+ require => [ Exec[set_mysql_rootpw], File['/root/.my.cnf'] ],
+ owner => root, group => 0, mode => 0600;
+ }
+ file{'/etc/cron.weekly/mysql_optimize_tables.rb':
+ source => "puppet://$server/mysql/optimize/optimize_tables.rb",
+ require => [ Exec[set_mysql_rootpw], File['/root/.my.cnf'] ],
+ owner => root, group => 0, mode => 0700;
+ }
+ service {mysql:
+ ensure => running,
+ enable => true,
+ hasstatus => true,
+ require => Package[mysql],
+ }
+
+ # Collect all databases and users
+ Mysql_database<<| tag == "mysql_${fqdn}" |>>
+ Mysql_user<<| tag == "mysql_${fqdn}" |>>
+ Mysql_grant<<| tag == "mysql_${fqdn}" |>>
+}
diff --git a/manifests/server/centos.pp b/manifests/server/centos.pp
new file mode 100644
index 0000000..98febb7
--- /dev/null
+++ b/manifests/server/centos.pp
@@ -0,0 +1,9 @@
+class mysql::server::centos inherits mysql::server::clientpackage {
+ Service[mysql]{
+ name => 'mysqld',
+ }
+ File['/etc/mysql/my.cnf']{
+ path => '/etc/my.cnf',
+ }
+
+}
diff --git a/manifests/server/clientpackage.pp b/manifests/server/clientpackage.pp
new file mode 100644
index 0000000..cf3bf57
--- /dev/null
+++ b/manifests/server/clientpackage.pp
@@ -0,0 +1,15 @@
+class mysql::server::clientpackage inherits mysql::server::base {
+ include mysql::client
+ File['/opt/bin/setmysqlpass.sh']{
+ require +> Package[mysql],
+ }
+ File['/root/.my.cnf']{
+ require +> Package[mysql],
+ }
+ Exec['set_mysql_rootpw']{
+ require +> Package[mysql],
+ }
+ File['/etc/cron.d/mysql_backup.cron']{
+ require +> Package[mysql],
+ }
+}
diff --git a/manifests/server/gentoo.pp b/manifests/server/gentoo.pp
new file mode 100644
index 0000000..b45394d
--- /dev/null
+++ b/manifests/server/gentoo.pp
@@ -0,0 +1,6 @@
+class mysql::server::gentoo inherits mysql::server::base {
+ Package[mysql-server] {
+ alias => 'mysql',
+ category => 'dev-db',
+ }
+}