$svn_root = "/var/lib/svn"
$trac_root = "/var/lib/trac"
class subversion {
package { "subversion": ensure => installed }
class client {
...
}
class server {
file { $svn_root:
ensure => directory,
owner => www-data,
group => www-data,
mode => 755,
}
...
}
define repo() {
exec { "svnadmin create $svn_root/${name}":
creates => "$svn_root/${name}",
require => Package["subversion"],
notify => Exec["chown -R www-data $svn_root/${name}"],
}
exec { "chown -R www-data $svn_root/${name}":
refreshonly => true,
}
}
}
class trac {
package { "trac": ensure => installed }
class server {
file { $trac_root:
ensure => directory,
owner => www-data,
group => www-data,
mode => 755,
}
}
define instance() {
exec { "trac-admin $trac_root/${name} initenv ${name} sqlite:db/trac.db svn $svn_root/${name}":
creates => "$trac_root/${name}",
require => Package["trac"],
notify => Exec["chown -R www-data $trac_root/${name}"],
}
exec { "chown -R www-data $trac_root/${name}":
refreshonly => true,
}
file { "$trac_root/${name}/conf/trac.ini":
ensure => present,
mode => 444,
owner => www-data,
group => root,
content => template("subversion/trac/${name}.ini.erb"),
require => Exec["trac-admin $trac_root/${name} initenv ${name} sqlite:db/trac.db svn $svn_root/${name}"],
}
}
}