diff --git a/manifests/site.pp b/manifests/site.pp index 84a278aff552936a8c934e7b1433b8a6fb434cbe..e7eb8a8479402caf13a6c370880dd6d4a0298aa2 100644 --- a/manifests/site.pp +++ b/manifests/site.pp @@ -37,23 +37,27 @@ node 'd-group' { email => 'webb@d-group.se', } + # package { 'libapache2-mod-php': + # ensure => 'latest', + # } + file { ['/var/log/apache2', '/var/log/django', ]: group => 'www-data', mode => '0775', ensure => 'directory', } class {'apache': -# TODO serveradmin? - # default_vhost => false, - # mpm_module => 'prefork', + default_vhost => false, + # required by php module + mpm_module => 'prefork', # purge_configs => false, serveradmin => 'webb@d-group.se', } $root = '/var/www/d-group.se' ensure_packages (['python-certbot-apache'], { ensure => installed }) - letsencrypt::certonly { 'd-group certs': - domains => ['d-group.se', ], # 'www.d-group.se', 'domd.nu', + letsencrypt::certonly { 'd-group.se': + domains => [ 'd-group.se', ], # 'www.d-group.se', 'domd.nu', # 'www.domd.nu', 'admin.d-group.se', # 'wiki.d-group.se', 'www.xn--dmd-sna.nu', # 'xn--dmd-sna.nu', 'tentakravallen.se', @@ -62,24 +66,30 @@ node 'd-group' { suppress_cron_output => true, cron_hour => '4', cron_minute => '17', - # plugin => 'apache', - cron_success_command => '/bin/systemctl reload apache2.service', - } - - # apache::vhost { 'd-group.se-non-ssl': - # ssl => false, - # redirect_status => 'permanent', - # redirect_dest => 'https://d-group.se/', - # before => Letsencrypt::Certonly['d-group certs'], - # docroot => '/var/www', - # } + plugin => 'apache', + # cron_success_command => '/bin/systemctl reload apache2.service', + } + + apache::vhost { 'd-group.se-non-ssl': + servername => 'd-group.se', + ssl => false, + port => 80, + redirect_status => 'permanent', + redirect_dest => 'https://d-group.se/', + # before => Letsencrypt::Certonly['d-group certs'], + docroot => '/var/www/d-group.se', + } apache::vhost { 'd-group.se': servername => 'd-group.se', - # ssl => true, + ssl => true, + port => 443, serveraliases => ['www.d-group.se'], docroot => "${root}/d-group.se", - default_vhost => true, + # default_vhost => true, + ssl_cert => "/etc/letsencrypt/live/d-group.se/fullchain.pem", + ssl_key => "/etc/letsencrypt/live/d-group.se/privkey.pem", + require => Letsencrypt::Certonly['d-group.se'], wsgi_script_aliases => { '/' => "${root}/d-group.se/dgroup/wsgi_production.py", }, wsgi_daemon_process => 'd-group.se', @@ -115,9 +125,7 @@ node 'd-group' { } - - - dgroup::simple { 'admin.d-group.se': + dgroup::codeigniter { 'admin.d-group.se': root => $root, } @@ -126,19 +134,20 @@ node 'd-group' { } - dgroup::simple { 'domd.nu': - root => $root, - serveraliases => [ 'www.domd.nu', - 'xn--dmd-sna.nu', - 'www.xn--dmd-sna.nu', ], - } + # dgroup::simple { 'domd.nu': + # root => $root, + # serveraliases => [ 'www.domd.nu', + # 'xn--dmd-sna.nu', + # 'www.xn--dmd-sna.nu', ], + # } - dgroup::simple { 'tentakravallen.se': - root => '/var/www', - serveraliases => [ 'www.tentakravallen.se', ], - } + # dgroup::simple { 'tentakravallen.se': + # root => '/var/www', + # serveraliases => [ 'www.tentakravallen.se', ], + # } include ::apache::mod::rewrite + include ::apache::mod::php class { '::apache::mod::wsgi': package_name => 'libapache2-mod-wsgi-py3', mod_path => 'mod_wsgi.so', diff --git a/modules/dgroup/manifests/codeigniter.pp b/modules/dgroup/manifests/codeigniter.pp new file mode 100644 index 0000000000000000000000000000000000000000..195396303b42be5d4a42c012621c6f5ccf7835ad --- /dev/null +++ b/modules/dgroup/manifests/codeigniter.pp @@ -0,0 +1,72 @@ +define dgroup::codeigniter ( + $root, +) { + + ensure_packages (['php-mbstring', 'php-intl'], { + ensure => 'latest', + }) + + file_line { 'php intl': + ensure => present, + path => '/etc/php/7.2/apache2/php.ini', + line => 'extension=intl', + match => '^;extension=intl', + } + + #exec { 'writable writable': + # command => "chmod -R g+rw $docroot/writable", + # path => ['/usr/bin', '/bin'], + #} + #exec { 'writable writable': + # command => "chgrp -R www-data $docroot/writable", + # path => ['/usr/bin', '/bin'], + #} + + # file { "$docroot/writable": + # ensure => directory, + # recurse => true, + # group => www-data, + # mode => '0775', + # } + + $docroot = "${root}/${name}/public" + + $base_directories = [ + { 'path' => '/', options => 'FollowSymLinks', 'allowoverride' => 'None', }, + { 'path' => $docroot, + 'options' => 'FollowSymLinks MultiViews', + 'allowoverride' => 'all', + 'order' => 'allow,deny', + 'allow' => 'from all', + }, + { 'path' => '/usr/lib/cgi-bin', + 'options' => '+ExecCGI -MultiViews +SymLinksIfOwnerMatch', + 'allowoverride' => 'none', + 'order' => 'allow,deny', + 'allow' => 'from all', + }, + { 'path' => '/usr/share/doc', + 'options' => 'MultiViews FollowSymLinks', + 'allowoverride' => 'none', + 'order' => 'deny,allow', + 'deny' => 'from all', + 'allow' => 'from 127.0.0.0/255.0.0.0 ::1/128', + }, + ] + + $base_aliases = [ + { alias => '/doc/', path => '/usr/share/doc' }, + { scriptalias => '/cgi-bin/', path => '/usr/lib/cgi-bin' }, + ] + + apache::vhost { $name: + servername => $name, + port => 80, + #serveraliases => $serveraliases, + docroot => $docroot, + aliases => $base_aliases, + directories => $base_directories, + error_log_file => 'error.log', + access_log_file => 'access.log', + } +} diff --git a/modules/dgroup/manifests/simple.pp b/modules/dgroup/manifests/simple.pp index 1df22759495a6510f902ac0f5fa1efffef5a6275..f4d28d847b5393edf68208ed8b22632787f83c73 100644 --- a/modules/dgroup/manifests/simple.pp +++ b/modules/dgroup/manifests/simple.pp @@ -32,6 +32,7 @@ define dgroup::simple ( apache::vhost { $name: servername => $name, + port => 80, serveraliases => $serveraliases, docroot => "${root}/${name}", aliases => $base_aliases,