cookbooks/fb_apache/attributes/default.rb (160 lines of code) (raw):
#
# vim: syntax=ruby:expandtab:shiftwidth=2:softtabstop=2:tabstop=2
#
# Copyright (c) 2016-present, Facebook, Inc.
# All rights reserved.
#
# 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.
#
moddir = value_for_platform_family(
# will be a symlink to the right arch dir
'rhel' => '/etc/httpd/modules',
'debian' => '/usr/lib/apache2/modules',
)
auth_core_suffix = node.centos6? ? 'default' : 'core'
modules = [
'alias',
'auth_basic',
'auth_digest',
'authn_file',
"authn_#{auth_core_suffix}",
"authz_#{auth_core_suffix}",
'authz_groupfile',
'authz_host',
'authz_owner',
'authz_user',
'autoindex',
'deflate',
'dir',
'env',
'headers',
'mime',
'negotiation',
'setenvif',
]
sysconfig = {
'_extra_lines' => [],
}
case node['platform_family']
when 'rhel'
modules += [
'log_config',
'logio',
'ssl',
]
unless node.centos6?
modules += [
'socache_shmcb',
'systemd',
'unixd',
]
end
{
'options' => [],
'lang' => 'C',
}.each do |k, v|
sysconfig[k] = v
end
when 'debian'
{
'htcacheclean_run' => 'auto',
'htcacheclean_mode' => 'daeon',
'htcacheclean_size' => '300M',
'htcacheclean_daemon_interval' => '120',
'htcacheclean_path' => '/var/cache/apache2/mod_cache_disk',
'htcacheclean_options' => ['-n'],
}.each do |k, v|
sysconfig[k] = v
end
end
default['fb_apache'] = {
'sysconfig' => sysconfig,
'manage_packages' => true,
'enable_default_site' => true,
'sites' => {},
'extra_configs' => {},
'modules' => modules,
'modules_directory' => moddir,
'modules_mapping' => {
'actions' => 'mod_actions.so',
'alias' => 'mod_alias.so',
'asis' => 'mod_asis.so',
'auth_basic' => 'mod_auth_basic.so',
'auth_digest' => 'mod_auth_digest.so',
'authn_alias' => 'mod_authn_alias.so',
'authn_anon' => 'mod_authn_anon.so',
'authn_dbd' => 'mod_authn_dbd.so',
'authn_dbm' => 'mod_authn_dbm.so',
'authn_core' => 'mod_authn_core.so',
'authn_file' => 'mod_authn_file.so',
'authnz_ldap' => 'mod_authnz_ldap.so',
'authz_dbm' => 'mod_authz_dbm.so',
'authz_core' => 'mod_authz_core.so',
'authz_groupfile' => 'mod_authz_groupfile.so',
'authz_host' => 'mod_authz_host.so',
'authz_owner' => 'mod_authz_owner.so',
'authz_user' => 'mod_authz_user.so',
'autoindex' => 'mod_autoindex.so',
'cache' => 'mod_cache.so',
'cern_meta' => 'mod_cern_meta.so',
'cgid' => 'mod_cgid.so',
'cgi' => 'mod_cgi.so',
'dav_fs' => 'mod_dav_fs.so',
'dav' => 'mod_dav.so',
'dav_svn' => 'mod_dav_svn.so',
'dbd' => 'mod_dbd.so',
'deflate' => 'mod_deflate.so',
'dir' => 'mod_dir.so',
'disk_cache' => 'mod_disk_cache.so',
'dumpio' => 'mod_dumpio.so',
'env' => 'mod_env.so',
'expires' => 'mod_expires.so',
'ext_filter' => 'mod_ext_filter.so',
'filter' => 'mod_filter.so',
'headers' => 'mod_headers.so',
'ident' => 'mod_ident.so',
'include' => 'mod_include.so',
'info' => 'mod_info.so',
'ldap' => 'mod_ldap.so',
'log_config' => 'mod_log_config.so',
'log_forensic' => 'mod_log_forensic.so',
'logio' => 'mod_logio.so',
'mime' => 'mod_mime.so',
'mime_magic' => 'mod_mime_magic.so',
'negotiation' => 'mod_negotiation.so',
'php5' => 'libphp5.so',
'php7' => 'libphp7.so',
'proxy_ajp' => 'mod_proxy_ajp.so',
'proxy_balancer' => 'mod_proxy_balancer.so',
'proxy_connect' => 'mod_proxy_connect.so',
'proxy_ftp' => 'mod_proxy_ftp.so',
'proxy_http' => 'mod_proxy_http.so',
'proxy' => 'mod_proxy.so',
'proxy_scgi' => 'mod_proxy_scgi.so',
'reqtimeout' => 'mod_reqtimeout.so',
'rewrite' => 'mod_rewrite.so',
'setenvif' => 'mod_setenvif.so',
'socache_shmcb' => 'mod_socache_shmcb.so',
'speling' => 'mod_speling.so',
'ssl' => 'mod_ssl.so',
'status' => 'mod_status.so',
'substitute' => 'mod_substitute.so',
'suexec' => 'mod_suexec.so',
'systemd' => 'mod_systemd.so',
'unique_id' => 'mod_unique_id.so',
'userdir' => 'mod_userdir.so',
'usertrack' => 'mod_usertrack.so',
'unixd' => 'mod_unixd.so',
'version' => 'mod_version.so',
'vhost_alias' => 'mod_vhost_alias.so',
},
'module_packages' => {
'dav_svn' => value_for_platform_family(
'rhel' => 'mod_dav_svn',
),
'ldap' => value_for_platform_family(
'rhel' => 'mod_ldap',
),
'php5' => value_for_platform_family(
'rhel' => 'mod_php',
),
'php7' => value_for_platform_family(
'rhel' => 'mod_php',
),
'ssl' => value_for_platform_family(
'rhel' => 'mod_ssl',
),
},
'mpm' => 'prefork',
}