Index: modules/codereview/manifests/init.pp |
diff --git a/modules/codereview/manifests/init.pp b/modules/codereview/manifests/init.pp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..c8c2c4e55cd78ade0729d496075e800e41acc3be |
--- /dev/null |
+++ b/modules/codereview/manifests/init.pp |
@@ -0,0 +1,89 @@ |
+# == Class: codereview |
+# |
+# A codereview server setup based on Rietveld and PostgreSQL. |
+# |
+# === Parameters: |
+# |
+# [*domain*] |
+# The auhority part of the URL the Rietveld instance is associated with. |
+# |
+# [*is_default*] |
+# Whether the $domain shall become set up as default (or fallback) |
+# within the HTTP daemon. |
+# |
+# [*certificate*] |
+# The name of the SSL certificate file within modules/private/files, if |
+# any. Requires a private_key as well. |
+# |
+# [*private_key*] |
+# The name of the private key file within modules/private/files, if any. |
+# Requires a certificate as well. |
+# |
+# [*database_account*] |
+# The name of the database account Rietveld shall use. |
+# |
+# [*database_password*] |
+# The password identifying Rietveld with the database. |
+# |
+# [*database_name*] |
+# The name of the Rietveld database within the RDBMS. |
+# |
+# === Examples: |
+# |
+# class {'codereview': |
+# domain => 'localhost', |
+# database_name => 'codereview', |
+# database_account => 'codereview', |
+# database_password => 'swordfish', |
+# } |
+# |
+class codereview( |
+ $domain, |
+ $is_default = false, |
+ $certificate = undef, |
+ $private_key = undef, |
+ $database_account = hiera('codereview::database_account', 'rietveld'), |
Felix Dahlke
2015/04/22 05:32:23
Should we really use defaults here? Seems preferab
mathias
2015/04/23 16:28:49
See my other comment regarding the rietveld parame
|
+ $database_password = hiera('codereview::database_password', 'changeme'), |
+ $database_name = hiera('codereview::database_name', 'codereview'), |
+) { |
+ |
+ class {'postgresql::server': |
Felix Dahlke
2015/04/22 05:32:23
Isn't this just an "include" then?
mathias
2015/04/23 16:28:49
You're right, it makes more sense to use an includ
|
+ } |
+ |
+ postgresql::server::database {$database_name: |
+ } |
+ -> |
+ postgresql::server::role {$database_account: |
+ db => $database_name, |
+ password_hash => postgresql_password($database_account, $database_password), |
+ login => true, |
+ superuser => false, |
+ } |
+ -> |
+ postgresql::server::database_grant {$database_account: |
+ db => $database_name, |
+ privilege => 'ALL', |
+ role => $database_account, |
+ } |
+ |
+ class {'rietveld': |
+ domain => $domain, |
+ certificate => $certificate, |
+ private_key => $private_key, |
+ is_default => $is_default, |
+ database => { |
+ 'engine' => 'postgresql_psycopg2', |
+ 'name' => $database_name, |
+ 'user' => $database_account, |
+ 'password' => $database_password, |
+ }, |
+ } |
+ |
+ package {['python-psycopg2']: |
+ ensure => installed, |
+ } |
+ |
+ Class['rietveld'] <- Package['python-psycopg2'] |
+ Class['rietveld'] <- Postgresql::Server::Database_grant[$database_account] |
+} |
+ |