diff --git a/manifests/certificates.pp b/manifests/certificates.pp new file mode 100644 index 0000000..96bafab --- /dev/null +++ b/manifests/certificates.pp @@ -0,0 +1,55 @@ +# Copyright 2016 Hewlett Packard Enterprise Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# == Class: phabricator::certificates +# +# Sets up SSL certificates for the module. +# +class phabricator::certificates ( + # SSL Certificates. + $ssl_cert_file = $phabricator::vars::ssl_cert_file, + $ssl_cert_file_contents = $phabricator::vars::ssl_cert_file_contents, + $ssl_chain_file = $phabricator::vars::ssl_chain_file, + $ssl_chain_file_contents = $phabricator::vars::ssl_chain_file_contents, + $ssl_key_file = $phabricator::vars::ssl_key_file, + $ssl_key_file_contents = $phabricator::vars::ssl_key_file_contents, +) { + + if $ssl_cert_file_contents != undef { + file { $ssl_cert_file: + owner => 'root', + group => 'root', + mode => '0640', + content => $ssl_cert_file_contents, + } + } + + if $ssl_key_file_contents != undef { + file { $ssl_key_file: + owner => 'root', + group => 'ssl-cert', + mode => '0640', + content => $ssl_key_file_contents, + } + } + + if $ssl_chain_file_contents != undef { + file { $ssl_chain_file: + owner => 'root', + group => 'root', + mode => '0640', + content => $ssl_chain_file_contents, + } + } +} diff --git a/manifests/httpd.pp b/manifests/httpd.pp new file mode 100644 index 0000000..54c6771 --- /dev/null +++ b/manifests/httpd.pp @@ -0,0 +1,49 @@ +# Copyright 2016 Hewlett Packard Enterprise Development Company, L.P. +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# == Class: phabricator::httpd +# +# Set up the virtual host for phabricator. +# +class phabricator::httpd ( + $ssl_cert_file = $phabricator::vars::ssl_cert_file, + $ssl_chain_file = $phabricator::vars::ssl_chain_file, + $ssl_key_file = $phabricator::vars::ssl_key_file, + $httpd_vhost = $phabricator::vars::httpd_vhost, + $httpd_admin_email = $phabricator::vars::httpd_admin_email, + $httpd_docroot = $phabricator::vars::httpd_docroot, +) { + include ::httpd + include ::httpd::ssl + include ::httpd::php + + httpd::mod { 'rewrite': + ensure => present, + } + + httpd::mod { 'auth_openid': + ensure => present, + } + + # Set up Phabricator as TLS. + if defined(Class['phabricator::certificates']) { + ::httpd::vhost { $httpd_vhost: + port => 443, + docroot => $httpd_docroot, + priority => '50', + template => 'phabricator/vhost.erb', + ssl => true, + } + } +}