summaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
Diffstat (limited to 'manifests')
-rw-r--r--manifests/init.pp80
1 files changed, 80 insertions, 0 deletions
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000..180285b
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,80 @@
+class etherpad {
+ case $etherpad_db_password {
+ '': { fail("You need to define a mysql root password! Please set \$etherpad_db_password in your site.pp or host config") }
+ }
+
+ database::instance { "etherpad":
+ password => $etherpad_db_password,
+ }
+
+ user { "etherpad-lite":
+ ensure => present,
+ allowdupe => false,
+ }
+
+ group { "etherpad-lite":
+ ensure => present,
+ allowdupe => false,
+ }
+
+ package { 'npm':
+ ensure => present,
+ }
+
+ vcsrepo { "/var/lib/etherpad-lite":
+ ensure => present,
+ provider => git,
+ source => 'git://github.com/Pita/etherpad-lite.git',
+ revision => 'ddf1cd345c8516a77c1440b53ddc05279551db7b'
+ owner => 'etherpad-lite',
+ group => 'etherpad-lite',
+ require => [ User['etherpad-lite'], Group['etherpad-lite'] ],
+ notify => Service['etherpad-lite'],
+ }
+
+ file { '/etc/init.d/etherpad-lite':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 0755,
+ source => 'puppet:///modules/etherpad/init.d/etherpad-lite.sh',
+ require => Vcsrepo['/var/lib/etherpad-lite'],
+ }
+
+ file { '/var/log/etherpad-lite':
+ ensure => directory,
+ owner => 'etherpad-lite',
+ group => 'etherpad-lite',
+ mode => 0755,
+ require => [ User['etherpad-lite'], Group['etherpad-lite'] ],
+ }
+
+ file { '/etc/logrotate.d/etherpad-lite':
+ ensure => present,
+ owner => root,
+ group => root,
+ mode => 0644,
+ source => 'puppet:///modules/etherpad/logrotate.d/etherpad-lite',
+ require => File['/var/log/etherpad-lite'],
+ }
+
+ file { '/var/lib/etherpad-lite/settings.json':
+ ensure => present,
+ owner => 'etherpad-lite',
+ group => 'etherpad-lite',
+ mode => 0640,
+ content => template('etherpad/settings.json.erb'),
+ require => Vcsrepo['/var/lib/etherpad-lite'],
+ notify => Service['etherpad-lite'],
+ }
+
+ service { 'etherpad-lite':
+ enable => true,
+ ensure => running,
+ hasrestart => true,
+ hasstatus => true,
+ require => [ File['/etc/init.d/etherpad-lite', '/var/lib/etherpad-lite/settings.json'],
+ Mysql_database['etherpad-lite'], Mysql_user['etherpad-lite'],
+ Mysql_grant['etherpad-lite'], Package['npm'] ],
+ }
+}