# == Class: etherpad_lite::apache # class etherpad_lite::apache ( $vhost_name = $::fqdn, $docroot = '/srv/etherpad-lite', $serveradmin = "webmaster@${::fqdn}", $ssl_cert_file = '', $ssl_key_file = '', $ssl_chain_file = '', $ssl_cert_file_contents = '', # If left empty puppet will not create file. $ssl_key_file_contents = '', # If left empty puppet will not create file. $ssl_chain_file_contents = '' # If left empty puppet will not create file. ) { package { 'ssl-cert': ensure => present, } include ::httpd ::httpd::vhost { $vhost_name: port => 443, docroot => $docroot, priority => '50', template => 'etherpad_lite/etherpadlite.vhost.erb', ssl => true, } if !defined(Mod['rewrite']) { httpd::mod { 'rewrite': ensure => present, } } if !defined(Mod['proxy']) { httpd::mod { 'proxy': ensure => present, } } if !defined(Mod['proxy_http']) { httpd::mod { 'proxy_http': ensure => present, } } file { '/etc/apache2': ensure => directory, owner => 'root', group => 'root', mode => '0755', } if ($::lsbdistcodename == 'precise') { file { '/etc/apache2/conf.d': ensure => directory, owner => 'root', group => 'root', mode => '0755', require => File['/etc/apache2'], } file { '/etc/apache2/conf.d/connection-tuning': ensure => present, owner => 'root', group => 'root', mode => '0644', source => 'puppet:///modules/etherpad_lite/apache-connection-tuning', notify => Service['httpd'], require => File['/etc/apache2/conf.d'], } } else { file { '/etc/apache2/conf-available': ensure => directory, owner => 'root', group => 'root', mode => '0755', require => File['/etc/apache2'], } file { '/etc/apache2/conf-available/connection-tuning': ensure => present, owner => 'root', group => 'root', mode => '0644', source => 'puppet:///modules/etherpad_lite/apache-connection-tuning', require => File['/etc/apache2/conf-available'], } file { '/etc/apache2/conf-enabled': ensure => directory, owner => 'root', group => 'root', mode => '0755', require => File['/etc/apache2'], } file { '/etc/apache2/conf-enabled/connection-tuning': ensure => link, target => '/etc/apache2/conf-available/connection-tuning.conf', notify => Service['httpd'], require => [ File['/etc/apache2/conf-enabled'], File['/etc/apache2/conf-available/connection-tuning'], ], } } file { $docroot: ensure => directory, } file { "${docroot}/robots.txt": ensure => present, source => 'puppet:///modules/etherpad_lite/robots.txt', owner => 'root', group => 'root', mode => '0444', require => File[$docroot], } file { '/etc/ssl/certs': ensure => directory, owner => 'root', mode => '0755', } file { '/etc/ssl/private': ensure => directory, owner => 'root', mode => '0700', } if $ssl_cert_file_contents != '' { file { $ssl_cert_file: owner => 'root', group => 'root', mode => '0640', content => $ssl_cert_file_contents, before => Httpd::Vhost[$vhost_name], } } if $ssl_key_file_contents != '' { file { $ssl_key_file: owner => 'root', group => 'ssl-cert', mode => '0640', content => $ssl_key_file_contents, require => Package['ssl-cert'], before => Httpd::Vhost[$vhost_name], } } if $ssl_chain_file_contents != '' { file { $ssl_chain_file: owner => 'root', group => 'root', mode => '0640', content => $ssl_chain_file_contents, before => Httpd::Vhost[$vhost_name], } } }