Skip to content
Snippets Groups Projects
init.pp 1.36 KiB
Newer Older
Adam Lewenberg's avatar
Adam Lewenberg committed
#
# Suggested name for wallet object containing the database credentials:
# db/<group>/secure-afs-request/<dbname>
Adam Lewenberg's avatar
Adam Lewenberg committed
class secure_afs_request (
  Enum['present', 'absent'] $ensure = 'present',
  String                    $vhost  = 'secure-afs-request.example.com',
Adam Lewenberg's avatar
Adam Lewenberg committed
  #
  Enum['wallet', 'none']    $db_credentials_source = 'wallet',
  Optional[String]          $wallet_name   = undef,
Adam Lewenberg's avatar
Adam Lewenberg committed
) {

  # Install the software.
  package { 'secure-afs-request-web':
    ensure => $ensure,
  }

Adam Lewenberg's avatar
Adam Lewenberg committed
  # Install the database ini file
  case $db_credentials_source {
    'wallet': {
      if ($wallet_name != undef) {
        wallet { $wallet_name:
          ensure => $ensure,
          type   => 'file',
          path   => '/etc/secure-afs-request/database.ini',
          mode   => '0640',
          owner  => 'root',
          group  => 'www-data',
        }
      } else {
        crit('wallet_name not defined')
      }
    }
    'none': { }
    default: { crit('unknown value for db_credentials_source') }
  }

  # Install the Apache configuration.
  file { '/etc/apache2/sites-enabled/secure-afs-request.conf':
    ensure  => $ensure,
    content => template('secure_afs_request/etc/apache2/sites-available/secure-afs-request.conf.erb'),
    owner   => 'root',
    group   => 'root',
    mode    => '0755',
  }
Adam Lewenberg's avatar
Adam Lewenberg committed

  # Install the key-pair
  su_apache::cert::incommon { $vhost:
    ensure => $ensure,
  }

}