aboutsummaryrefslogtreecommitdiff
path: root/manifests
diff options
context:
space:
mode:
authorSaz <me@saz.sh>2011-11-07 18:36:31 +0100
committerSaz <me@saz.sh>2011-11-07 18:36:31 +0100
commit7c77a722a783adfb80e640392018e0fe5dd987d8 (patch)
treec10dde4f0c6468a87dd1174edf9aa7dd8624aad0 /manifests
downloadpuppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.gz
puppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.bz2
initial release
Diffstat (limited to 'manifests')
-rw-r--r--manifests/config.pp23
-rw-r--r--manifests/init.pp16
-rw-r--r--manifests/install.pp5
-rw-r--r--manifests/params.pp22
-rw-r--r--manifests/service.pp9
5 files changed, 75 insertions, 0 deletions
diff --git a/manifests/config.pp b/manifests/config.pp
new file mode 100644
index 0000000..71e6bd8
--- /dev/null
+++ b/manifests/config.pp
@@ -0,0 +1,23 @@
+class pureftpd::config {
+ file { "${pureftpd::params::config_dir}conf":
+ ensure => directory,
+ recurse => true,
+ purge => true,
+ force => true,
+ owner => root,
+ group => root,
+ source => $source ? {
+ undef => "puppet:///modules/${module_name}/${pureftpd::params::config_source}",
+ default => $pureftpd::config_source,
+ },
+ require => Class['pureftpd::install'],
+ }
+
+ file { $pureftpd::params::config_default_file:
+ ensure => present,
+ owner => root,
+ group => root,
+ content => template("${module_name}/default_config.erb"),
+ require => Class['pureftpd::install'],
+ }
+}
diff --git a/manifests/init.pp b/manifests/init.pp
new file mode 100644
index 0000000..6590f4b
--- /dev/null
+++ b/manifests/init.pp
@@ -0,0 +1,16 @@
+# Class: pureftpd
+#
+# This module manages pureftpd
+#
+# Parameters:
+#
+# Actions:
+#
+# Requires:
+#
+# Sample Usage:
+#
+# [Remember: No empty lines between comments and class definition]
+class pureftpd ($auth_type = undef, $config_source = undef, $virtualchroot = false) {
+ include pureftpd::params, pureftpd::install, pureftpd::config, pureftpd::service
+}
diff --git a/manifests/install.pp b/manifests/install.pp
new file mode 100644
index 0000000..8bf9a98
--- /dev/null
+++ b/manifests/install.pp
@@ -0,0 +1,5 @@
+class pureftpd::install {
+ package { $pureftpd::params::package_name:
+ ensure => present,
+ }
+}
diff --git a/manifests/params.pp b/manifests/params.pp
new file mode 100644
index 0000000..911da7e
--- /dev/null
+++ b/manifests/params.pp
@@ -0,0 +1,22 @@
+class pureftpd::params {
+ case $operatingsystem {
+ /(Ubuntu|Debian)/: {
+ case $auth_type {
+ 'mysql': { $real_auth_type = '-mysql' }
+ 'ldap': { $real_auth_type = '-ldap' }
+ 'postgresql': { $real_auth_type = '-postgresql' }
+ default: { $real_auth_type = '' }
+ }
+ $package_name = "pure-ftpd${real_auth_type}"
+ $config_dir = '/etc/pure-ftpd/'
+ $service_name = "pure-ftpd${real_auth_type}"
+ $config_default_file = '/etc/default/pure-ftpd-common'
+ $config_source = 'debian'
+ }
+ }
+
+ case $pureftpd::virtualchroot {
+ true: { $real_virtualchroot = true }
+ default: { $real_virtualchroot = false }
+ }
+}
diff --git a/manifests/service.pp b/manifests/service.pp
new file mode 100644
index 0000000..039ca4f
--- /dev/null
+++ b/manifests/service.pp
@@ -0,0 +1,9 @@
+class pureftpd::service {
+ service { $pureftpd::params::service_name:
+ ensure => running,
+ enable => true,
+ hasrestart => true,
+ hasstatus => false,
+ require => Class['pureftpd::config'],
+ }
+}