diff options
author | Saz <me@saz.sh> | 2011-11-07 18:36:31 +0100 |
---|---|---|
committer | Saz <me@saz.sh> | 2011-11-07 18:36:31 +0100 |
commit | 7c77a722a783adfb80e640392018e0fe5dd987d8 (patch) | |
tree | c10dde4f0c6468a87dd1174edf9aa7dd8624aad0 /manifests | |
download | puppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.gz puppet-pureftpd-7c77a722a783adfb80e640392018e0fe5dd987d8.tar.bz2 |
initial release
Diffstat (limited to 'manifests')
-rw-r--r-- | manifests/config.pp | 23 | ||||
-rw-r--r-- | manifests/init.pp | 16 | ||||
-rw-r--r-- | manifests/install.pp | 5 | ||||
-rw-r--r-- | manifests/params.pp | 22 | ||||
-rw-r--r-- | manifests/service.pp | 9 |
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'], + } +} |