class etherpad_lite::mysql( $database_password, $dbType = 'mysql', $database_user = 'eplite', $database_name = 'etherpad-lite' ) { include etherpad_lite package { 'mysql-server': ensure => present, } package { 'mysql-client': ensure => present, } service { 'mysql': ensure => running, enable => true, hasrestart => true, require => [ Package['mysql-server'], Package['mysql-client'] ], } file { "${etherpad_lite::base_install_dir}/etherpad-lite/create_database.sh": ensure => present, content => template('etherpad_lite/create_database.sh.erb'), group => $etherpad_lite::ep_user, mode => '0755', owner => $etherpad_lite::ep_user, replace => true, require => Class['etherpad_lite'] } file { "${etherpad_lite::base_install_dir}/etherpad-lite/create_user.sh": ensure => present, content => template('etherpad_lite/create_user.sh.erb'), group => $etherpad_lite::ep_user, mode => '0755', owner => $etherpad_lite::ep_user, replace => true, require => Class['etherpad_lite'] } exec { 'create-etherpad-lite-db': unless => "mysql --defaults-file=/etc/mysql/debian.cnf ${database_name}", path => [ '/bin', '/usr/bin' ], command => "${etherpad_lite::base_install_dir}/etherpad-lite/create_database.sh", require => [ Service['mysql'], File["${etherpad_lite::base_install_dir}/etherpad-lite/settings.json"], File["${etherpad_lite::base_install_dir}/etherpad-lite/create_database.sh"] ], before => Exec['grant-etherpad-lite-db'], } exec { 'grant-etherpad-lite-db': unless => "mysql -u${database_user} -p${database_password} ${database_name}", path => [ '/bin', '/usr/bin' ], command => "${etherpad_lite::base_install_dir}/etherpad-lite/create_user.sh", require => [ Service['mysql'], File["${etherpad_lite::base_install_dir}/etherpad-lite/settings.json"], File["${etherpad_lite::base_install_dir}/etherpad-lite/create_user.sh"] ], } } # vim:sw=2:ts=2:expandtab:textwidth=79