Implemented dev-environment provisioning with Vagrant and Chef
This commit is contained in:
parent
0d012f4bd5
commit
ffab389328
|
@ -7,3 +7,6 @@
|
|||
# services' runtime files
|
||||
*.log
|
||||
*.pid
|
||||
|
||||
# Vagrant housekeeping file
|
||||
/.vagrant
|
||||
|
|
2
Makefile
2
Makefile
|
@ -9,7 +9,6 @@ MODULES=
|
|||
help:
|
||||
@echo 'Available targets:'
|
||||
@echo ' all - build product'
|
||||
@echo ' install-prerequisites - install all external prerequisistes'
|
||||
|
||||
all:
|
||||
|
||||
|
@ -19,5 +18,4 @@ clean:
|
|||
include $(addsuffix /module.mk,$(MODULES))
|
||||
|
||||
include rules.mk
|
||||
include prerequisites.mk
|
||||
|
||||
|
|
|
@ -0,0 +1,20 @@
|
|||
# -*- mode: ruby -*-
|
||||
# vi: set ft=ruby :
|
||||
|
||||
Vagrant::Config.run do |config|
|
||||
config.vm.box = "ubuntu-12.04-server-amd64"
|
||||
# config.vm.box_url = "http://domain.com/path/to/above.box"
|
||||
|
||||
config.vm.forward_port 80, 8080
|
||||
# config.vm.forward_port 8000, 8000
|
||||
|
||||
config.vm.provision :chef_solo do |chef|
|
||||
chef.cookbooks_path = "vagrant/cookbooks"
|
||||
|
||||
chef.add_recipe 'nailgun::server'
|
||||
|
||||
chef.json = {
|
||||
:celery => { :create_user => true }
|
||||
}
|
||||
end
|
||||
end
|
|
@ -1,11 +0,0 @@
|
|||
|
||||
.PHONY: install-prerequisites install-redis-server install-python-packages
|
||||
|
||||
install-prerequisites: install-python-packages install-redis-server
|
||||
|
||||
install-redis-server:
|
||||
sudo apt-get install redis-server
|
||||
|
||||
install-python-packages:
|
||||
sudo pip install -r requirements.txt
|
||||
|
|
@ -0,0 +1,70 @@
|
|||
## v1.1.8:
|
||||
|
||||
* Some platforms with minimal installations that don't have perl won't
|
||||
have a `node['languages']['perl']` attribute, so remove the
|
||||
conditional and rely on the power of idempotence in the package
|
||||
resource.
|
||||
* [COOK-1214] - address foodcritic warnings
|
||||
* [COOK-1180] - add `mod_logio` and fix `mod_proxy`
|
||||
|
||||
## v1.1.6:
|
||||
|
||||
FreeBSD users: This release requires the `freebsd` cookbook. See README.md.
|
||||
|
||||
* [COOK-1025] - freebsd support in mod_php5 recipe
|
||||
|
||||
## v1.1.4:
|
||||
|
||||
* [COOK-1100] - support amazon linux
|
||||
|
||||
## v1.1.2:
|
||||
|
||||
* [COOK-996] - apache2::mod_php5 can cause PHP and module API mismatches
|
||||
* [COOK-1083] - return string for v_f_p and use correct value for
|
||||
default
|
||||
|
||||
## v1.1.0:
|
||||
|
||||
* [COOK-861] - Add `mod_perl` and apreq2
|
||||
* [COOK-941] - fix `mod_auth_openid` on FreeBSD
|
||||
* [COOK-1021] - add a commented-out LoadModule directive to keep apxs happy
|
||||
* [COOK-1022] - consistency for icondir attribute
|
||||
* [COOK-1023] - fix platform test for attributes
|
||||
* [COOK-1024] - fix a2enmod script so it runs cleanly on !bash
|
||||
* [COOK-1026] - fix `error_log` location on FreeBSD
|
||||
|
||||
## v1.0.8:
|
||||
|
||||
* COOK-548 - directory resource doesn't have backup parameter
|
||||
|
||||
## v1.0.6:
|
||||
|
||||
* COOK-915 - update to `mod_auth_openid` version 0.6, see __Recipes/mod_auth_openid__ below.
|
||||
* COOK-548 - Add support for FreeBSD.
|
||||
|
||||
## v1.0.4:
|
||||
|
||||
* COOK-859 - don't hardcode module paths
|
||||
|
||||
## v1.0.2
|
||||
|
||||
* Tickets resolved in this release: COOK-788, COOK-782, COOK-780
|
||||
|
||||
## v1.0.0
|
||||
|
||||
* Red Hat family support is greatly improved, all recipes except `god_monitor` converge.
|
||||
* Recipe `mod_auth_openid` now works on RHEL family distros
|
||||
* Recipe `mod_php5` will now remove config from package on RHEL family so it doesn't conflict with the cookbook's.
|
||||
* Added `php5.conf.erb` template for `mod_php5` recipe.
|
||||
* Create the run state directory for `mod_fcgid` to prevent a startup error on RHEL version 6.
|
||||
* New attribute `node['apache']['lib_dir']` to handle lib vs lib64 on RHEL family distributions.
|
||||
* New attribute `node['apache']['group']`.
|
||||
* Scientific Linux support added.
|
||||
* Use a file resource instead of the generate-module-list executed perl script on RHEL family.
|
||||
* "default" site can now be disabled.
|
||||
* web_app now has an "enable" parameter.
|
||||
* Support for dav_fs apache module.
|
||||
* Tickets resolved in this release: COOK-754, COOK-753, COOK-665, COOK-624, COOK-579, COOK-519, COOK-518
|
||||
* Fix node references in template for a2dissite
|
||||
* Use proper user and group attributes on files and templates.
|
||||
* Replace the anemic README.rdoc with this new and improved superpowered README.md :).
|
|
@ -0,0 +1,29 @@
|
|||
If you would like to contribute, please open a ticket in JIRA:
|
||||
|
||||
* http://tickets.opscode.com
|
||||
|
||||
Create the ticket in the COOK project and use the cookbook name as the
|
||||
component.
|
||||
|
||||
For all code contributions, we ask that contributors sign a
|
||||
contributor license agreement (CLA). Instructions may be found here:
|
||||
|
||||
* http://wiki.opscode.com/display/chef/How+to+Contribute
|
||||
|
||||
When contributing changes to individual cookbooks, please do not
|
||||
modify the version number in the metadata.rb. Also please do not
|
||||
update the CHANGELOG.md for a new version. Not all changes to a
|
||||
cookbook may be merged and released in the same versions. Opscode will
|
||||
handle the version updates during the release process. You are welcome
|
||||
to correct typos or otherwise make updates to documentation in the
|
||||
README.
|
||||
|
||||
If a contribution adds new platforms or platform versions, indicate
|
||||
such in the body of the commit message(s), and update the relevant
|
||||
COOK ticket. When writing commit messages, it is helpful for others if
|
||||
you indicate the COOK ticket. For example:
|
||||
|
||||
git commit -m '[COOK-1041] Updated pool resource to correctly delete.'
|
||||
|
||||
In the ticket itself, it is also helpful if you include log output of
|
||||
a successful Chef run, but this is not absolutely required.
|
|
@ -0,0 +1,201 @@
|
|||
Apache License
|
||||
Version 2.0, January 2004
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction,
|
||||
and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by
|
||||
the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all
|
||||
other entities that control, are controlled by, or are under common
|
||||
control with that entity. For the purposes of this definition,
|
||||
"control" means (i) the power, direct or indirect, to cause the
|
||||
direction or management of such entity, whether by contract or
|
||||
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity
|
||||
exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications,
|
||||
including but not limited to software source code, documentation
|
||||
source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical
|
||||
transformation or translation of a Source form, including but
|
||||
not limited to compiled object code, generated documentation,
|
||||
and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or
|
||||
Object form, made available under the License, as indicated by a
|
||||
copyright notice that is included in or attached to the work
|
||||
(an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object
|
||||
form, that is based on (or derived from) the Work and for which the
|
||||
editorial revisions, annotations, elaborations, or other modifications
|
||||
represent, as a whole, an original work of authorship. For the purposes
|
||||
of this License, Derivative Works shall not include works that remain
|
||||
separable from, or merely link (or bind by name) to the interfaces of,
|
||||
the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including
|
||||
the original version of the Work and any modifications or additions
|
||||
to that Work or Derivative Works thereof, that is intentionally
|
||||
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||
or by an individual or Legal Entity authorized to submit on behalf of
|
||||
the copyright owner. For the purposes of this definition, "submitted"
|
||||
means any form of electronic, verbal, or written communication sent
|
||||
to the Licensor or its representatives, including but not limited to
|
||||
communication on electronic mailing lists, source code control systems,
|
||||
and issue tracking systems that are managed by, or on behalf of, the
|
||||
Licensor for the purpose of discussing and improving the Work, but
|
||||
excluding communication that is conspicuously marked or otherwise
|
||||
designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||
on behalf of whom a Contribution has been received by Licensor and
|
||||
subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
copyright license to reproduce, prepare Derivative Works of,
|
||||
publicly display, publicly perform, sublicense, and distribute the
|
||||
Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of
|
||||
this License, each Contributor hereby grants to You a perpetual,
|
||||
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||
(except as stated in this section) patent license to make, have made,
|
||||
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||
where such license applies only to those patent claims licensable
|
||||
by such Contributor that are necessarily infringed by their
|
||||
Contribution(s) alone or by combination of their Contribution(s)
|
||||
with the Work to which such Contribution(s) was submitted. If You
|
||||
institute patent litigation against any entity (including a
|
||||
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||
or a Contribution incorporated within the Work constitutes direct
|
||||
or contributory patent infringement, then any patent licenses
|
||||
granted to You under this License for that Work shall terminate
|
||||
as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the
|
||||
Work or Derivative Works thereof in any medium, with or without
|
||||
modifications, and in Source or Object form, provided that You
|
||||
meet the following conditions:
|
||||
|
||||
(a) You must give any other recipients of the Work or
|
||||
Derivative Works a copy of this License; and
|
||||
|
||||
(b) You must cause any modified files to carry prominent notices
|
||||
stating that You changed the files; and
|
||||
|
||||
(c) You must retain, in the Source form of any Derivative Works
|
||||
that You distribute, all copyright, patent, trademark, and
|
||||
attribution notices from the Source form of the Work,
|
||||
excluding those notices that do not pertain to any part of
|
||||
the Derivative Works; and
|
||||
|
||||
(d) If the Work includes a "NOTICE" text file as part of its
|
||||
distribution, then any Derivative Works that You distribute must
|
||||
include a readable copy of the attribution notices contained
|
||||
within such NOTICE file, excluding those notices that do not
|
||||
pertain to any part of the Derivative Works, in at least one
|
||||
of the following places: within a NOTICE text file distributed
|
||||
as part of the Derivative Works; within the Source form or
|
||||
documentation, if provided along with the Derivative Works; or,
|
||||
within a display generated by the Derivative Works, if and
|
||||
wherever such third-party notices normally appear. The contents
|
||||
of the NOTICE file are for informational purposes only and
|
||||
do not modify the License. You may add Your own attribution
|
||||
notices within Derivative Works that You distribute, alongside
|
||||
or as an addendum to the NOTICE text from the Work, provided
|
||||
that such additional attribution notices cannot be construed
|
||||
as modifying the License.
|
||||
|
||||
You may add Your own copyright statement to Your modifications and
|
||||
may provide additional or different license terms and conditions
|
||||
for use, reproduction, or distribution of Your modifications, or
|
||||
for any such Derivative Works as a whole, provided Your use,
|
||||
reproduction, and distribution of the Work otherwise complies with
|
||||
the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||
any Contribution intentionally submitted for inclusion in the Work
|
||||
by You to the Licensor shall be under the terms and conditions of
|
||||
this License, without any additional terms or conditions.
|
||||
Notwithstanding the above, nothing herein shall supersede or modify
|
||||
the terms of any separate license agreement you may have executed
|
||||
with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade
|
||||
names, trademarks, service marks, or product names of the Licensor,
|
||||
except as required for reasonable and customary use in describing the
|
||||
origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||
agreed to in writing, Licensor provides the Work (and each
|
||||
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied, including, without limitation, any warranties or conditions
|
||||
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||
appropriateness of using or redistributing the Work and assume any
|
||||
risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory,
|
||||
whether in tort (including negligence), contract, or otherwise,
|
||||
unless required by applicable law (such as deliberate and grossly
|
||||
negligent acts) or agreed to in writing, shall any Contributor be
|
||||
liable to You for damages, including any direct, indirect, special,
|
||||
incidental, or consequential damages of any character arising as a
|
||||
result of this License or out of the use or inability to use the
|
||||
Work (including but not limited to damages for loss of goodwill,
|
||||
work stoppage, computer failure or malfunction, or any and all
|
||||
other commercial damages or losses), even if such Contributor
|
||||
has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing
|
||||
the Work or Derivative Works thereof, You may choose to offer,
|
||||
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||
or other liability obligations and/or rights consistent with this
|
||||
License. However, in accepting such obligations, You may act only
|
||||
on Your own behalf and on Your sole responsibility, not on behalf
|
||||
of any other Contributor, and only if You agree to indemnify,
|
||||
defend, and hold each Contributor harmless for any liability
|
||||
incurred by, or claims asserted against, such Contributor by reason
|
||||
of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
APPENDIX: How to apply the Apache License to your work.
|
||||
|
||||
To apply the Apache License to your work, attach the following
|
||||
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||
replaced with your own identifying information. (Don't include
|
||||
the brackets!) The text should be enclosed in the appropriate
|
||||
comment syntax for the file format. We also recommend that a
|
||||
file or class name and description of purpose be included on the
|
||||
same "printed page" as the copyright notice for easier
|
||||
identification within third-party archives.
|
||||
|
||||
Copyright [yyyy] [name of copyright owner]
|
||||
|
||||
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.
|
|
@ -0,0 +1,359 @@
|
|||
Description
|
||||
===========
|
||||
|
||||
This cookbook provides a complete Debian/Ubuntu style Apache HTTPD configuration. Non-Debian based distributions such as Red Hat/CentOS, ArchLinux and others supported by this cookbook will have a configuration that mimics Debian/Ubuntu style as it is easier to manage with Chef.
|
||||
|
||||
Debian-style Apache configuration uses scripts to manage modules and sites (vhosts). The scripts are:
|
||||
|
||||
* a2ensite
|
||||
* a2dissite
|
||||
* a2enmod
|
||||
* a2dismod
|
||||
|
||||
This cookbook ships with templates of these scripts for non Debian/Ubuntu platforms. The scripts are used in the __Definitions__ below.
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
## Cookbooks:
|
||||
|
||||
This cookbook doesn't have direct dependencies on other cookbooks. Depending on your OS configuration and security policy, you may need additional recipes or cookbooks for this cookbook's recipes to converge on the node. In particular, the following Operating System nuances may affect the behavior:
|
||||
|
||||
* apt cache outdated
|
||||
* SELinux enabled
|
||||
* IPtables
|
||||
* Compile tools
|
||||
|
||||
On Ubuntu/Debian, use Opscode's `apt` cookbook to ensure the package cache is updated so Chef can install packages, or consider putting apt-get in your bootstrap process or [knife bootstrap template](http://wiki.opscode.com/display/chef/Knife+Bootstrap).
|
||||
|
||||
On RHEL, SELinux is enabled by default. The `selinux` cookbook contains a `permissive` recipe that can be used to set SELinux to "Permissive" state. Otherwise, additional recipes need to be created by the user to address SELinux permissions.
|
||||
|
||||
The easiest but **certainly not ideal way** to deal with IPtables is to flush all rules. Opscode does provide an `iptables` cookbook but is migrating from the approach used there to a more robust solution utilizing a general "firewall" LWRP that would have an "iptables" provider. Alternately, you can use ufw, with Opscode's `ufw` and `firewall` cookbooks to set up rules. See those cookbooks' READMEs for documentation.
|
||||
|
||||
Build/compile tools may not be installed on the system by default. Some recipes (e.g., `apache2::mod_auth_openid`) build the module from source. Use Opscode's `build-essential` cookbook to get essential build packages installed.
|
||||
|
||||
On ArchLinux, if you are using the `apache2::mod_auth_openid` recipe, you also need the `pacman` cookbook for the `pacman_aur` LWRP. Put `recipe[pacman]` on the node's expanded run list (on the node or in a role). This is not an explicit dependency because it is only required for this single recipe and platform; the pacman default recipe performs `pacman -Sy` to keep pacman's package cache updated.
|
||||
|
||||
The `apache2::god_monitor` recipe uses a definition from the `god` cookbook. Include `recipe[god]` in the node's expanded run list to ensure that the cookbook is downloaded.
|
||||
|
||||
## Platforms:
|
||||
|
||||
* Debian
|
||||
* Ubuntu
|
||||
* Red Hat/CentOS/Scientific Linux/Fedora (RHEL Family)
|
||||
* SUSE/OpenSUSE
|
||||
* ArchLinux
|
||||
* Amazon Linux AMI
|
||||
* FreeBSD
|
||||
|
||||
### Notes for RHEL Family:
|
||||
|
||||
On Red Hat Enterprise Linux and derivatives, the EPEL repository may be necessary to install packages used in certain recipes. The `apache2::default` recipe, however, does not require any additional repositories. Opscode's `yum` cookbook contains a recipe to add the EPEL repository. See __Examples__ for more information.
|
||||
|
||||
### Notes for FreeBSD:
|
||||
|
||||
The `apache2::mod_php5` recipe depends on the `freebsd` cookbook, which it uses to set the correct options for compiling the `php5` port from sources. You need to ensure the `freebsd` is in the expanded run list, or this recipe will fail. We don't set an explicit dependency because we feel the `freebsd` cookbook is something users would want on their nodes, and due to the generality of this cookbook we don't want additional specific dependencies.
|
||||
|
||||
Attributes
|
||||
==========
|
||||
|
||||
This cookbook uses many attributes, broken up into a few different kinds.
|
||||
|
||||
Platform specific
|
||||
-----------------
|
||||
|
||||
In order to support the broadest number of platforms, several attributes are determined based on the node's platform. See the attributes/default.rb file for default values in the case statement at the top of the file.
|
||||
|
||||
* `node['apache']['dir']` - Location for the Apache configuration
|
||||
* `node['apache']['log_dir']` - Location for Apache logs
|
||||
* `node['apache']['user']` - User Apache runs as
|
||||
* `node['apache']['group']` - Group Apache runs as
|
||||
* `node['apache']['binary']` - Apache httpd server daemon
|
||||
* `node['apache']['icondir']` - Location for icons
|
||||
* `node['apache']['cache_dir']` - Location for cached files used by Apache itself or recipes
|
||||
* `node['apache']['pid_file']` - Location of the PID file for Apache httpd
|
||||
* `node['apache']['lib_dir']` - Location for shared libraries
|
||||
|
||||
General settings
|
||||
----------------
|
||||
|
||||
These are general settings used in recipes and templates. Default values are noted.
|
||||
|
||||
* `node['apache']['listen_ports']` - Ports that httpd should listen on. Default is an array of ports 80 and 443.
|
||||
* `node['apache']['contact']` - Value for ServerAdmin directive. Default "ops@example.com".
|
||||
* `node['apache']['timeout']` - Value for the Timeout directive. Default is 300.
|
||||
* `node['apache']['keepalive']` - Value for the KeepAlive directive. Default is On.
|
||||
* `node['apache']['keepaliverequests']` - Value for MaxKeepAliveRequests. Default is 100.
|
||||
* `node['apache']['keepalivetimeout']` - Value for the KeepAliveTimeout directive. Default is 5.
|
||||
* `node['apache']['default_modules']` - Array of module names. Can take "mod_FOO" or "FOO" as names, where FOO is the apache module, e.g. "`mod_status`" or "`status`".
|
||||
|
||||
The modules listed in `default_modules` will be included as recipes in `recipe[apache::default]`.
|
||||
|
||||
Prefork attributes
|
||||
------------------
|
||||
|
||||
Prefork attributes are used for tuning the Apache HTTPD prefork MPM configuration.
|
||||
|
||||
* `node['apache']['prefork']['startservers']` - initial number of server processes to start. Default is 16.
|
||||
* `node['apache']['prefork']['minspareservers']` - minimum number of spare server processes. Default 16.
|
||||
* `node['apache']['prefork']['maxspareservers']` - maximum number of spare server processes. Default 32.
|
||||
* `node['apache']['prefork']['serverlimit']` - upper limit on configurable server processes. Default 400.
|
||||
* `node['apache']['prefork']['maxclients']` - Maximum number of simultaneous connections.
|
||||
* `node['apache']['prefork']['maxrequestsperchild']` - Maximum number of request a child process will handle. Default 10000.
|
||||
|
||||
Worker attributes
|
||||
-----------------
|
||||
|
||||
Worker attributes are used for tuning the Apache HTTPD worker MPM configuration.
|
||||
|
||||
* `node['apache']['worker']['startservers']` - Initial number of server processes to start. Default 4
|
||||
* `node['apache']['worker']['maxclients']` - Maximum number of simultaneous connections. Default 1024.
|
||||
* `node['apache']['worker']['minsparethreads']` - Minimum number of spare worker threads. Default 64
|
||||
* `node['apache']['worker']['maxsparethreads']` - Maximum number of spare worker threads. Default 192.
|
||||
* `node['apache']['worker']['maxrequestsperchild']` - Maximum number of requests a child process will handle.
|
||||
|
||||
mod\_auth\_openid attributes
|
||||
----------------------------
|
||||
|
||||
The following attributes are in the `attributes/mod_auth_openid.rb` file. Like all Chef attributes files, they are loaded as well, but they're logistically unrelated to the others, being specific to the `mod_auth_openid` recipe.
|
||||
|
||||
* `node['apache']['mod_auth_openid']['checksum']` - sha256sum of the tarball containing the source.
|
||||
* `node['apache']['mod_auth_openid']['version']` - version of the `mod_auth_openid` to download.
|
||||
* `node['apache']['mod_auth_openid']['cache_dir']` - the cache directory is where the sqlite3 database is stored. It is separate so it can be managed as a directory resource.
|
||||
* `node['apache']['mod_auth_openid']['dblocation']` - filename of the sqlite3 database used for directive `AuthOpenIDDBLocation`, stored in the `cache_dir` by default.
|
||||
* `node['apache']['mod_auth_openid']['configure_flags']` - optional array of configure flags passed to the `./configure` step in the compilation of the module.
|
||||
|
||||
Recipes
|
||||
=======
|
||||
|
||||
Most of the recipes in the cookbook are for enabling Apache modules. Where additional configuration or behavior is used, it is documented below in more detail.
|
||||
|
||||
The following recipes merely enable the specified module: `mod_alias`, `mod_basic`, `mod_digest`, `mod_authn_file`, `mod_authnz_ldap`, `mod_authz_default`, `mod_authz_groupfile`, `mod_authz_host`, `mod_authz_user`, `mod_autoindex`, `mod_cgi`, `mod_dav_fs`, `mod_dav_svn`, `mod_deflate`, `mod_dir`, `mod_env`, `mod_expires`, `mod_headers`, `mod_ldap`, `mod_log_config`, `mod_mime`, `mod_negotiation`, `mod_proxy`, `mod_proxy_ajp`, `mod_proxy_balancer`, `mod_proxy_connect`, `mod_proxy_http`, `mod_python`, `mod_rewrite`, `mod_setenvif`, `mod_status`, `mod_wsgi`, `mod_xsendfile`.
|
||||
|
||||
On RHEL Family distributions, certain modules ship with a config file with the package. The recipes here may delete those configuration files to ensure they don't conflict with the settings from the cookbook, which will use per-module configuration in `/etc/httpd/mods-enabled`.
|
||||
|
||||
default
|
||||
-------
|
||||
|
||||
The default recipe does a number of things to set up Apache HTTPd. It also includes a number of modules based on the attribute `node['apache']['default_modules']` as recipes.
|
||||
|
||||
mod\_auth\_openid
|
||||
-----------------
|
||||
|
||||
**Changed via COOK-915**
|
||||
|
||||
This recipe compiles the module from source. In addition to `build-essential`, some other packages are included for installation like the GNU C++ compiler and development headers.
|
||||
|
||||
To use the module in your own cookbooks to authenticate systems using OpenIDs, specify an array of OpenIDs that are allowed to authenticate with the attribute `node['apache']['allowed_openids']`. Use the following in a vhost to protect with OpenID authentication:
|
||||
|
||||
AuthType OpenID
|
||||
require user <%= node['apache']['allowed_openids'].join(' ') %>
|
||||
AuthOpenIDDBLocation <%= node['apache']['mod_auth_openid']['dblocation'] %>
|
||||
|
||||
Change the DBLocation with the attribute as required; this file is in a different location than previous versions, see below. It should be a sane default for most platforms, though, see `attributes/mod_auth_openid.rb`.
|
||||
|
||||
### Changes from COOK-915:
|
||||
|
||||
* `AuthType OpenID` instead of `AuthOpenIDEnabled On`.
|
||||
* `require user` instead of `AuthOpenIDUserProgram`.
|
||||
* A bug(?) in `mod_auth_openid` causes it to segfault when attempting to update the database file if the containing directory is not writable by the HTTPD process owner (e.g., www-data), even if the file is writable. In order to not interfere with other settings from the default recipe in this cookbook, the db file is moved.
|
||||
|
||||
mod\_fcgid
|
||||
----------
|
||||
|
||||
Installs the fcgi package and enables the module. Requires EPEL on RHEL family.
|
||||
|
||||
On RHEL family, this recipe will delete the fcgid.conf and on version 6+, create the /var/run/httpd/mod_fcgid` directory, which prevents the emergency error:
|
||||
|
||||
[emerg] (2)No such file or directory: mod_fcgid: Can't create shared memory for size XX bytes
|
||||
|
||||
mod\_php5
|
||||
--------
|
||||
|
||||
Simply installs the appropriate package on Debian, Ubuntu and ArchLinux.
|
||||
|
||||
On Red Hat family distributions including Fedora, the php.conf that comes with the package is removed. On RHEL platforms less than v6, the `php53` package is used.
|
||||
|
||||
mod\_ssl
|
||||
--------
|
||||
|
||||
Besides installing and enabling `mod_ssl`, this recipe will append port 443 to the `node['apache']['listen_ports']` attribute array and update the ports.conf.
|
||||
|
||||
god\_monitor
|
||||
------------
|
||||
|
||||
Sets up a `god` monitor for Apache. External requirements are the `god` and `runit` cookbooks from Opscode. When using this recipe, include `recipe[god]` in the node's expanded run list to ensure the client downloads it; `god` depends on runit so that will also be downloaded.
|
||||
|
||||
Definitions
|
||||
===========
|
||||
|
||||
The cookbook provides a few definitions. At some point in the future these definitions may be refactored into lightweight resources and providers.
|
||||
|
||||
apache\_conf
|
||||
------------
|
||||
|
||||
Sets up configuration file for an Apache module from a template. The template should be in the same cookbook where the definition is used. This is used by the `apache_module` definition and is not often used directly.
|
||||
|
||||
This will use a template resource to write the module's configuration file in the `mods-available` under the Apache configuration directory (`node['apache']['dir']`). This is a platform-dependent location. See __apache\_module__.
|
||||
|
||||
### Parameters:
|
||||
|
||||
* `name` - Name of the template. When used from the `apache_module`, it will use the same name as the module.
|
||||
|
||||
### Examples:
|
||||
|
||||
Create `#{node['apache']['dir']}/mods-available/alias.conf`.
|
||||
|
||||
apache_conf "alias"
|
||||
|
||||
apache\_module
|
||||
--------------
|
||||
|
||||
Enable or disable an Apache module in `#{node['apache']['dir']}/mods-available` by calling `a2enmod` or `a2dismod` to manage the symbolic link in `#{node['apache']['dir']}/mods-enabled`. If the module has a configuration file, a template should be created in the cookbook where the definition is used. See __Examples__.
|
||||
|
||||
### Parameters:
|
||||
|
||||
* `name` - Name of the module enabled or disabled with the `a2enmod` or `a2dismod` scripts.
|
||||
* `enable` - Default true, which uses `a2enmod` to enable the module. If false, the module will be disabled with `a2dismod`.
|
||||
* `conf` - Default false. Set to true if the module has a config file, which will use `apache_conf` for the file.
|
||||
* `filename` - specify the full name of the file, e.g.
|
||||
|
||||
### Examples:
|
||||
|
||||
Enable the ssl module, which also has a configuration template in `templates/default/ssl.conf.erb`.
|
||||
|
||||
apache_module "ssl" do
|
||||
conf true
|
||||
end
|
||||
|
||||
Enable the php5 module, which has a different filename than the module default:
|
||||
|
||||
apache_module "php5" do
|
||||
filename "libphp5.so"
|
||||
end
|
||||
|
||||
Disable a module:
|
||||
|
||||
apache_module "disabled_module" do
|
||||
enable false
|
||||
end
|
||||
|
||||
See the recipes directory for many more examples of `apache_module`.
|
||||
|
||||
apache\_site
|
||||
------------
|
||||
|
||||
Enable or disable a VirtualHost in `#{node['apache']['dir']}/sites-available` by calling a2ensite or a2dissite to manage the symbolic link in `#{node['apache']['dir']}/sites-enabled`.
|
||||
|
||||
The template for the site must be managed as a separate resource. To combine the template with enabling a site, see `web_app`.
|
||||
|
||||
### Parameters:
|
||||
|
||||
* `name` - Name of the site.
|
||||
* `enable` - Default true, which uses `a2ensite` to enable the site. If false, the site will be disabled with `a2dissite`.
|
||||
|
||||
web\_app
|
||||
--------
|
||||
|
||||
Manage a template resource for a VirtualHost site, and enable it with `apache_site`. This is commonly done for managing web applications such as Ruby on Rails, PHP or Django, and the default behavior reflects that. However it is flexible.
|
||||
|
||||
This definition includes some recipes to make sure the system is configured to have Apache and some sane default modules:
|
||||
|
||||
* `apache2`
|
||||
* `apache2::mod_rewrite`
|
||||
* `apache2::mod_deflate`
|
||||
* `apache2::mod_headers`
|
||||
|
||||
It will then configure the template (see __Parameters__ and __Examples__ below), and enable or disable the site per the `enable` parameter.
|
||||
|
||||
### Parameters:
|
||||
|
||||
Current parameters used by the definition:
|
||||
|
||||
* `name` - The name of the site. The template will be written to `#{node['apache']['dir']}/sites-available/#{params['name']}.conf`
|
||||
* `cookbook` - Optional. Cookbook where the source template is. If this is not defined, Chef will use the named template in the cookbook where the definition is used.
|
||||
* `template` - Default `web_app.conf.erb`, source template file.
|
||||
* `enable` - Default true. Passed to the `apache_site` definition.
|
||||
|
||||
Additional parameters can be defined when the definition is called in a recipe, see __Examples__.
|
||||
|
||||
### Examples:
|
||||
|
||||
All parameters are passed into the template. You can use whatever you like. The apache2 cookbook comes with a `web_app.conf.erb` template as an example. The following parameters are used in the template:
|
||||
|
||||
* `server_name` - ServerName directive.
|
||||
* `server_aliases` - ServerAlias directive. Must be an array of aliases.
|
||||
* `docroot` - DocumentRoot directive.
|
||||
* `application_name` - Used in RewriteLog directive. Will be set to the `name` parameter.
|
||||
|
||||
To use the default web_app, for example:
|
||||
|
||||
web_app "my_site" do
|
||||
server_name node['hostname']
|
||||
server_aliases [node['fqdn'], "my-site.example.com"]
|
||||
docroot "/srv/www/my_site"
|
||||
end
|
||||
|
||||
The parameters specified will be used as:
|
||||
|
||||
* `@params['server_name']`
|
||||
* `@params['server_aliases']`
|
||||
* `@params['docroot']`
|
||||
|
||||
In the template. When you write your own, the `@` is significant.
|
||||
|
||||
For more information about Definitions and parameters, see the [Chef Wiki](http://wiki.opscode.com/display/chef/Definitions)
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
||||
Using this cookbook is relatively straightforward. Add the desired recipes to the run list of a node, or create a role. Depending on your environment, you may have multiple roles that use different recipes from this cookbook. Adjust any attributes as desired. For example, to create a basic role for web servers that provide both HTTP and HTTPS:
|
||||
|
||||
% cat roles/webserver.rb
|
||||
name "webserver"
|
||||
description "Systems that serve HTTP and HTTPS"
|
||||
run_list(
|
||||
"recipe[apache2]",
|
||||
"recipe[apache2::mod_ssl]"
|
||||
)
|
||||
default_attributes(
|
||||
"apache2" => {
|
||||
"listen_ports" => ["80", "443"]
|
||||
}
|
||||
)
|
||||
|
||||
For examples of using the definitions in your own recipes, see their respective sections above.
|
||||
|
||||
License and Authors
|
||||
===================
|
||||
|
||||
Author:: Adam Jacob <adam@opscode.com>
|
||||
Author:: Joshua Timberman <joshua@opscode.com>
|
||||
Author:: Bryan McLellan <bryanm@widemile.com>
|
||||
Author:: Dave Esposito <esposito@espolinux.corpnet.local>
|
||||
Author:: David Abdemoulaie <github@hobodave.com>
|
||||
Author:: Edmund Haselwanter <edmund@haselwanter.com>
|
||||
Author:: Eric Rochester <err8n@virginia.edu>
|
||||
Author:: Jim Browne <jbrowne@42lines.net>
|
||||
Author:: Matthew Kent <mkent@magoazul.com>
|
||||
Author:: Nathen Harvey <nharvey@customink.com>
|
||||
Author:: Ringo De Smet <ringo.de.smet@amplidata.com>
|
||||
Author:: Sean OMeara <someara@opscode.com>
|
||||
Author:: Seth Chisamore <schisamo@opscode.com>
|
||||
Author:: Gilles Devaux <gilles@peerpong.com>
|
||||
|
||||
Copyright:: 2009-2011, Opscode, Inc
|
||||
Copyright:: 2011, Atriso
|
||||
Copyright:: 2011, CustomInk, LLC.
|
||||
|
||||
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.
|
|
@ -0,0 +1,141 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Attributes:: apache
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
set['apache']['root_group'] = "root"
|
||||
|
||||
# Where the various parts of apache are
|
||||
case platform
|
||||
when "redhat","centos","scientific","fedora","suse","amazon"
|
||||
set['apache']['package'] = "httpd"
|
||||
set['apache']['dir'] = "/etc/httpd"
|
||||
set['apache']['log_dir'] = "/var/log/httpd"
|
||||
set['apache']['error_log'] = "error.log"
|
||||
set['apache']['user'] = "apache"
|
||||
set['apache']['group'] = "apache"
|
||||
set['apache']['binary'] = "/usr/sbin/httpd"
|
||||
set['apache']['icondir'] = "/var/www/icons"
|
||||
set['apache']['cache_dir'] = "/var/cache/httpd"
|
||||
if node['platform_version'].to_f >= 6 then
|
||||
set['apache']['pid_file'] = "/var/run/httpd/httpd.pid"
|
||||
else
|
||||
set['apache']['pid_file'] = "/var/run/httpd.pid"
|
||||
end
|
||||
set['apache']['lib_dir'] = node['kernel']['machine'] =~ /^i[36']86$/ ? "/usr/lib/httpd" : "/usr/lib64/httpd"
|
||||
set['apache']['libexecdir'] = "#{set['apache']['lib_dir']}/modules"
|
||||
when "debian","ubuntu"
|
||||
set['apache']['package'] = "apache2"
|
||||
set['apache']['dir'] = "/etc/apache2"
|
||||
set['apache']['log_dir'] = "/var/log/apache2"
|
||||
set['apache']['error_log'] = "error.log"
|
||||
set['apache']['user'] = "www-data"
|
||||
set['apache']['group'] = "www-data"
|
||||
set['apache']['binary'] = "/usr/sbin/apache2"
|
||||
set['apache']['icondir'] = "/usr/share/apache2/icons"
|
||||
set['apache']['cache_dir'] = "/var/cache/apache2"
|
||||
set['apache']['pid_file'] = "/var/run/apache2.pid"
|
||||
set['apache']['lib_dir'] = "/usr/lib/apache2"
|
||||
set['apache']['libexecdir'] = "#{set['apache']['lib_dir']}/modules"
|
||||
when "arch"
|
||||
set['apache']['package'] = "apache"
|
||||
set['apache']['dir'] = "/etc/httpd"
|
||||
set['apache']['log_dir'] = "/var/log/httpd"
|
||||
set['apache']['error_log'] = "error.log"
|
||||
set['apache']['user'] = "http"
|
||||
set['apache']['group'] = "http"
|
||||
set['apache']['binary'] = "/usr/sbin/httpd"
|
||||
set['apache']['icondir'] = "/usr/share/httpd/icons"
|
||||
set['apache']['cache_dir'] = "/var/cache/httpd"
|
||||
set['apache']['pid_file'] = "/var/run/httpd/httpd.pid"
|
||||
set['apache']['lib_dir'] = "/usr/lib/httpd"
|
||||
set['apache']['libexecdir'] = "#{set['apache']['lib_dir']}/modules"
|
||||
when "freebsd"
|
||||
set['apache']['package'] = "apache22"
|
||||
set['apache']['dir'] = "/usr/local/etc/apache22"
|
||||
set['apache']['log_dir'] = "/var/log"
|
||||
set['apache']['error_log'] = "httpd-error.log"
|
||||
set['apache']['root_group'] = "wheel"
|
||||
set['apache']['user'] = "www"
|
||||
set['apache']['group'] = "www"
|
||||
set['apache']['binary'] = "/usr/local/sbin/httpd"
|
||||
set['apache']['icondir'] = "/usr/local/www/apache22/icons"
|
||||
set['apache']['cache_dir'] = "/var/run/apache22"
|
||||
set['apache']['pid_file'] = "/var/run/httpd.pid"
|
||||
set['apache']['lib_dir'] = "/usr/local/libexec/apache22"
|
||||
set['apache']['libexecdir'] = set['apache']['lib_dir']
|
||||
else
|
||||
set['apache']['dir'] = "/etc/apache2"
|
||||
set['apache']['log_dir'] = "/var/log/apache2"
|
||||
set['apache']['error_log'] = "error.log"
|
||||
set['apache']['user'] = "www-data"
|
||||
set['apache']['group'] = "www-data"
|
||||
set['apache']['binary'] = "/usr/sbin/apache2"
|
||||
set['apache']['icondir'] = "/usr/share/apache2/icons"
|
||||
set['apache']['cache_dir'] = "/var/cache/apache2"
|
||||
set['apache']['pid_file'] = "logs/httpd.pid"
|
||||
set['apache']['lib_dir'] = "/usr/lib/apache2"
|
||||
set['apache']['libexecdir'] = "#{set['apache']['lib_dir']}/modules"
|
||||
end
|
||||
|
||||
###
|
||||
# These settings need the unless, since we want them to be tunable,
|
||||
# and we don't want to override the tunings.
|
||||
###
|
||||
|
||||
# General settings
|
||||
default['apache']['listen_ports'] = [ "80","443" ]
|
||||
default['apache']['contact'] = "ops@example.com"
|
||||
default['apache']['timeout'] = 300
|
||||
default['apache']['keepalive'] = "On"
|
||||
default['apache']['keepaliverequests'] = 100
|
||||
default['apache']['keepalivetimeout'] = 5
|
||||
|
||||
# Security
|
||||
default['apache']['servertokens'] = "Prod"
|
||||
default['apache']['serversignature'] = "On"
|
||||
default['apache']['traceenable'] = "On"
|
||||
|
||||
# mod_auth_openids
|
||||
default['apache']['allowed_openids'] = Array.new
|
||||
|
||||
# Prefork Attributes
|
||||
default['apache']['prefork']['startservers'] = 16
|
||||
default['apache']['prefork']['minspareservers'] = 16
|
||||
default['apache']['prefork']['maxspareservers'] = 32
|
||||
default['apache']['prefork']['serverlimit'] = 400
|
||||
default['apache']['prefork']['maxclients'] = 400
|
||||
default['apache']['prefork']['maxrequestsperchild'] = 10000
|
||||
|
||||
# Worker Attributes
|
||||
default['apache']['worker']['startservers'] = 4
|
||||
default['apache']['worker']['maxclients'] = 1024
|
||||
default['apache']['worker']['minsparethreads'] = 64
|
||||
default['apache']['worker']['maxsparethreads'] = 192
|
||||
default['apache']['worker']['threadsperchild'] = 64
|
||||
default['apache']['worker']['maxrequestsperchild'] = 0
|
||||
|
||||
# Default modules to enable via include_recipe
|
||||
|
||||
default['apache']['default_modules'] = %w{
|
||||
status alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex
|
||||
dir env mime negotiation setenvif
|
||||
}
|
||||
|
||||
%w{ log_config logio }.each do |log_mod|
|
||||
default['apache']['default_modules'] << log_mod if ["redhat", "centos", "scientific", "fedora", "suse", "arch", "freebsd", "amazon"].include?(node['platform'])
|
||||
end
|
|
@ -0,0 +1,32 @@
|
|||
#
|
||||
# Author:: Joshua Timberman <joshua@opscode.com>
|
||||
# Copyright:: Copyright (c) 2011, Opscode, Inc.
|
||||
# License:: Apache License, Version 2.0
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
default['apache']['mod_auth_openid']['checksum'] = "79e7ca52511d1230"
|
||||
default['apache']['mod_auth_openid']['version'] = "0.6"
|
||||
default['apache']['mod_auth_openid']['cache_dir'] = "/var/cache/mod_auth_openid"
|
||||
default['apache']['mod_auth_openid']['dblocation'] = "#{node['apache']['mod_auth_openid']['cache_dir']}/mod_auth_openid.db"
|
||||
|
||||
case node['platform']
|
||||
when "freebsd"
|
||||
default['apache']['mod_auth_openid']['configure_flags'] = [
|
||||
"CPPFLAGS=-I/usr/local/include",
|
||||
"LDFLAGS=-I/usr/local/lib -lsqlite3"
|
||||
]
|
||||
else
|
||||
default['apache']['mod_auth_openid']['configure_flags'] = []
|
||||
end
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Definition:: apache_conf
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
define :apache_conf do
|
||||
template "#{node['apache']['dir']}/mods-available/#{params[:name]}.conf" do
|
||||
source "mods/#{params[:name]}.conf.erb"
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
mode 0644
|
||||
end
|
||||
end
|
|
@ -0,0 +1,53 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Definition:: apache_module
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
define :apache_module, :enable => true, :conf => false do
|
||||
include_recipe "apache2"
|
||||
|
||||
params[:filename] = params[:filename] || "mod_#{params[:name]}.so"
|
||||
params[:module_path] = params[:module_path] || "#{node['apache']['libexecdir']}/#{params[:filename]}"
|
||||
|
||||
if params[:conf]
|
||||
apache_conf params[:name]
|
||||
end
|
||||
|
||||
if platform?("redhat", "centos", "scientific", "fedora", "arch", "suse", "amazon", "freebsd")
|
||||
file "#{node['apache']['dir']}/mods-available/#{params[:name]}.load" do
|
||||
content "LoadModule #{params[:name]}_module #{params[:module_path]}\n"
|
||||
mode 0644
|
||||
end
|
||||
end
|
||||
|
||||
if params[:enable]
|
||||
execute "a2enmod #{params[:name]}" do
|
||||
command "/usr/sbin/a2enmod #{params[:name]}"
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
not_if do (::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.load") and
|
||||
((::File.exists?("#{node['apache']['dir']}/mods-available/#{params[:name]}.conf"))?
|
||||
(::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.conf")):(true)))
|
||||
end
|
||||
end
|
||||
else
|
||||
execute "a2dismod #{params[:name]}" do
|
||||
command "/usr/sbin/a2dismod #{params[:name]}"
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
only_if do ::File.symlink?("#{node['apache']['dir']}/mods-enabled/#{params[:name]}.load") end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,43 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Definition:: apache_site
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
define :apache_site, :enable => true do
|
||||
include_recipe "apache2"
|
||||
|
||||
if params[:enable]
|
||||
execute "a2ensite #{params[:name]}" do
|
||||
command "/usr/sbin/a2ensite #{params[:name]}"
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
not_if do
|
||||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/#{params[:name]}") or
|
||||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/000-#{params[:name]}")
|
||||
end
|
||||
only_if do ::File.exists?("#{node['apache']['dir']}/sites-available/#{params[:name]}") end
|
||||
end
|
||||
else
|
||||
execute "a2dissite #{params[:name]}" do
|
||||
command "/usr/sbin/a2dissite #{params[:name]}"
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
only_if do
|
||||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/#{params[:name]}") or
|
||||
::File.symlink?("#{node['apache']['dir']}/sites-enabled/000-#{params[:name]}")
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,49 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Definition:: web_app
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
define :web_app, :template => "web_app.conf.erb", :enable => true do
|
||||
|
||||
application_name = params[:name]
|
||||
|
||||
include_recipe "apache2"
|
||||
include_recipe "apache2::mod_rewrite"
|
||||
include_recipe "apache2::mod_deflate"
|
||||
include_recipe "apache2::mod_headers"
|
||||
|
||||
template "#{node['apache']['dir']}/sites-available/#{application_name}.conf" do
|
||||
source params[:template]
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
if params[:cookbook]
|
||||
cookbook params[:cookbook]
|
||||
end
|
||||
variables(
|
||||
:application_name => application_name,
|
||||
:params => params
|
||||
)
|
||||
if ::File.exists?("#{node['apache']['dir']}/sites-enabled/#{application_name}.conf")
|
||||
notifies :reload, resources(:service => "apache2"), :delayed
|
||||
end
|
||||
end
|
||||
|
||||
apache_site "#{params[:name]}.conf" do
|
||||
enable params[:enable]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/perl
|
||||
|
||||
=begin
|
||||
|
||||
Generates Ubuntu style module.load files.
|
||||
|
||||
./apache2_module_conf_generate.pl /usr/lib64/httpd/modules /etc/httpd/mods-available
|
||||
|
||||
ARGV[0] is the apache modules directory, ARGV[1] is where you want 'em.
|
||||
|
||||
=cut
|
||||
|
||||
use File::Find;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
die "Must have '/path/to/modules' and '/path/to/modules.load'"
|
||||
unless $ARGV[0] && $ARGV[1];
|
||||
|
||||
find(
|
||||
{
|
||||
wanted => sub {
|
||||
return 1 if $File::Find::name !~ /\.so$/;
|
||||
my $modfile = $_;
|
||||
$modfile =~ /(lib|mod_)(.+)\.so$/;
|
||||
my $modname = $2;
|
||||
my $filename = "$ARGV[1]/$modname.load";
|
||||
unless ( -f $filename ) {
|
||||
open( FILE, ">", $filename ) or die "Cannot open $filename";
|
||||
print FILE "LoadModule " . $modname . "_module $File::Find::name\n";
|
||||
close(FILE);
|
||||
}
|
||||
},
|
||||
follow => 1,
|
||||
},
|
||||
$ARGV[0]
|
||||
);
|
||||
|
||||
exit 0;
|
||||
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,205 @@
|
|||
maintainer "Opscode, Inc."
|
||||
maintainer_email "cookbooks@opscode.com"
|
||||
license "Apache 2.0"
|
||||
description "Installs and configures all aspects of apache2 using Debian style symlinks with helper definitions"
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||
version "1.1.8"
|
||||
recipe "apache2", "Main Apache configuration"
|
||||
recipe "apache2::mod_alias", "Apache module 'alias' with config file"
|
||||
recipe "apache2::mod_apreq2", "Apache module 'apreq'"
|
||||
recipe "apache2::mod_auth_basic", "Apache module 'auth_basic'"
|
||||
recipe "apache2::mod_auth_digest", "Apache module 'auth_digest'"
|
||||
recipe "apache2::mod_auth_openid", "Apache module 'authopenid'"
|
||||
recipe "apache2::mod_authn_file", "Apache module 'authn_file'"
|
||||
recipe "apache2::mod_authnz_ldap", "Apache module 'authnz_ldap'"
|
||||
recipe "apache2::mod_authz_default", "Apache module 'authz_default'"
|
||||
recipe "apache2::mod_authz_groupfile", "Apache module 'authz_groupfile'"
|
||||
recipe "apache2::mod_authz_host", "Apache module 'authz_host'"
|
||||
recipe "apache2::mod_authz_user", "Apache module 'authz_user'"
|
||||
recipe "apache2::mod_autoindex", "Apache module 'autoindex' with config file"
|
||||
recipe "apache2::mod_cgi", "Apache module 'cgi'"
|
||||
recipe "apache2::mod_dav", "Apache module 'dav'"
|
||||
recipe "apache2::mod_dav_svn", "Apache module 'dav_svn'"
|
||||
recipe "apache2::mod_deflate", "Apache module 'deflate' with config file"
|
||||
recipe "apache2::mod_dir", "Apache module 'dir' with config file"
|
||||
recipe "apache2::mod_env", "Apache module 'env'"
|
||||
recipe "apache2::mod_expires", "Apache module 'expires'"
|
||||
recipe "apache2::mod_fcgid", "Apache module 'fcgid', package on ubuntu/debian, rhel/centos, compile source on suse; with config file"
|
||||
recipe "apache2::mod_headers", "Apache module 'headers'"
|
||||
recipe "apache2::mod_ldap", "Apache module 'ldap'"
|
||||
recipe "apache2::mod_log_config", "Apache module 'log_config'"
|
||||
recipe "apache2::mod_mime", "Apache module 'mime' with config file"
|
||||
recipe "apache2::mod_negotiation", "Apache module 'negotiation' with config file"
|
||||
recipe "apache2::mod_perl", "Apache module 'perl'"
|
||||
recipe "apache2::mod_php5", "Apache module 'php5'"
|
||||
recipe "apache2::mod_proxy", "Apache module 'proxy' with config file"
|
||||
recipe "apache2::mod_proxy_ajp", "Apache module 'proxy_ajp'"
|
||||
recipe "apache2::mod_proxy_balancer", "Apache module 'proxy_balancer'"
|
||||
recipe "apache2::mod_proxy_connect", "Apache module 'proxy_connect'"
|
||||
recipe "apache2::mod_proxy_http", "Apache module 'proxy_http'"
|
||||
recipe "apache2::mod_python", "Apache module 'python'"
|
||||
recipe "apache2::mod_rewrite", "Apache module 'rewrite'"
|
||||
recipe "apache2::mod_setenvif", "Apache module 'setenvif' with config file"
|
||||
recipe "apache2::mod_ssl", "Apache module 'ssl' with config file, adds port 443 to listen_ports"
|
||||
recipe "apache2::mod_status", "Apache module 'status' with config file"
|
||||
recipe "apache2::mod_xsendfile", "Apache module 'xsendfile'"
|
||||
|
||||
%w{redhat centos scientific fedora debian ubuntu arch freebsd amazon}.each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
attribute "apache",
|
||||
:display_name => "Apache Hash",
|
||||
:description => "Hash of Apache attributes",
|
||||
:type => "hash"
|
||||
|
||||
attribute "apache/dir",
|
||||
:display_name => "Apache Directory",
|
||||
:description => "Location for Apache configuration",
|
||||
:default => "/etc/apache2"
|
||||
|
||||
attribute "apache/log_dir",
|
||||
:display_name => "Apache Log Directory",
|
||||
:description => "Location for Apache logs",
|
||||
:default => "/etc/apache2"
|
||||
|
||||
attribute "apache/user",
|
||||
:display_name => "Apache User",
|
||||
:description => "User Apache runs as",
|
||||
:default => "www-data"
|
||||
|
||||
attribute "apache/binary",
|
||||
:display_name => "Apache Binary",
|
||||
:description => "Apache server daemon program",
|
||||
:default => "/usr/sbin/apache2"
|
||||
|
||||
attribute "apache/icondir",
|
||||
:display_name => "Apache Icondir",
|
||||
:description => "Directory location for icons",
|
||||
:default => "/usr/share/apache2/icons"
|
||||
|
||||
attribute "apache/listen_ports",
|
||||
:display_name => "Apache Listen Ports",
|
||||
:description => "Ports that Apache should listen on",
|
||||
:type => "array",
|
||||
:default => [ "80", "443" ]
|
||||
|
||||
attribute "apache/contact",
|
||||
:display_name => "Apache Contact",
|
||||
:description => "Email address of webmaster",
|
||||
:default => "ops@example.com"
|
||||
|
||||
attribute "apache/timeout",
|
||||
:display_name => "Apache Timeout",
|
||||
:description => "Connection timeout value",
|
||||
:default => "300"
|
||||
|
||||
attribute "apache/keepalive",
|
||||
:display_name => "Apache Keepalive",
|
||||
:description => "HTTP persistent connections",
|
||||
:default => "On"
|
||||
|
||||
attribute "apache/keepaliverequests",
|
||||
:display_name => "Apache Keepalive Requests",
|
||||
:description => "Number of requests allowed on a persistent connection",
|
||||
:default => "100"
|
||||
|
||||
attribute "apache/keepalivetimeout",
|
||||
:display_name => "Apache Keepalive Timeout",
|
||||
:description => "Time to wait for requests on persistent connection",
|
||||
:default => "5"
|
||||
|
||||
attribute "apache/servertokens",
|
||||
:display_name => "Apache Server Tokens",
|
||||
:description => "Server response header",
|
||||
:default => "Prod"
|
||||
|
||||
attribute "apache/serversignature",
|
||||
:display_name => "Apache Server Signature",
|
||||
:description => "Configure footer on server-generated documents",
|
||||
:default => "On"
|
||||
|
||||
attribute "apache/traceenable",
|
||||
:display_name => "Apache Trace Enable",
|
||||
:description => "Determine behavior of TRACE requests",
|
||||
:default => "On"
|
||||
|
||||
attribute "apache/allowed_openids",
|
||||
:display_name => "Apache Allowed OpenIDs",
|
||||
:description => "Array of OpenIDs allowed to authenticate",
|
||||
:default => ""
|
||||
|
||||
attribute "apache/prefork",
|
||||
:display_name => "Apache Prefork",
|
||||
:description => "Hash of Apache prefork tuning attributes.",
|
||||
:type => "hash"
|
||||
|
||||
attribute "apache/prefork/startservers",
|
||||
:display_name => "Apache Prefork MPM StartServers",
|
||||
:description => "Number of MPM servers to start",
|
||||
:default => "16"
|
||||
|
||||
attribute "apache/prefork/minspareservers",
|
||||
:display_name => "Apache Prefork MPM MinSpareServers",
|
||||
:description => "Minimum number of spare server processes",
|
||||
:default => "16"
|
||||
|
||||
attribute "apache/prefork/maxspareservers",
|
||||
:display_name => "Apache Prefork MPM MaxSpareServers",
|
||||
:description => "Maximum number of spare server processes",
|
||||
:default => "32"
|
||||
|
||||
attribute "apache/prefork/serverlimit",
|
||||
:display_name => "Apache Prefork MPM ServerLimit",
|
||||
:description => "Upper limit on configurable server processes",
|
||||
:default => "400"
|
||||
|
||||
attribute "apache/prefork/maxclients",
|
||||
:display_name => "Apache Prefork MPM MaxClients",
|
||||
:description => "Maximum number of simultaneous connections",
|
||||
:default => "400"
|
||||
|
||||
attribute "apache/prefork/maxrequestsperchild",
|
||||
:display_name => "Apache Prefork MPM MaxRequestsPerChild",
|
||||
:description => "Maximum number of request a child process will handle",
|
||||
:default => "10000"
|
||||
|
||||
attribute "apache/worker",
|
||||
:display_name => "Apache Worker",
|
||||
:description => "Hash of Apache prefork tuning attributes.",
|
||||
:type => "hash"
|
||||
|
||||
attribute "apache/worker/startservers",
|
||||
:display_name => "Apache Worker MPM StartServers",
|
||||
:description => "Initial number of server processes to start",
|
||||
:default => "4"
|
||||
|
||||
attribute "apache/worker/maxclients",
|
||||
:display_name => "Apache Worker MPM MaxClients",
|
||||
:description => "Maximum number of simultaneous connections",
|
||||
:default => "1024"
|
||||
|
||||
attribute "apache/worker/minsparethreads",
|
||||
:display_name => "Apache Worker MPM MinSpareThreads",
|
||||
:description => "Minimum number of spare worker threads",
|
||||
:default => "64"
|
||||
|
||||
attribute "apache/worker/maxsparethreads",
|
||||
:display_name => "Apache Worker MPM MaxSpareThreads",
|
||||
:description => "Maximum number of spare worker threads",
|
||||
:default => "192"
|
||||
|
||||
attribute "apache/worker/threadsperchild",
|
||||
:display_name => "Apache Worker MPM ThreadsPerChild",
|
||||
:description => "Constant number of worker threads in each server process",
|
||||
:default => "64"
|
||||
|
||||
attribute "apache/worker/maxrequestsperchild",
|
||||
:display_name => "Apache Worker MPM MaxRequestsPerChild",
|
||||
:description => "Maximum number of request a child process will handle",
|
||||
:default => "0"
|
||||
|
||||
attribute "apache/default_modules",
|
||||
:display_name => "Apache Default Modules",
|
||||
:description => "Default modules to enable via recipes",
|
||||
:default => "status alias auth_basic authn_file authz_default authz_groupfile authz_host authz_user autoindex dir env mime negotiation setenvif"
|
|
@ -0,0 +1,218 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
package "apache2" do
|
||||
package_name node['apache']['package']
|
||||
action :install
|
||||
end
|
||||
|
||||
service "apache2" do
|
||||
case node['platform']
|
||||
when "redhat","centos","scientific","fedora","suse","amazon"
|
||||
service_name "httpd"
|
||||
# If restarted/reloaded too quickly httpd has a habit of failing.
|
||||
# This may happen with multiple recipes notifying apache to restart - like
|
||||
# during the initial bootstrap.
|
||||
restart_command "/sbin/service httpd restart && sleep 1"
|
||||
reload_command "/sbin/service httpd reload && sleep 1"
|
||||
when "debian","ubuntu"
|
||||
service_name "apache2"
|
||||
restart_command "/usr/sbin/invoke-rc.d apache2 restart && sleep 1"
|
||||
reload_command "/usr/sbin/invoke-rc.d apache2 reload && sleep 1"
|
||||
when "arch"
|
||||
service_name "httpd"
|
||||
when "freebsd"
|
||||
service_name "apache22"
|
||||
end
|
||||
supports value_for_platform(
|
||||
"debian" => { "4.0" => [ :restart, :reload ], "default" => [ :restart, :reload, :status ] },
|
||||
"ubuntu" => { "default" => [ :restart, :reload, :status ] },
|
||||
"redhat" => { "default" => [ :restart, :reload, :status ] },
|
||||
"centos" => { "default" => [ :restart, :reload, :status ] },
|
||||
"scientific" => { "default" => [ :restart, :reload, :status ] },
|
||||
"fedora" => { "default" => [ :restart, :reload, :status ] },
|
||||
"arch" => { "default" => [ :restart, :reload, :status ] },
|
||||
"suse" => { "default" => [ :restart, :reload, :status ] },
|
||||
"freebsd" => { "default" => [ :restart, :reload, :status ] },
|
||||
"amazon" => { "default" => [ :restart, :reload, :status ] },
|
||||
"default" => { "default" => [:restart, :reload ] }
|
||||
)
|
||||
action :enable
|
||||
end
|
||||
|
||||
if platform?("redhat", "centos", "scientific", "fedora", "arch", "suse", "freebsd", "amazon")
|
||||
directory node['apache']['log_dir'] do
|
||||
mode 0755
|
||||
action :create
|
||||
end
|
||||
|
||||
package "perl"
|
||||
|
||||
cookbook_file "/usr/local/bin/apache2_module_conf_generate.pl" do
|
||||
source "apache2_module_conf_generate.pl"
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
end
|
||||
|
||||
%w{sites-available sites-enabled mods-available mods-enabled}.each do |dir|
|
||||
directory "#{node['apache']['dir']}/#{dir}" do
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
action :create
|
||||
end
|
||||
end
|
||||
|
||||
execute "generate-module-list" do
|
||||
command "/usr/local/bin/apache2_module_conf_generate.pl #{node['apache']['lib_dir']} #{node['apache']['dir']}/mods-available"
|
||||
action :run
|
||||
end
|
||||
|
||||
%w{a2ensite a2dissite a2enmod a2dismod}.each do |modscript|
|
||||
template "/usr/sbin/#{modscript}" do
|
||||
source "#{modscript}.erb"
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
end
|
||||
end
|
||||
|
||||
# installed by default on centos/rhel, remove in favour of mods-enabled
|
||||
%w{ proxy_ajp auth_pam authz_ldap webalizer ssl welcome }.each do |f|
|
||||
file "#{node['apache']['dir']}/conf.d/#{f}.conf" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
end
|
||||
|
||||
# installed by default on centos/rhel, remove in favour of mods-enabled
|
||||
file "#{node['apache']['dir']}/conf.d/README" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
end
|
||||
|
||||
if platform?("freebsd")
|
||||
file "#{node['apache']['dir']}/Includes/no-accf.conf" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
directory "#{node['apache']['dir']}/Includes" do
|
||||
action :delete
|
||||
end
|
||||
|
||||
%w{httpd-autoindex.conf httpd-dav.conf httpd-default.conf httpd-info.conf
|
||||
httpd-languages.conf httpd-manual.conf httpd-mpm.conf
|
||||
httpd-multilang-errordoc.conf httpd-ssl.conf httpd-userdir.conf
|
||||
httpd-vhosts.conf}.each do |f|
|
||||
file "#{node['apache']['dir']}/extra/#{f}" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
end
|
||||
directory "#{node['apache']['dir']}/extra" do
|
||||
action :delete
|
||||
end
|
||||
end
|
||||
|
||||
directory "#{node['apache']['dir']}/ssl" do
|
||||
action :create
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
end
|
||||
|
||||
directory "#{node['apache']['dir']}/conf.d" do
|
||||
action :create
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
end
|
||||
|
||||
directory node['apache']['cache_dir'] do
|
||||
action :create
|
||||
mode 0755
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
end
|
||||
|
||||
template "apache2.conf" do
|
||||
case node['platform']
|
||||
when "redhat", "centos", "scientific", "fedora", "arch", "amazon"
|
||||
path "#{node['apache']['dir']}/conf/httpd.conf"
|
||||
when "debian","ubuntu"
|
||||
path "#{node['apache']['dir']}/apache2.conf"
|
||||
when "freebsd"
|
||||
path "#{node['apache']['dir']}/httpd.conf"
|
||||
end
|
||||
source "apache2.conf.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
end
|
||||
|
||||
template "security" do
|
||||
path "#{node['apache']['dir']}/conf.d/security"
|
||||
source "security.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
backup false
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
end
|
||||
|
||||
template "charset" do
|
||||
path "#{node['apache']['dir']}/conf.d/charset"
|
||||
source "charset.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
backup false
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
end
|
||||
|
||||
template "#{node['apache']['dir']}/ports.conf" do
|
||||
source "ports.conf.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
variables :apache_listen_ports => node['apache']['listen_ports'].map{|p| p.to_i}.uniq
|
||||
mode 0644
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
end
|
||||
|
||||
template "#{node['apache']['dir']}/sites-available/default" do
|
||||
source "default-site.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
end
|
||||
|
||||
node['apache']['default_modules'].each do |mod|
|
||||
recipe_name = mod =~ /^mod_/ ? mod : "mod_#{mod}"
|
||||
include_recipe "apache2::#{recipe_name}"
|
||||
end
|
||||
|
||||
apache_site "default" if platform?("redhat", "centos", "scientific", "fedora", "amazon")
|
||||
|
||||
service "apache2" do
|
||||
action :start
|
||||
end
|
|
@ -0,0 +1,33 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: god_monitor
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_service = service "apache2" do
|
||||
action :nothing
|
||||
end
|
||||
|
||||
start_command = apache_service.start_command
|
||||
stop_command = apache_service.stop_command
|
||||
restart_command = apache_service.restart_command
|
||||
|
||||
god_monitor "apache2" do
|
||||
config "apache2.god.erb"
|
||||
start (start_command)?start_command : "/etc/init.d/#{apache_service.service_name} start"
|
||||
restart (restart_command)?restart_command : "/etc/init.d/#{apache_service.service_name} restart"
|
||||
stop (stop_command)?stop_command : "/etc/init.d/#{apache_service.service_name} stop"
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: alias
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "alias" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,45 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: apreq2
|
||||
#
|
||||
# modified from the python recipe by Jeremy Bingham
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian", "ubuntu"
|
||||
package "libapache2-mod-apreq2" do
|
||||
action :install
|
||||
end
|
||||
when "centos", "redhat", "fedora", "amazon", "scientific"
|
||||
package "libapreq2" do
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
# seems that the apreq lib is weirdly broken or something - it needs to be
|
||||
# loaded as "apreq", but on RHEL & derivitatives the file needs a symbolic
|
||||
# link to mod_apreq.so.
|
||||
link "/usr/lib64/httpd/modules/mod_apreq.so" do
|
||||
to "/usr/lib64/httpd/modules/mod_apreq2.so"
|
||||
only_if "test -f /usr/lib64/httpd/modules/mod_apreq2.so"
|
||||
end
|
||||
link "/usr/lib/httpd/modules/mod_apreq.so" do
|
||||
to "/usr/lib/httpd/modules/mod_apreq2.so"
|
||||
only_if "test -f /usr/lib/httpd/modules/mod_apreq2.so"
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "apreq"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: auth_basic
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "auth_basic"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: auth_digest
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "auth_digest"
|
|
@ -0,0 +1,113 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: mod_auth_openid
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
openid_dev_pkgs = value_for_platform(
|
||||
["ubuntu","debian"] => { "default" => %w{ g++ apache2-prefork-dev libopkele-dev libopkele3 } },
|
||||
["centos","redhat","scientific","fedora","amazon"] => {
|
||||
"default" => %w{ gcc-c++ httpd-devel curl-devel libtidy libtidy-devel sqlite-devel pcre-devel openssl-devel make }
|
||||
},
|
||||
"arch" => { "default" => ["libopkele"] },
|
||||
"freebsd" => { "default" => %w{libopkele pcre sqlite3} }
|
||||
)
|
||||
|
||||
make_cmd = value_for_platform(
|
||||
"freebsd" => { "default" => "gmake" },
|
||||
"default" => "make"
|
||||
)
|
||||
|
||||
case node['platform']
|
||||
when "arch"
|
||||
include_recipe "pacman"
|
||||
package "tidyhtml"
|
||||
end
|
||||
|
||||
openid_dev_pkgs.each do |pkg|
|
||||
case node['platform']
|
||||
when "arch"
|
||||
pacman_aur pkg do
|
||||
action [:build, :install]
|
||||
end
|
||||
else
|
||||
package pkg
|
||||
end
|
||||
end
|
||||
|
||||
case node['platform']
|
||||
when "redhat", "centos", "scientific", "fedora", "amazon"
|
||||
remote_file "#{Chef::Config['file_cache_path']}/libopkele-2.0.4.tar.gz" do
|
||||
source "http://kin.klever.net/dist/libopkele-2.0.4.tar.gz"
|
||||
mode 0644
|
||||
end
|
||||
|
||||
bash "install libopkele" do
|
||||
cwd Chef::Config['file_cache_path']
|
||||
# Ruby 1.8.6 does not have rpartition, unfortunately
|
||||
syslibdir = node['apache']['lib_dir'][0..node['apache']['lib_dir'].rindex("/")]
|
||||
code <<-EOH
|
||||
tar zxvf libopkele-2.0.4.tar.gz
|
||||
cd libopkele-2.0.4 && ./configure --prefix=/usr --libdir=#{syslibdir}
|
||||
#{make_cmd} && #{make_cmd} install
|
||||
EOH
|
||||
not_if { File.exists?("#{syslibdir}/libopkele.a") }
|
||||
end
|
||||
end
|
||||
|
||||
_checksum = node['apache']['mod_auth_openid']['checksum']
|
||||
version = node['apache']['mod_auth_openid']['version']
|
||||
configure_flags = node['apache']['mod_auth_openid']['configure_flags']
|
||||
|
||||
remote_file "#{Chef::Config['file_cache_path']}/mod_auth_openid-#{version}.tar.gz" do
|
||||
source "http://butterfat.net/releases/mod_auth_openid/mod_auth_openid-#{version}.tar.gz"
|
||||
mode 0644
|
||||
checksum _checksum
|
||||
end
|
||||
|
||||
bash "install mod_auth_openid" do
|
||||
cwd Chef::Config['file_cache_path']
|
||||
code <<-EOH
|
||||
tar zxvf mod_auth_openid-#{version}.tar.gz
|
||||
cd mod_auth_openid-#{version} && ./configure #{configure_flags.join(' ')}
|
||||
perl -pi -e "s/-i -a -n 'authopenid'/-i -n 'authopenid'/g" Makefile
|
||||
#{make_cmd} && #{make_cmd} install
|
||||
EOH
|
||||
not_if { ::File.exists?("#{node['apache']['libexecdir']}/mod_auth_openid.so") }
|
||||
end
|
||||
|
||||
directory node['apache']['mod_auth_openid']['cache_dir'] do
|
||||
owner node['apache']['user']
|
||||
group node['apache']['group']
|
||||
mode 0700
|
||||
end
|
||||
|
||||
file node['apache']['mod_auth_openid']['dblocation'] do
|
||||
owner node['apache']['user']
|
||||
group node['apache']['group']
|
||||
mode 0644
|
||||
end
|
||||
|
||||
template "#{node['apache']['dir']}/mods-available/authopenid.load" do
|
||||
source "mods/authopenid.load.erb"
|
||||
owner "root"
|
||||
group node['apache']['root_group']
|
||||
mode 0644
|
||||
end
|
||||
|
||||
apache_module "authopenid" do
|
||||
filename "mod_auth_openid.so"
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authn_file
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authn_file"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authnz_ldap
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authnz_ldap"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authz_default
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authz_default"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authz_groupfile
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authz_groupfile"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authz_host
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authz_host"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: authz_user
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "authz_user"
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: autoindex
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "autoindex" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: cgi
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "cgi"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: dav
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "dav"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: dav_fs
|
||||
#
|
||||
# Copyright 2011, Atriso
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "dav_fs"
|
|
@ -0,0 +1,29 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: dav_svn
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
package "libapache2-svn" do
|
||||
case node['platform']
|
||||
when "centos","redhat","scientific","fedora","suse","amazon"
|
||||
package_name "mod_dav_svn"
|
||||
else
|
||||
package_name "libapache2-svn"
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "dav_svn"
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: deflate
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "deflate" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: dir
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "dir" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: env
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "env"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: expires
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "expires"
|
|
@ -0,0 +1,53 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: fcgid
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
if platform?("debian", "ubuntu")
|
||||
package "libapache2-mod-fcgid"
|
||||
elsif platform?("redhat", "centos", "scientific", "fedora", "arch", "amazon")
|
||||
package "mod_fcgid" do
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
|
||||
file "#{node['apache']['dir']}/conf.d/fcgid.conf" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
|
||||
directory "/var/run/httpd/mod_fcgid" do
|
||||
recursive true
|
||||
only_if { node['platform_version'].to_i >= 6 }
|
||||
end
|
||||
elsif platform?("suse")
|
||||
apache_lib_path = node['apache']['lib_dir']
|
||||
|
||||
package "httpd-devel"
|
||||
|
||||
bash "install-fcgid" do
|
||||
code <<-EOH
|
||||
(cd #{Chef::Config['file_cache_path']}; wget http://superb-east.dl.sourceforge.net/sourceforge/mod-fcgid/mod_fcgid.2.2.tgz)
|
||||
(cd #{Chef::Config['file_cache_path']}; tar zxvf mod_fcgid.2.2.tgz)
|
||||
(cd #{Chef::Config['file_cache_path']}; perl -pi -e 's!/usr/local/apache2!#{apache_lib_path}!g' ./mod_fcgid.2.2/Makefile)
|
||||
(cd #{Chef::Config['file_cache_path']}/mod_fcgid.2.2; make install)
|
||||
EOH
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "fcgid" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: headers
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "headers"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: ldap
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "ldap"
|
|
@ -0,0 +1,24 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: log_config
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
if platform?("redhat", "centos", "scientific", "fedora", "suse", "arch", "freebsd", "amazon")
|
||||
apache_module "log_config"
|
||||
else
|
||||
include_recipe "apache2"
|
||||
end
|
|
@ -0,0 +1,24 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: logio
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
if platform?("redhat", "centos", "scientific", "fedora", "suse", "arch", "freebsd", "amazon")
|
||||
apache_module "logio"
|
||||
else
|
||||
include_recipe "apache2"
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: mime
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "mime" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: negotiation
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "negotiation" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,39 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: perl
|
||||
#
|
||||
# adapted from the mod_python recipe by Jeremy Bingham
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian", "ubuntu"
|
||||
%w{libapache2-mod-perl2 libapache2-request-perl apache2-mpm-prefork}.each do |pkg|
|
||||
package pkg do
|
||||
action :install
|
||||
end
|
||||
end
|
||||
when "centos", "redhat", "fedora", "amazon", "scientific"
|
||||
package "mod_perl" do
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
package "perl-libapreq2" do
|
||||
action :install
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "perl"
|
|
@ -0,0 +1,99 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: php5
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian", "ubuntu"
|
||||
package "libapache2-mod-php5" do
|
||||
action :install
|
||||
end
|
||||
|
||||
when "arch"
|
||||
package "php-apache" do
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
|
||||
when "amazon", "redhat", "centos", "scientific"
|
||||
package "php package" do
|
||||
if node['platform_version'].to_f < 6.0
|
||||
package_name "php53"
|
||||
else
|
||||
package_name "php"
|
||||
end
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
not_if "which php"
|
||||
end
|
||||
|
||||
# delete stock config
|
||||
file "#{node['apache']['dir']}/conf.d/php.conf" do
|
||||
action :delete
|
||||
end
|
||||
|
||||
# replace with debian style config
|
||||
template "#{node['apache']['dir']}/mods-available/php5.conf" do
|
||||
source "mods/php5.conf.erb"
|
||||
notifies :restart, "service[apache2]"
|
||||
end
|
||||
|
||||
when "fedora"
|
||||
package "php package" do
|
||||
package_name "php"
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
not_if "which php"
|
||||
end
|
||||
|
||||
# delete stock config
|
||||
file "#{node['apache']['dir']}/conf.d/php.conf" do
|
||||
action :delete
|
||||
end
|
||||
|
||||
# replace with debian style config
|
||||
template "#{node['apache']['dir']}/mods-available/php5.conf" do
|
||||
source "mods/php5.conf.erb"
|
||||
notifies :restart, "service[apache2]"
|
||||
end
|
||||
|
||||
when "freebsd"
|
||||
freebsd_port_options "php5" do
|
||||
options "APACHE" => true
|
||||
action :create
|
||||
end
|
||||
|
||||
package "php package" do
|
||||
package_name "php5"
|
||||
source "ports"
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
|
||||
# replace with debian style config
|
||||
template "#{node['apache']['dir']}/mods-available/php5.conf" do
|
||||
source "mods/php5.conf.erb"
|
||||
notifies :restart, "service[apache2]"
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "php5" do
|
||||
case node['platform']
|
||||
when "redhat","centos","scientific","amazon","fedora","freebsd"
|
||||
filename "libphp5.so"
|
||||
end
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: proxy
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "proxy" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,21 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: proxy
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
include_recipe "apache2::mod_proxy"
|
||||
apache_module "proxy_ajp"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: proxy
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "proxy_balancer"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: proxy
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "proxy_connect"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: proxy_http
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "proxy_http"
|
|
@ -0,0 +1,32 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: python
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian", "ubuntu"
|
||||
package "libapache2-mod-python" do
|
||||
action :install
|
||||
end
|
||||
when "redhat", "centos", "scientific", "fedora", "amazon"
|
||||
package "mod_python" do
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
end
|
||||
|
||||
apache_module "python"
|
|
@ -0,0 +1,20 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: rewrite
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "rewrite"
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: setenvif
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "setenvif" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,43 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: ssl
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
if platform?("redhat", "centos", "scientific", "fedora", "amazon")
|
||||
package "mod_ssl" do
|
||||
action :install
|
||||
notifies :run, resources(:execute => "generate-module-list"), :immediately
|
||||
end
|
||||
|
||||
file "#{node['apache']['dir']}/conf.d/ssl.conf" do
|
||||
action :delete
|
||||
backup false
|
||||
end
|
||||
end
|
||||
|
||||
ports = node['apache']['listen_ports'].include?("443") ? node['apache']['listen_ports'] : [node['apache']['listen_ports'], "443"].flatten
|
||||
|
||||
template "#{node['apache']['dir']}/ports.conf" do
|
||||
source "ports.conf.erb"
|
||||
variables :apache_listen_ports => ports.map{|p| p.to_i}.uniq
|
||||
notifies :restart, resources(:service => "apache2")
|
||||
mode 0644
|
||||
end
|
||||
|
||||
apache_module "ssl" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: status
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
apache_module "status" do
|
||||
conf true
|
||||
end
|
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: python
|
||||
#
|
||||
# Copyright 2008-2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian","ubuntu"
|
||||
package "libapache2-mod-wsgi"
|
||||
when "redhat", "centos", "scientific", "fedora", "arch", "amazon"
|
||||
package "mod_wsgi"
|
||||
end
|
||||
|
||||
apache_module "wsgi"
|
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# Cookbook Name:: apache2
|
||||
# Recipe:: mod_xsendfile
|
||||
#
|
||||
# Copyright 2011, CustomInk, LLC.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
case node['platform']
|
||||
when "debian","ubuntu"
|
||||
package "libapache2-mod-xsendfile"
|
||||
when "centos","redhat","scientific","fedora","amazon"
|
||||
package "mod_xsendfile"
|
||||
end
|
||||
|
||||
apache_module "xsendfile"
|
|
@ -0,0 +1,22 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
SYSCONFDIR='<%= node['apache']['dir'] %>'
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo "Which module would you like to disable?"
|
||||
echo -n "Your choices are: "
|
||||
ls $SYSCONFDIR/mods-enabled/*.load | \
|
||||
sed -e "s,$SYSCONFDIR/mods-enabled/,,g" | sed -e 's/\.load$//g;' | xargs echo
|
||||
echo -n "Module name? "
|
||||
read MODNAME
|
||||
else
|
||||
MODNAME=$1
|
||||
fi
|
||||
|
||||
if ! [ -e $SYSCONFDIR/mods-enabled/$MODNAME.load ]; then
|
||||
echo "This module is already disabled, or does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
rm -f $SYSCONFDIR/mods-enabled/$MODNAME.*
|
||||
echo "Module $MODNAME disabled; reload apache to fully disable."
|
|
@ -0,0 +1,29 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
SYSCONFDIR='<%= node['apache']['dir'] %>'
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo "Which site would you like to disable?"
|
||||
echo -n "Your choices are: "
|
||||
ls $SYSCONFDIR/sites-enabled/* | \
|
||||
sed -e "s,$SYSCONFDIR/sites-enabled/,,g" | xargs echo
|
||||
echo -n "Site name? "
|
||||
read SITENAME
|
||||
else
|
||||
SITENAME=$1
|
||||
fi
|
||||
|
||||
if [ $SITENAME = "default" ]; then
|
||||
PRIORITY="000"
|
||||
fi
|
||||
|
||||
if ! [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
|
||||
-e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
|
||||
echo "This site is already disabled, or does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! rm $SYSCONFDIR/sites-enabled/$SITENAME 2>/dev/null; then
|
||||
rm -f $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
|
||||
fi
|
||||
echo "Site $SITENAME disabled; reload apache to disable."
|
|
@ -0,0 +1,37 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
SYSCONFDIR='<%= node['apache']['dir'] %>'
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo "Which module would you like to enable?"
|
||||
echo -n "Your choices are: "
|
||||
ls $SYSCONFDIR/mods-available/*.load | \
|
||||
sed -e "s,$SYSCONFDIR/mods-available/,,g" | sed -e 's/\.load$//g;' | xargs echo
|
||||
echo -n "Module name? "
|
||||
read MODNAME
|
||||
else
|
||||
MODNAME=$1
|
||||
fi
|
||||
|
||||
#figure out if we're on a prefork or threaded mpm
|
||||
if [ -x /usr/sbin/apache2 ]; then
|
||||
PREFORK=`/usr/sbin/apache2 -l | grep prefork || true`
|
||||
fi
|
||||
|
||||
if [ -e $SYSCONFDIR/mods-enabled/$MODNAME.load -a -e $SYSCONFDIR/mods-enabled/$MODNAME.conf ]; then
|
||||
echo "This module is already enabled!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! [ -e $SYSCONFDIR/mods-available/$MODNAME.load ]; then
|
||||
echo "This module does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
for i in conf load; do
|
||||
if [ -e $SYSCONFDIR/mods-available/$MODNAME.$i -a ! -e $SYSCONFDIR/mods-enabled/$MODNAME.$i ]; then
|
||||
ln -sf $SYSCONFDIR/mods-available/$MODNAME.$i $SYSCONFDIR/mods-enabled/$MODNAME.$i;
|
||||
fi
|
||||
done
|
||||
|
||||
echo "Module $MODNAME installed; reload apache to enable."
|
|
@ -0,0 +1,38 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
SYSCONFDIR='<%= node['apache']['dir'] %>'
|
||||
|
||||
if [ -z $1 ]; then
|
||||
echo "Which site would you like to enable?"
|
||||
echo -n "Your choices are: "
|
||||
ls $SYSCONFDIR/sites-available/* | \
|
||||
sed -e "s,$SYSCONFDIR/sites-available/,,g" | xargs echo
|
||||
echo -n "Site name? "
|
||||
read SITENAME
|
||||
else
|
||||
SITENAME=$1
|
||||
fi
|
||||
|
||||
if [ $SITENAME = "default" ]; then
|
||||
PRIORITY="000"
|
||||
fi
|
||||
|
||||
if [ -e $SYSCONFDIR/sites-enabled/$SITENAME -o \
|
||||
-e $SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME" ]; then
|
||||
echo "This site is already enabled!"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if ! [ -e $SYSCONFDIR/sites-available/$SITENAME ]; then
|
||||
echo "This site does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ $SITENAME = "default" ]; then
|
||||
ln -sf $SYSCONFDIR/sites-available/$SITENAME \
|
||||
$SYSCONFDIR/sites-enabled/"$PRIORITY"-"$SITENAME"
|
||||
else
|
||||
ln -sf $SYSCONFDIR/sites-available/$SITENAME $SYSCONFDIR/sites-enabled/$SITENAME
|
||||
fi
|
||||
|
||||
echo "Site $SITENAME installed; reload apache to enable."
|
|
@ -0,0 +1,237 @@
|
|||
#
|
||||
# Generated by Chef
|
||||
#
|
||||
# Based on the Ubuntu apache2.conf
|
||||
|
||||
ServerRoot "<%= node['apache']['dir'] %>"
|
||||
|
||||
#
|
||||
# The accept serialization lock file MUST BE STORED ON A LOCAL DISK.
|
||||
#
|
||||
<% if node['platform'] == "debian" || node['platform'] == "ubuntu" -%>
|
||||
LockFile /var/lock/apache2/accept.lock
|
||||
<% elsif node['platform'] == "freebsd" -%>
|
||||
LockFile /var/log/accept.lock
|
||||
<% else %>
|
||||
LockFile logs/accept.lock
|
||||
<% end -%>
|
||||
|
||||
#
|
||||
# PidFile: The file in which the server should record its process
|
||||
# identification number when it starts.
|
||||
#
|
||||
PidFile <%= node['apache']['pid_file'] %>
|
||||
|
||||
#
|
||||
# Timeout: The number of seconds before receives and sends time out.
|
||||
#
|
||||
Timeout <%= node['apache']['timeout'] %>
|
||||
|
||||
#
|
||||
# KeepAlive: Whether or not to allow persistent connections (more than
|
||||
# one request per connection). Set to "Off" to deactivate.
|
||||
#
|
||||
KeepAlive <%= node['apache']['keepalive'] %>
|
||||
|
||||
#
|
||||
# MaxKeepAliveRequests: The maximum number of requests to allow
|
||||
# during a persistent connection. Set to 0 to allow an unlimited amount.
|
||||
# We recommend you leave this number high, for maximum performance.
|
||||
#
|
||||
MaxKeepAliveRequests <%= node['apache']['keepaliverequests'] %>
|
||||
|
||||
#
|
||||
# KeepAliveTimeout: Number of seconds to wait for the next request from the
|
||||
# same client on the same connection.
|
||||
#
|
||||
KeepAliveTimeout <%= node['apache']['keepalivetimeout'] %>
|
||||
|
||||
##
|
||||
## Server-Pool Size Regulation (MPM specific)
|
||||
##
|
||||
|
||||
# prefork MPM
|
||||
# StartServers: number of server processes to start
|
||||
# MinSpareServers: minimum number of server processes which are kept spare
|
||||
# MaxSpareServers: maximum number of server processes which are kept spare
|
||||
# MaxClients: maximum number of server processes allowed to start
|
||||
# MaxRequestsPerChild: maximum number of requests a server process serves
|
||||
<IfModule mpm_prefork_module>
|
||||
StartServers <%= node['apache']['prefork']['startservers'] %>
|
||||
MinSpareServers <%= node['apache']['prefork']['minspareservers'] %>
|
||||
MaxSpareServers <%= node['apache']['prefork']['maxspareservers'] %>
|
||||
ServerLimit <%= node['apache']['prefork']['serverlimit'] %>
|
||||
MaxClients <%= node['apache']['prefork']['maxclients'] %>
|
||||
MaxRequestsPerChild <%= node['apache']['prefork']['maxrequestsperchild'] %>
|
||||
</IfModule>
|
||||
|
||||
# worker MPM
|
||||
# StartServers: initial number of server processes to start
|
||||
# MaxClients: maximum number of simultaneous client connections
|
||||
# MinSpareThreads: minimum number of worker threads which are kept spare
|
||||
# MaxSpareThreads: maximum number of worker threads which are kept spare
|
||||
# ThreadsPerChild: constant number of worker threads in each server process
|
||||
# MaxRequestsPerChild: maximum number of requests a server process serves
|
||||
<IfModule mpm_worker_module>
|
||||
StartServers <%= node['apache']['worker']['startservers'] %>
|
||||
MaxClients <%= node['apache']['worker']['maxclients'] %>
|
||||
MinSpareThreads <%= node['apache']['worker']['minsparethreads'] %>
|
||||
MaxSpareThreads <%= node['apache']['worker']['maxsparethreads'] %>
|
||||
ThreadsPerChild <%= node['apache']['worker']['threadsperchild'] %>
|
||||
MaxRequestsPerChild <%= node['apache']['worker']['maxrequestsperchild'] %>
|
||||
</IfModule>
|
||||
|
||||
User <%= node['apache']['user'] %>
|
||||
Group <%= node['apache']['group'] %>
|
||||
|
||||
#
|
||||
# AccessFileName: The name of the file to look for in each directory
|
||||
# for additional configuration directives. See also the AllowOverride
|
||||
# directive.
|
||||
#
|
||||
|
||||
AccessFileName .htaccess
|
||||
|
||||
#
|
||||
# The following lines prevent .htaccess and .htpasswd files from being
|
||||
# viewed by Web clients.
|
||||
#
|
||||
<Files ~ "^\.ht">
|
||||
Order allow,deny
|
||||
Deny from all
|
||||
</Files>
|
||||
|
||||
#
|
||||
# DefaultType is the default MIME type the server will use for a document
|
||||
# if it cannot otherwise determine one, such as from filename extensions.
|
||||
# If your server contains mostly text or HTML documents, "text/plain" is
|
||||
# a good value. If most of your content is binary, such as applications
|
||||
# or images, you may want to use "application/octet-stream" instead to
|
||||
# keep browsers from trying to display binary files as though they are
|
||||
# text.
|
||||
#
|
||||
DefaultType text/plain
|
||||
|
||||
|
||||
#
|
||||
# HostnameLookups: Log the names of clients or just their IP addresses
|
||||
# e.g., www.apache.org (on) or 204.62.129.132 (off).
|
||||
# The default is off because it'd be overall better for the net if people
|
||||
# had to knowingly turn this feature on, since enabling it means that
|
||||
# each client request will result in AT LEAST one lookup request to the
|
||||
# nameserver.
|
||||
#
|
||||
HostnameLookups Off
|
||||
|
||||
# ErrorLog: The location of the error log file.
|
||||
# If you do not specify an ErrorLog directive within a <VirtualHost>
|
||||
# container, error messages relating to that virtual host will be
|
||||
# logged here. If you *do* define an error logfile for a <VirtualHost>
|
||||
# container, that host's errors will be logged there and not here.
|
||||
#
|
||||
ErrorLog <%= node['apache']['log_dir'] %>/<%= node['apache']['error_log'] %>
|
||||
|
||||
#
|
||||
# LogLevel: Control the number of messages logged to the error_log.
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
#
|
||||
LogLevel warn
|
||||
|
||||
# COOK-1021: Dummy LoadModule directive to aid module installations
|
||||
#LoadModule dummy_module modules/mod_dummy.so
|
||||
|
||||
# Include module configuration:
|
||||
Include <%= node['apache']['dir'] %>/mods-enabled/*.load
|
||||
Include <%= node['apache']['dir'] %>/mods-enabled/*.conf
|
||||
|
||||
<% if node['platform'] == "freebsd" -%>
|
||||
<IfDefine NOHTTPACCEPT>
|
||||
AcceptFilter http none
|
||||
AcceptFilter https none
|
||||
</IfDefine>
|
||||
<% end %>
|
||||
|
||||
# Include ports listing
|
||||
Include <%= node['apache']['dir'] %>/ports.conf
|
||||
|
||||
#
|
||||
# The following directives define some format nicknames for use with
|
||||
# a CustomLog directive (see below).
|
||||
#
|
||||
LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
|
||||
LogFormat "%h %l %u %t \"%r\" %>s %b" common
|
||||
LogFormat "%{Referer}i -> %U" referer
|
||||
LogFormat "%{User-agent}i" agent
|
||||
#
|
||||
|
||||
# Customizable error responses come in three flavors:
|
||||
# 1) plain text 2) local redirects 3) external redirects
|
||||
#
|
||||
# Some examples:
|
||||
#ErrorDocument 500 "The server made a boo boo."
|
||||
#ErrorDocument 404 /missing.html
|
||||
#ErrorDocument 404 "/cgi-bin/missing_handler.pl"
|
||||
#ErrorDocument 402 http://www.example.com/subscription_info.html
|
||||
#
|
||||
|
||||
#
|
||||
# Putting this all together, we can internationalize error responses.
|
||||
#
|
||||
# We use Alias to redirect any /error/HTTP_<error>.html.var response to
|
||||
# our collection of by-error message multi-language collections. We use
|
||||
# includes to substitute the appropriate text.
|
||||
#
|
||||
# You can modify the messages' appearance without changing any of the
|
||||
# default HTTP_<error>.html.var files by adding the line:
|
||||
#
|
||||
# Alias /error/include/ "/your/include/path/"
|
||||
#
|
||||
# which allows you to create your own set of files by starting with the
|
||||
# /usr/share/apache2/error/include/ files and copying them to /your/include/path/,
|
||||
# even on a per-VirtualHost basis. The default include files will display
|
||||
# your Apache version number and your ServerAdmin email address regardless
|
||||
# of the setting of ServerSignature.
|
||||
#
|
||||
# The internationalized error documents require mod_alias, mod_include
|
||||
# and mod_negotiation. To activate them, uncomment the following 30 lines.
|
||||
|
||||
# Alias /error/ "/usr/share/apache2/error/"
|
||||
#
|
||||
# <Directory "/usr/share/apache2/error">
|
||||
# AllowOverride None
|
||||
# Options IncludesNoExec
|
||||
# AddOutputFilter Includes html
|
||||
# AddHandler type-map var
|
||||
# Order allow,deny
|
||||
# Allow from all
|
||||
# LanguagePriority en cs de es fr it nl sv pt-br ro
|
||||
# ForceLanguagePriority Prefer Fallback
|
||||
# </Directory>
|
||||
#
|
||||
# ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var
|
||||
# ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
|
||||
# ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
|
||||
# ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
|
||||
# ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
|
||||
# ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
|
||||
# ErrorDocument 410 /error/HTTP_GONE.html.var
|
||||
# ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
|
||||
# ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
|
||||
# ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
|
||||
# ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
|
||||
# ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
|
||||
# ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
|
||||
# ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
|
||||
# ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
|
||||
# ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
|
||||
# ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var
|
||||
|
||||
|
||||
|
||||
# Include generic snippets of statements
|
||||
Include <%= node['apache']['dir'] %>/conf.d/
|
||||
|
||||
# Include the virtual host configurations:
|
||||
Include <%= node['apache']['dir'] %>/sites-enabled/
|
|
@ -0,0 +1,19 @@
|
|||
God.watch do |w|
|
||||
w.name = "apache2"
|
||||
w.interval = 30.seconds # default
|
||||
w.start = "<%= @params['start'] %>"
|
||||
w.stop = "/etc/init.d/httpd stop"
|
||||
w.restart = "<%= @params['restart'] %>"
|
||||
w.start_grace = 10.seconds
|
||||
w.restart_grace = 10.seconds
|
||||
w.pid_file = "/var/run/httpd.pid"
|
||||
w.behavior(:clean_pid_file)
|
||||
|
||||
w.start_if do |start|
|
||||
start.condition(:process_running) do |c|
|
||||
c.interval = 5.seconds
|
||||
c.running = false
|
||||
c.notify = 'admin'
|
||||
end
|
||||
end
|
||||
end
|
|
@ -0,0 +1,6 @@
|
|||
# Read the documentation before enabling AddDefaultCharset.
|
||||
# In general, it is only a good idea if you know that all your files
|
||||
# have this encoding. It will override any encoding given in the files
|
||||
# in meta http-equiv or xml encoding tags.
|
||||
|
||||
#AddDefaultCharset UTF-8
|
|
@ -0,0 +1,57 @@
|
|||
<VirtualHost *:80>
|
||||
ServerAdmin <%= node['apache']['contact'] %>
|
||||
|
||||
DocumentRoot /var/www/
|
||||
<Directory />
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
</Directory>
|
||||
<Directory /var/www/>
|
||||
Options Indexes FollowSymLinks MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
allow from all
|
||||
# This directive allows us to have apache2's default start page
|
||||
# in /apache2-default/, but still have / go to the right place
|
||||
#RedirectMatch ^/$ /apache2-default/
|
||||
</Directory>
|
||||
|
||||
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
|
||||
<Directory "/usr/lib/cgi-bin">
|
||||
AllowOverride None
|
||||
Options ExecCGI -MultiViews +SymLinksIfOwnerMatch
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
ErrorLog <%= node['apache']['log_dir'] %>/error.log
|
||||
|
||||
# Possible values include: debug, info, notice, warn, error, crit,
|
||||
# alert, emerg.
|
||||
LogLevel warn
|
||||
|
||||
CustomLog <%= node['apache']['log_dir'] %>/access.log combined
|
||||
ServerSignature On
|
||||
|
||||
Alias /doc/ "/usr/share/doc/"
|
||||
<Directory "/usr/share/doc/">
|
||||
Options Indexes MultiViews FollowSymLinks
|
||||
AllowOverride None
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.0/255.0.0.0 ::1/128
|
||||
</Directory>
|
||||
|
||||
<% if %w{ redhat centos scientific fedora }.include?(node['platform']) -%>
|
||||
#
|
||||
# This configuration file enables the default "Welcome"
|
||||
# page if there is no default index page present for
|
||||
# the root URL. To disable the Welcome page, comment
|
||||
# out all the lines below.
|
||||
#
|
||||
<LocationMatch "^/+$">
|
||||
Options -Indexes
|
||||
ErrorDocument 403 /error/noindex.html
|
||||
</LocationMatch>
|
||||
<% end -%>
|
||||
</VirtualHost>
|
|
@ -0,0 +1,2 @@
|
|||
These configs are taken from a Debian apache2.2-common 2.2.11-3 install. They
|
||||
work on CentOS 5.3 with a few conditions using erb.
|
|
@ -0,0 +1,24 @@
|
|||
<IfModule alias_module>
|
||||
#
|
||||
# Aliases: Add here as many aliases as you need (with no limit). The format is
|
||||
# Alias fakename realname
|
||||
#
|
||||
# Note that if you include a trailing / on fakename then the server will
|
||||
# require it to be present in the URL. So "/icons" isn't aliased in this
|
||||
# example, only "/icons/". If the fakename is slash-terminated, then the
|
||||
# realname must also be slash terminated, and if the fakename omits the
|
||||
# trailing slash, the realname must also omit it.
|
||||
#
|
||||
# We include the /icons/ alias for FancyIndexed directory listings. If
|
||||
# you do not use FancyIndexing, you may comment this out.
|
||||
#
|
||||
Alias /icons/ "<%= node['apache']['icondir'] %>/"
|
||||
|
||||
<Directory "<%= node['apache']['icondir'] %>">
|
||||
Options Indexes MultiViews
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1 @@
|
|||
LoadModule authopenid_module <%= node['apache']['libexecdir'] %>/mod_auth_openid.so
|
|
@ -0,0 +1,101 @@
|
|||
<IfModule mod_autoindex.c>
|
||||
#
|
||||
# Directives controlling the display of server-generated directory listings.
|
||||
#
|
||||
|
||||
#
|
||||
# IndexOptions: Controls the appearance of server-generated directory
|
||||
# listings.
|
||||
# Remove/replace the "Charset=UTF-8" if you don't use UTF-8 for your filenames.
|
||||
#
|
||||
IndexOptions FancyIndexing VersionSort HTMLTable NameWidth=* DescriptionWidth=* Charset=UTF-8
|
||||
|
||||
#
|
||||
# AddIcon* directives tell the server which icon to show for different
|
||||
# files or filename extensions. These are only displayed for
|
||||
# FancyIndexed directories.
|
||||
#
|
||||
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip x-bzip2
|
||||
|
||||
AddIconByType (TXT,/icons/text.gif) text/*
|
||||
AddIconByType (IMG,/icons/image2.gif) image/*
|
||||
AddIconByType (SND,/icons/sound2.gif) audio/*
|
||||
AddIconByType (VID,/icons/movie.gif) video/*
|
||||
|
||||
AddIcon /icons/binary.gif .bin .exe
|
||||
AddIcon /icons/binhex.gif .hqx
|
||||
AddIcon /icons/tar.gif .tar
|
||||
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
|
||||
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
|
||||
AddIcon /icons/a.gif .ps .ai .eps
|
||||
AddIcon /icons/layout.gif .html .shtml .htm .pdf
|
||||
AddIcon /icons/text.gif .txt
|
||||
AddIcon /icons/c.gif .c
|
||||
AddIcon /icons/p.gif .pl .py
|
||||
AddIcon /icons/f.gif .for
|
||||
AddIcon /icons/dvi.gif .dvi
|
||||
AddIcon /icons/uuencoded.gif .uu
|
||||
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
|
||||
AddIcon /icons/tex.gif .tex
|
||||
# It's a suffix rule, so simply matching "core" matches "score" as well !
|
||||
AddIcon /icons/bomb.gif /core
|
||||
AddIcon (SND,/icons/sound2.gif) .ogg
|
||||
AddIcon (VID,/icons/movie.gif) .ogm
|
||||
|
||||
AddIcon /icons/back.gif ..
|
||||
AddIcon /icons/hand.right.gif README
|
||||
AddIcon /icons/folder.gif ^^DIRECTORY^^
|
||||
AddIcon /icons/blank.gif ^^BLANKICON^^
|
||||
|
||||
# Default icons for OpenDocument format
|
||||
AddIcon /icons/odf6odt-20x22.png .odt
|
||||
AddIcon /icons/odf6ods-20x22.png .ods
|
||||
AddIcon /icons/odf6odp-20x22.png .odp
|
||||
AddIcon /icons/odf6odg-20x22.png .odg
|
||||
AddIcon /icons/odf6odc-20x22.png .odc
|
||||
AddIcon /icons/odf6odf-20x22.png .odf
|
||||
AddIcon /icons/odf6odb-20x22.png .odb
|
||||
AddIcon /icons/odf6odi-20x22.png .odi
|
||||
AddIcon /icons/odf6odm-20x22.png .odm
|
||||
|
||||
AddIcon /icons/odf6ott-20x22.png .ott
|
||||
AddIcon /icons/odf6ots-20x22.png .ots
|
||||
AddIcon /icons/odf6otp-20x22.png .otp
|
||||
AddIcon /icons/odf6otg-20x22.png .otg
|
||||
AddIcon /icons/odf6otc-20x22.png .otc
|
||||
AddIcon /icons/odf6otf-20x22.png .otf
|
||||
AddIcon /icons/odf6oti-20x22.png .oti
|
||||
AddIcon /icons/odf6oth-20x22.png .oth
|
||||
|
||||
#
|
||||
# DefaultIcon is which icon to show for files which do not have an icon
|
||||
# explicitly set.
|
||||
#
|
||||
DefaultIcon /icons/unknown.gif
|
||||
|
||||
#
|
||||
# AddDescription allows you to place a short description after a file in
|
||||
# server-generated indexes. These are only displayed for FancyIndexed
|
||||
# directories.
|
||||
# Format: AddDescription "description" filename
|
||||
#
|
||||
#AddDescription "GZIP compressed document" .gz
|
||||
#AddDescription "tar archive" .tar
|
||||
#AddDescription "GZIP compressed tar archive" .tgz
|
||||
|
||||
#
|
||||
# ReadmeName is the name of the README file the server will look for by
|
||||
# default, and append to directory listings.
|
||||
#
|
||||
# HeaderName is the name of a file which should be prepended to
|
||||
# directory indexes.
|
||||
ReadmeName README.html
|
||||
HeaderName HEADER.html
|
||||
|
||||
#
|
||||
# IndexIgnore is a set of filenames which directory indexing should ignore
|
||||
# and not include in the listing. Shell-style wildcarding is permitted.
|
||||
#
|
||||
IndexIgnore .??* *~ *# RCS CVS *,v *,t
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,16 @@
|
|||
<IfModule mod_deflate.c>
|
||||
AddOutputFilterByType DEFLATE text/html
|
||||
AddOutputFilterByType DEFLATE text/css
|
||||
AddOutputFilterByType DEFLATE text/plain
|
||||
AddOutputFilterByType DEFLATE text/xml
|
||||
AddOutputFilterByType DEFLATE application/xhtml+xml
|
||||
AddOutputFilterByType DEFLATE application/xml
|
||||
AddOutputFilterByType DEFLATE image/svg+xml
|
||||
AddOutputFilterByType DEFLATE application/rss+xml
|
||||
AddOutputFilterByType DEFLATE application/atom_xml
|
||||
AddOutputFilterByType DEFLATE application/javascript
|
||||
AddOutputFilterByType DEFLATE application/x-javascript
|
||||
AddOutputFilterByType DEFLATE application/x-httpd-php
|
||||
AddOutputFilterByType DEFLATE application/x-httpd-fastphp
|
||||
AddOutputFilterByType DEFLATE application/x-httpd-eruby
|
||||
</IfModule>
|
|
@ -0,0 +1,5 @@
|
|||
<IfModule mod_dir.c>
|
||||
|
||||
DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,10 @@
|
|||
<IfModule mod_fcgid.c>
|
||||
AddHandler fcgid-script .fcgi
|
||||
IPCConnectTimeout 20
|
||||
</IfModule>
|
||||
|
||||
<% if %w{ redhat centos scientific fedora }.include?(node['platform']) -%>
|
||||
# Sane place to put sockets and shared memory file
|
||||
SocketPath run/mod_fcgid
|
||||
SharememPath run/mod_fcgid/fcgid_shm
|
||||
<% end -%>
|
|
@ -0,0 +1,198 @@
|
|||
<IfModule mod_mime.c>
|
||||
|
||||
#
|
||||
# TypesConfig points to the file containing the list of mappings from
|
||||
# filename extension to MIME-type.
|
||||
#
|
||||
<% case node['platform'] -%>
|
||||
<% when "arch" -%>
|
||||
TypesConfig <%= node['apache']['dir'] %>/conf/mime.types
|
||||
<% when "freebsd" -%>
|
||||
TypesConfig <%= node['apache']['dir'] %>/mime.types
|
||||
<% else -%>
|
||||
TypesConfig /etc/mime.types
|
||||
<% end -%>
|
||||
|
||||
#
|
||||
# AddType allows you to add to or override the MIME configuration
|
||||
# file mime.types for specific file types.
|
||||
#
|
||||
#AddType application/x-gzip .tgz
|
||||
#
|
||||
# AddEncoding allows you to have certain browsers uncompress
|
||||
# information on the fly. Note: Not all browsers support this.
|
||||
# Despite the name similarity, the following Add* directives have
|
||||
# nothing to do with the FancyIndexing customization directives above.
|
||||
#
|
||||
#AddEncoding x-compress .Z
|
||||
#AddEncoding x-gzip .gz .tgz
|
||||
#AddEncoding x-bzip2 .bz2
|
||||
#
|
||||
# If the AddEncoding directives above are commented-out, then you
|
||||
# probably should define those extensions to indicate media types:
|
||||
#
|
||||
AddType application/x-compress .Z
|
||||
AddType application/x-gzip .gz .tgz
|
||||
AddType application/x-bzip2 .bz2
|
||||
|
||||
#
|
||||
# DefaultLanguage and AddLanguage allows you to specify the language of
|
||||
# a document. You can then use content negotiation to give a browser a
|
||||
# file in a language the user can understand.
|
||||
#
|
||||
# Specify a default language. This means that all data
|
||||
# going out without a specific language tag (see below) will
|
||||
# be marked with this one. You probably do NOT want to set
|
||||
# this unless you are sure it is correct for all cases.
|
||||
#
|
||||
# * It is generally better to not mark a page as
|
||||
# * being a certain language than marking it with the wrong
|
||||
# * language!
|
||||
#
|
||||
# DefaultLanguage nl
|
||||
#
|
||||
# Note 1: The suffix does not have to be the same as the language
|
||||
# keyword --- those with documents in Polish (whose net-standard
|
||||
# language code is pl) may wish to use "AddLanguage pl .po" to
|
||||
# avoid the ambiguity with the common suffix for perl scripts.
|
||||
#
|
||||
# Note 2: The example entries below illustrate that in some cases
|
||||
# the two character 'Language' abbreviation is not identical to
|
||||
# the two character 'Country' code for its country,
|
||||
# E.g. 'Danmark/dk' versus 'Danish/da'.
|
||||
#
|
||||
# Note 3: In the case of 'ltz' we violate the RFC by using a three char
|
||||
# specifier. There is 'work in progress' to fix this and get
|
||||
# the reference data for rfc1766 cleaned up.
|
||||
#
|
||||
# Catalan (ca) - Croatian (hr) - Czech (cs) - Danish (da) - Dutch (nl)
|
||||
# English (en) - Esperanto (eo) - Estonian (et) - French (fr) - German (de)
|
||||
# Greek-Modern (el) - Hebrew (he) - Italian (it) - Japanese (ja)
|
||||
# Korean (ko) - Luxembourgeois* (ltz) - Norwegian Nynorsk (nn)
|
||||
# Norwegian (no) - Polish (pl) - Portugese (pt)
|
||||
# Brazilian Portuguese (pt-BR) - Russian (ru) - Swedish (sv)
|
||||
# Simplified Chinese (zh-CN) - Spanish (es) - Traditional Chinese (zh-TW)
|
||||
#
|
||||
AddLanguage ca .ca
|
||||
AddLanguage cs .cz .cs
|
||||
AddLanguage da .dk
|
||||
AddLanguage de .de
|
||||
AddLanguage el .el
|
||||
AddLanguage en .en
|
||||
AddLanguage eo .eo
|
||||
# See README.Debian for Spanish
|
||||
AddLanguage es .es
|
||||
AddLanguage et .et
|
||||
AddLanguage fr .fr
|
||||
AddLanguage he .he
|
||||
AddLanguage hr .hr
|
||||
AddLanguage it .it
|
||||
AddLanguage ja .ja
|
||||
AddLanguage ko .ko
|
||||
AddLanguage ltz .ltz
|
||||
AddLanguage nl .nl
|
||||
AddLanguage nn .nn
|
||||
AddLanguage no .no
|
||||
AddLanguage pl .po
|
||||
AddLanguage pt .pt
|
||||
AddLanguage pt-BR .pt-br
|
||||
AddLanguage ru .ru
|
||||
AddLanguage sv .sv
|
||||
# See README.Debian for Turkish
|
||||
AddLanguage tr .tr
|
||||
AddLanguage zh-CN .zh-cn
|
||||
AddLanguage zh-TW .zh-tw
|
||||
|
||||
#
|
||||
# Commonly used filename extensions to character sets. You probably
|
||||
# want to avoid clashes with the language extensions, unless you
|
||||
# are good at carefully testing your setup after each change.
|
||||
# See http://www.iana.org/assignments/character-sets for the
|
||||
# official list of charset names and their respective RFCs.
|
||||
#
|
||||
AddCharset us-ascii .ascii .us-ascii
|
||||
AddCharset ISO-8859-1 .iso8859-1 .latin1
|
||||
AddCharset ISO-8859-2 .iso8859-2 .latin2 .cen
|
||||
AddCharset ISO-8859-3 .iso8859-3 .latin3
|
||||
AddCharset ISO-8859-4 .iso8859-4 .latin4
|
||||
AddCharset ISO-8859-5 .iso8859-5 .cyr .iso-ru
|
||||
AddCharset ISO-8859-6 .iso8859-6 .arb .arabic
|
||||
AddCharset ISO-8859-7 .iso8859-7 .grk .greek
|
||||
AddCharset ISO-8859-8 .iso8859-8 .heb .hebrew
|
||||
AddCharset ISO-8859-9 .iso8859-9 .latin5 .trk
|
||||
AddCharset ISO-8859-10 .iso8859-10 .latin6
|
||||
AddCharset ISO-8859-13 .iso8859-13
|
||||
AddCharset ISO-8859-14 .iso8859-14 .latin8
|
||||
AddCharset ISO-8859-15 .iso8859-15 .latin9
|
||||
AddCharset ISO-8859-16 .iso8859-16 .latin10
|
||||
AddCharset ISO-2022-JP .iso2022-jp .jis
|
||||
AddCharset ISO-2022-KR .iso2022-kr .kis
|
||||
AddCharset ISO-2022-CN .iso2022-cn .cis
|
||||
AddCharset Big5 .Big5 .big5 .b5
|
||||
AddCharset cn-Big5 .cn-big5
|
||||
# For russian, more than one charset is used (depends on client, mostly):
|
||||
AddCharset WINDOWS-1251 .cp-1251 .win-1251
|
||||
AddCharset CP866 .cp866
|
||||
AddCharset KOI8 .koi8
|
||||
AddCharset KOI8-E .koi8-e
|
||||
AddCharset KOI8-r .koi8-r .koi8-ru
|
||||
AddCharset KOI8-U .koi8-u
|
||||
AddCharset KOI8-ru .koi8-uk .ua
|
||||
AddCharset ISO-10646-UCS-2 .ucs2
|
||||
AddCharset ISO-10646-UCS-4 .ucs4
|
||||
AddCharset UTF-7 .utf7
|
||||
AddCharset UTF-8 .utf8
|
||||
AddCharset UTF-16 .utf16
|
||||
AddCharset UTF-16BE .utf16be
|
||||
AddCharset UTF-16LE .utf16le
|
||||
AddCharset UTF-32 .utf32
|
||||
AddCharset UTF-32BE .utf32be
|
||||
AddCharset UTF-32LE .utf32le
|
||||
AddCharset euc-cn .euc-cn
|
||||
AddCharset euc-gb .euc-gb
|
||||
AddCharset euc-jp .euc-jp
|
||||
AddCharset euc-kr .euc-kr
|
||||
#Not sure how euc-tw got in - IANA doesn't list it???
|
||||
AddCharset EUC-TW .euc-tw
|
||||
AddCharset gb2312 .gb2312 .gb
|
||||
AddCharset iso-10646-ucs-2 .ucs-2 .iso-10646-ucs-2
|
||||
AddCharset iso-10646-ucs-4 .ucs-4 .iso-10646-ucs-4
|
||||
AddCharset shift_jis .shift_jis .sjis
|
||||
|
||||
#
|
||||
# AddHandler allows you to map certain file extensions to "handlers":
|
||||
# actions unrelated to filetype. These can be either built into the server
|
||||
# or added with the Action directive (see below)
|
||||
#
|
||||
# To use CGI scripts outside of ScriptAliased directories:
|
||||
# (You will also need to add "ExecCGI" to the "Options" directive.)
|
||||
#
|
||||
#AddHandler cgi-script .cgi
|
||||
|
||||
#
|
||||
# For files that include their own HTTP headers:
|
||||
#
|
||||
#AddHandler send-as-is asis
|
||||
|
||||
#
|
||||
# For server-parsed imagemap files:
|
||||
#
|
||||
#AddHandler imap-file map
|
||||
|
||||
#
|
||||
# For type maps (negotiated resources):
|
||||
# (This is enabled by default to allow the Apache "It Worked" page
|
||||
# to be distributed in multiple languages.)
|
||||
#
|
||||
AddHandler type-map var
|
||||
|
||||
#
|
||||
# Filters allow you to process content before it is sent to the client.
|
||||
#
|
||||
# To parse .shtml files for server-side includes (SSI):
|
||||
# (You will also need to add "Includes" to the "Options" directive.)
|
||||
#
|
||||
AddType text/html .shtml
|
||||
AddOutputFilter INCLUDES .shtml
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,18 @@
|
|||
<IfModule mod_negotiation.c>
|
||||
#
|
||||
# LanguagePriority allows you to give precedence to some languages
|
||||
# in case of a tie during content negotiation.
|
||||
#
|
||||
# Just list the languages in decreasing order of preference. We have
|
||||
# more or less alphabetized them here. You probably want to change this.
|
||||
#
|
||||
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv tr zh-CN zh-TW
|
||||
|
||||
#
|
||||
# ForceLanguagePriority allows you to serve a result page rather than
|
||||
# MULTIPLE CHOICES (Prefer) [in case of a tie] or NOT ACCEPTABLE (Fallback)
|
||||
# [in case no accepted languages matched the available variants]
|
||||
#
|
||||
ForceLanguagePriority Prefer Fallback
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,16 @@
|
|||
<IfModule mod_php5.c>
|
||||
<FilesMatch "\.ph(p3?|tml)$">
|
||||
SetHandler application/x-httpd-php
|
||||
</FilesMatch>
|
||||
<FilesMatch "\.phps$">
|
||||
SetHandler application/x-httpd-php-source
|
||||
</FilesMatch>
|
||||
# To re-enable php in user directories comment the following lines
|
||||
# (from <IfModule ...> to </IfModule>.) Do NOT set it to On as it
|
||||
# prevents .htaccess files from disabling it.
|
||||
<IfModule mod_userdir.c>
|
||||
<Directory /home/*/public_html>
|
||||
php_admin_value engine Off
|
||||
</Directory>
|
||||
</IfModule>
|
||||
</IfModule>
|
|
@ -0,0 +1,19 @@
|
|||
<IfModule mod_proxy.c>
|
||||
#turning ProxyRequests on and allowing proxying from all may allow
|
||||
#spammers to use your proxy to send email.
|
||||
|
||||
ProxyRequests Off
|
||||
|
||||
<Proxy *>
|
||||
AddDefaultCharset off
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
#Allow from .example.com
|
||||
</Proxy>
|
||||
|
||||
# Enable/disable the handling of HTTP/1.1 "Via:" headers.
|
||||
# ("Full" adds the server version; "Block" removes all outgoing Via: headers)
|
||||
# Set to one of: Off | On | Full | Block
|
||||
|
||||
ProxyVia On
|
||||
</IfModule>
|
|
@ -0,0 +1,28 @@
|
|||
<IfModule mod_setenvif.c>
|
||||
|
||||
#
|
||||
# The following directives modify normal HTTP response behavior to
|
||||
# handle known problems with browser implementations.
|
||||
#
|
||||
BrowserMatch "Mozilla/2" nokeepalive
|
||||
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
|
||||
BrowserMatch "RealPlayer 4\.0" force-response-1.0
|
||||
BrowserMatch "Java/1\.0" force-response-1.0
|
||||
BrowserMatch "JDK/1\.0" force-response-1.0
|
||||
|
||||
#
|
||||
# The following directive disables redirects on non-GET requests for
|
||||
# a directory that does not include the trailing slash. This fixes a
|
||||
# problem with Microsoft WebFolders which does not appropriately handle
|
||||
# redirects for folders with DAV methods.
|
||||
# Same deal with Apple's DAV filesystem and Gnome VFS support for DAV.
|
||||
#
|
||||
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
|
||||
BrowserMatch "MS FrontPage" redirect-carefully
|
||||
BrowserMatch "^WebDrive" redirect-carefully
|
||||
BrowserMatch "^WebDAVFS/1.[012]" redirect-carefully
|
||||
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
|
||||
BrowserMatch "^XML Spy" redirect-carefully
|
||||
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,76 @@
|
|||
<IfModule mod_ssl.c>
|
||||
#
|
||||
# Pseudo Random Number Generator (PRNG):
|
||||
# Configure one or more sources to seed the PRNG of the SSL library.
|
||||
# The seed data should be of good random quality.
|
||||
# WARNING! On some platforms /dev/random blocks if not enough entropy
|
||||
# is available. This means you then cannot use the /dev/random device
|
||||
# because it would lead to very long connection times (as long as
|
||||
# it requires to make more entropy available). But usually those
|
||||
# platforms additionally provide a /dev/urandom device which doesn't
|
||||
# block. So, if available, use this one instead. Read the mod_ssl User
|
||||
# Manual for more details.
|
||||
#
|
||||
SSLRandomSeed startup builtin
|
||||
SSLRandomSeed startup file:/dev/urandom 512
|
||||
SSLRandomSeed connect builtin
|
||||
SSLRandomSeed connect file:/dev/urandom 512
|
||||
|
||||
##
|
||||
## SSL Global Context
|
||||
##
|
||||
## All SSL configuration in this context applies both to
|
||||
## the main server and all SSL-enabled virtual hosts.
|
||||
##
|
||||
|
||||
#
|
||||
# Some MIME-types for downloading Certificates and CRLs
|
||||
#
|
||||
AddType application/x-x509-ca-cert .crt
|
||||
AddType application/x-pkcs7-crl .crl
|
||||
|
||||
# Pass Phrase Dialog:
|
||||
# Configure the pass phrase gathering process.
|
||||
# The filtering dialog program (`builtin' is a internal
|
||||
# terminal dialog) has to provide the pass phrase on stdout.
|
||||
SSLPassPhraseDialog builtin
|
||||
|
||||
# Inter-Process Session Cache:
|
||||
# Configure the SSL Session Cache: First the mechanism
|
||||
# to use and second the expiring timeout (in seconds).
|
||||
#SSLSessionCache dbm:/var/run/apache2/ssl_scache
|
||||
<% if %w{ redhat centos scientific fedora amazon }.include?(node['platform']) -%>
|
||||
SSLSessionCache shmcb:/var/cache/mod_ssl/scache(512000)
|
||||
<% elsif node['platform'] == "freebsd" -%>
|
||||
SSLSessionCache shmcb:/var/run/ssl_scache(512000)
|
||||
<% else -%>
|
||||
SSLSessionCache shmcb:/var/run/apache2/ssl_scache
|
||||
<% end -%>
|
||||
SSLSessionCacheTimeout 300
|
||||
|
||||
# Semaphore:
|
||||
# Configure the path to the mutual exclusion semaphore the
|
||||
# SSL engine uses internally for inter-process synchronization.
|
||||
<% if %w{ redhat centos scientific fedora amazon }.include?(node['platform']) -%>
|
||||
SSLMutex default
|
||||
<% elsif node['platform'] == "freebsd" -%>
|
||||
SSLMutex file:/var/run/ssl_mutex
|
||||
<% else -%>
|
||||
SSLMutex file:/var/run/apache2/ssl_mutex
|
||||
<% end -%>
|
||||
|
||||
# SSL Cipher Suite:
|
||||
# List the ciphers that the client is permitted to negotiate.
|
||||
# See the mod_ssl documentation for a complete list.
|
||||
# enable only secure ciphers:
|
||||
SSLCipherSuite HIGH:MEDIUM:!ADH
|
||||
# Use this instead if you want to allow cipher upgrades via SGC facility.
|
||||
# In this case you also have to use something like
|
||||
# SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
|
||||
# see http://httpd.apache.org/docs/2.2/ssl/ssl_howto.html.en#upgradeenc
|
||||
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
|
||||
|
||||
# enable only secure protocols: SSLv3 and TLSv1, but not SSLv2
|
||||
SSLProtocol all -SSLv2
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,16 @@
|
|||
<IfModule mod_status.c>
|
||||
#
|
||||
# Allow server status reports generated by mod_status,
|
||||
# with the URL of http://servername/server-status
|
||||
# Uncomment and change the ".example.com" to allow
|
||||
# access from other hosts.
|
||||
#
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
Order deny,allow
|
||||
Deny from all
|
||||
Allow from localhost ip6-localhost
|
||||
# Allow from .example.com
|
||||
</Location>
|
||||
|
||||
</IfModule>
|
|
@ -0,0 +1,2 @@
|
|||
# Port <%= @port %>
|
||||
-A FWR -p tcp -m tcp --dport <%= @port %> -j ACCEPT
|
|
@ -0,0 +1,6 @@
|
|||
#This file generated via template by Chef.
|
||||
<% @apache_listen_ports.each do |port| -%>
|
||||
Listen <%= port %>
|
||||
NameVirtualHost *:<%= port %>
|
||||
|
||||
<% end -%>
|
|
@ -0,0 +1,50 @@
|
|||
#
|
||||
# Disable access to the entire file system except for the directories that
|
||||
# are explicitly allowed later.
|
||||
#
|
||||
# This currently breaks the configurations that come with some web application
|
||||
# Debian packages. It will be made the default for the release after lenny.
|
||||
#
|
||||
#<Directory />
|
||||
# AllowOverride None
|
||||
# Order Deny,Allow
|
||||
# Deny from all
|
||||
#</Directory>
|
||||
|
||||
|
||||
# Changing the following options will not really affect the security of the
|
||||
# server, but might make attacks slightly more difficult in some cases.
|
||||
|
||||
#
|
||||
# ServerTokens
|
||||
# This directive configures what you return as the Server HTTP response
|
||||
# Header. The default is 'Full' which sends information about the OS-Type
|
||||
# and compiled in modules.
|
||||
# Set to one of: Full | OS | Minimal | Minor | Major | Prod
|
||||
# where Full conveys the most information, and Prod the least.
|
||||
#
|
||||
#ServerTokens Minimal
|
||||
ServerTokens <%= node['apache']['servertokens'] %>
|
||||
|
||||
#
|
||||
# Optionally add a line containing the server version and virtual host
|
||||
# name to server-generated pages (internal error documents, FTP directory
|
||||
# listings, mod_status and mod_info output etc., but not CGI generated
|
||||
# documents or custom error documents).
|
||||
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
|
||||
# Set to one of: On | Off | EMail
|
||||
#
|
||||
#ServerSignature Off
|
||||
ServerSignature <%= node['apache']['serversignature'] %>
|
||||
|
||||
#
|
||||
# Allow TRACE method
|
||||
#
|
||||
# Set to "extended" to also reflect the request body (only for testing and
|
||||
# diagnostic purposes).
|
||||
#
|
||||
# Set to one of: On | Off | extended
|
||||
#
|
||||
#TraceEnable Off
|
||||
TraceEnable <%= node['apache']['traceenable'] %>
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
<VirtualHost *:80>
|
||||
ServerName <%= @params['server_name'] %>
|
||||
ServerAlias <% @params['server_aliases'].each do |a| %><%= "#{a}" %> <% end %>
|
||||
DocumentRoot <%= @params['docroot'] %>
|
||||
RewriteEngine On
|
||||
|
||||
<Directory <%= @params['docroot'] %>>
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
Order allow,deny
|
||||
Allow from all
|
||||
</Directory>
|
||||
|
||||
<Directory />
|
||||
Options FollowSymLinks
|
||||
AllowOverride None
|
||||
</Directory>
|
||||
|
||||
<Location /server-status>
|
||||
SetHandler server-status
|
||||
|
||||
Order Deny,Allow
|
||||
Deny from all
|
||||
Allow from 127.0.0.1
|
||||
</Location>
|
||||
|
||||
LogLevel info
|
||||
ErrorLog <%= node['apache']['log_dir'] %>/<%= @params['name'] %>-error.log
|
||||
CustomLog <%= node['apache']['log_dir'] %>/<%= @params['name'] %>-access.log combined
|
||||
|
||||
RewriteEngine On
|
||||
RewriteLog <%= node['apache']['log_dir'] %>/<%= @application_name %>-rewrite.log
|
||||
RewriteLogLevel 0
|
||||
|
||||
# Canonical host, <%= @params['server_name'] %>
|
||||
RewriteCond %{HTTP_HOST} !^<%= @params['server_name'] %> [NC]
|
||||
RewriteCond %{HTTP_HOST} !^$
|
||||
RewriteRule ^/(.*)$ http://<%= @params['server_name'] %>/$1 [L,R=301]
|
||||
|
||||
RewriteCond %{DOCUMENT_ROOT}/system/maintenance.html -f
|
||||
RewriteCond %{SCRIPT_FILENAME} !maintenance.html
|
||||
RewriteRule ^.*$ /system/maintenance.html [L]
|
||||
</VirtualHost>
|
|
@ -0,0 +1,12 @@
|
|||
Description
|
||||
===========
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
Attributes
|
||||
==========
|
||||
|
||||
Usage
|
||||
=====
|
||||
|
|
@ -0,0 +1,20 @@
|
|||
# Attributes for celery
|
||||
#
|
||||
# Copyright 2011, Rafael Durán Castañeda
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
# Generic settings
|
||||
default[:celery][:create_user] = false
|
||||
default[:celery][:virtualenv] = false
|
|
@ -0,0 +1,47 @@
|
|||
define :celery_instance do
|
||||
include_recipe 'celery'
|
||||
|
||||
name = params[:name]
|
||||
|
||||
params[:user] ||= 'vagrant'
|
||||
# validate :cwd, :kind_of => String, :required => true
|
||||
# validate :log_file, :kind_of => String
|
||||
# validate :pid_file, :kind_of => String
|
||||
# validate :log_level, :regex => /(CRITICAL|ERROR|WARNING|INFO|DEBUG)/
|
||||
# validate :events, :kind_of => [TrueClass, FalseClass]
|
||||
# validate :beat, :kind_of => [TrueClass, FalseClass]
|
||||
# validate :concurrency, :kind_of => Numeric
|
||||
# validate :extra_options, :kind_of => String
|
||||
|
||||
celery_options = ''
|
||||
celery_options += " --logfile=#{params[:log_file]}" if params[:log_file]
|
||||
celery_options += " --pidfile=#{params[:pid_file]}" if params[:pid_file]
|
||||
celery_options += " -l #{params[:log_level]}" if params[:log_level]
|
||||
celery_options += " -c #{params[:concurrency]}" if params[:concurrency]
|
||||
celery_options += " -E" if params[:events]
|
||||
celery_options += " -B" if params[:beat]
|
||||
celery_options += ' ' + params[:extra_options] if params[:extra_options]
|
||||
|
||||
template "/etc/init/#{name}.conf" do
|
||||
source "celery-upstart.conf.erb"
|
||||
cookbook "celery"
|
||||
owner "root"
|
||||
group "root"
|
||||
mode 0644
|
||||
|
||||
variables({
|
||||
:params => params,
|
||||
:celery_options => celery_options
|
||||
})
|
||||
|
||||
notifies :restart, "service[#{name}]"
|
||||
end
|
||||
|
||||
service name do
|
||||
provider Chef::Provider::Service::Upstart
|
||||
enabled true
|
||||
running true
|
||||
supports :restart => true, :reload => true, :status => true
|
||||
action [:enable, :start]
|
||||
end
|
||||
end
|
|
@ -0,0 +1,57 @@
|
|||
maintainer "Rafael Durán Castañeda"
|
||||
maintainer_email "rafadurancastaneda@gmail.com"
|
||||
license "Apache 2.0"
|
||||
description "Installs/Configures celery"
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
|
||||
version "0.0.1"
|
||||
recipe "celery", "Include Celery daemon install/configuration"
|
||||
recipe "celery::user", "Create an user to run Celery daemon"
|
||||
|
||||
supports "ubuntu" # It should work on debian too, but not tested yet
|
||||
|
||||
depends "python"
|
||||
|
||||
attribute "celery/log_dir",
|
||||
:display_name => "Log directory",
|
||||
:description => "Celery daemon log directory",
|
||||
:default => "/var/log/celery"
|
||||
|
||||
attribute "celery/log_level",
|
||||
:display_name => "Log level",
|
||||
:description => "Celery daemon log level",
|
||||
:default => "info"
|
||||
|
||||
attribute "celery/workers",
|
||||
:display_name => "Celery workers",
|
||||
:description => "Celery workers to be spawned",
|
||||
:default => "1"
|
||||
|
||||
attribute "celery/events",
|
||||
:display_name => "Events enabled",
|
||||
:description => "Enables celery events notifications",
|
||||
:default => "true"
|
||||
|
||||
attribute "celery/beat",
|
||||
:display_name => "Celerybeat enabled",
|
||||
:description => "Enables celerybeat",
|
||||
:default => "false"
|
||||
|
||||
attribute "celery/create_user",
|
||||
:display_name => "Create user",
|
||||
:description => "Enables celery user creation",
|
||||
:default => "false"
|
||||
|
||||
attribute "celery/user",
|
||||
:display_name => "Celery user",
|
||||
:description => "Celery daemon user",
|
||||
:default => "celery"
|
||||
|
||||
attribute "celery/group",
|
||||
:display_name => "Celery group",
|
||||
:description => "Celery daemon group",
|
||||
:default => "celery"
|
||||
|
||||
attribute "celery/virtualenv",
|
||||
:display_name => "Virtualenv",
|
||||
:description => "Celery virtualenv where to be installed if provided",
|
||||
:default => "false"
|
|
@ -0,0 +1,26 @@
|
|||
#
|
||||
# Cookbook Name:: celery
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright 2011, Rafael Durán Castañeda
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
include_recipe "python"
|
||||
|
||||
python_pip "celery" do
|
||||
virtualenv node[:celery][:virtualenv] if node[:celery][:virtualenv]
|
||||
action :install
|
||||
end
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
#
|
||||
# Cookbook Name:: celery
|
||||
# Recipe:: user
|
||||
#
|
||||
# Copyright 2011, Rafael Durán Castañeda
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
group "#{node[:celery][:group]}" do
|
||||
action :create
|
||||
end
|
||||
|
||||
user "#{node[:celery][:user]}" do
|
||||
gid "#{node[:celery][:group]}"
|
||||
system true
|
||||
end
|
|
@ -0,0 +1,18 @@
|
|||
# This file is auto generated by chef
|
||||
# Do no edit in place
|
||||
description "Celery job server"
|
||||
author "Maxim Kulkin <mkulkin@mirantis.com>"
|
||||
start on runlevel [2345]
|
||||
stop on runlevel [!2345]
|
||||
#Send KILL after 20 seconds
|
||||
kill timeout 20
|
||||
|
||||
script
|
||||
exec su -c "cd <%= @params[:cwd] %>; <%= @params[:command] || 'celeryd-multi' %> start <%= @params[:workers] || 1 %> <%= @celery_options %>" <%= @params[:user] %>
|
||||
end script
|
||||
|
||||
pre-stop script
|
||||
exec su -c "cd <%= @params[:cwd] %>; <%= @params[:command] || 'celeryd-multi' %> stop <%= @params[:workers] || 1 %> <%= @params[:workers] %> <%= @celery_options %>" <%= @params[:user] %>
|
||||
end script
|
||||
|
||||
respawn
|
|
@ -0,0 +1,44 @@
|
|||
= DESCRIPTION:
|
||||
|
||||
Installs Python Django package and sets up Apache2 to serve a django application.
|
||||
|
||||
= REQUIREMENTS:
|
||||
|
||||
Opscode cookbooks, http://github.com/opscode/cookbooks/tree/master:
|
||||
|
||||
* python
|
||||
* apache2
|
||||
|
||||
= ATTRIBUTES:
|
||||
|
||||
node[:django][:web_server] - set whether to use mod_python or mod_wsgi. Defaults to mod_wsgi because that is the recommended web server strategy to use by the Django creator.
|
||||
|
||||
= USAGE:
|
||||
|
||||
Create the django application using the Apache2 cookbook's web_app define. Normally this would be done in a site-cookbook.
|
||||
|
||||
web_app "mysite" do
|
||||
docroot "/srv/mysite"
|
||||
template "mysite.conf.erb"
|
||||
end
|
||||
|
||||
Create the template, 'mysite.conf.erb' within the site-cookbook. Make sure the django settings are correct. The web_app define copies the template over and enables it as an apache2 site.
|
||||
|
||||
The Opscode "application" cookbook is going to grow the ability to deploy a Django application from a source repository. This cookbook will be used to get the Django and Apache software installed and ready.
|
||||
|
||||
= LICENSE & AUTHOR:
|
||||
|
||||
Author:: Joshua Timberman (<joshua@opscode.com>)
|
||||
Copyright:: 2009, Opscode, Inc
|
||||
|
||||
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.
|
|
@ -0,0 +1,22 @@
|
|||
#
|
||||
# Cookbook Name:: django
|
||||
# Recipe:: default
|
||||
# Author:: Joshua Timberman (<joshua@opscode.com>)
|
||||
#
|
||||
# Copyright 2010, Opscode, Inc
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
|
||||
default[:django][:web_server] = "mod_wsgi"
|
||||
default[:django][:install_from] = "pip"
|
|
@ -0,0 +1,42 @@
|
|||
{
|
||||
"suggestions": {
|
||||
},
|
||||
"attributes": {
|
||||
},
|
||||
"maintainer_email": "cookbooks@opscode.com",
|
||||
"conflicting": {
|
||||
},
|
||||
"dependencies": {
|
||||
"python": [
|
||||
|
||||
],
|
||||
"apache2": [
|
||||
|
||||
]
|
||||
},
|
||||
"recipes": {
|
||||
"django": "Installs django and apache2 with mod_python"
|
||||
},
|
||||
"providing": {
|
||||
},
|
||||
"platforms": {
|
||||
"debian": [
|
||||
|
||||
],
|
||||
"ubuntu": [
|
||||
|
||||
]
|
||||
},
|
||||
"license": "Apache 2.0",
|
||||
"version": "0.8.0",
|
||||
"replacing": {
|
||||
},
|
||||
"groupings": {
|
||||
},
|
||||
"name": "django",
|
||||
"recommendations": {
|
||||
},
|
||||
"description": "Installs DJango",
|
||||
"maintainer": "Opscode, Inc.",
|
||||
"long_description": "= DESCRIPTION:\n\nInstalls Python Django package and sets up Apache2 to serve a django application.\n\n= REQUIREMENTS:\n\nOpscode cookbooks, http://github.com/opscode/cookbooks/tree/master:\n\n* python\n* apache2\n\n= ATTRIBUTES:\n\nnode[:django][:web_server] - set whether to use mod_python or mod_wsgi. Defaults to mod_wsgi because that is the recommended web server strategy to use by the Django creator.\n\n= USAGE:\n\nCreate the django application using the Apache2 cookbook's web_app define. Normally this would be done in a site-cookbook.\n\n web_app \"mysite\" do\n docroot \"/srv/mysite\"\n template \"mysite.conf.erb\"\n end\n\nCreate the template, 'mysite.conf.erb' within the site-cookbook. Make sure the django settings are correct. The web_app define copies the template over and enables it as an apache2 site.\n\nThe Opscode \"application\" cookbook is going to grow the ability to deploy a Django application from a source repository. This cookbook will be used to get the Django and Apache software installed and ready.\n\n= LICENSE & AUTHOR:\n\nAuthor:: Joshua Timberman (<joshua@opscode.com>)\nCopyright:: 2009, Opscode, Inc\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n"
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
maintainer "Opscode, Inc."
|
||||
maintainer_email "cookbooks@opscode.com"
|
||||
license "Apache 2.0"
|
||||
description "Installs DJango"
|
||||
long_description IO.read(File.join(File.dirname(__FILE__), 'README.rdoc'))
|
||||
version "0.8.0"
|
||||
|
||||
recipe "django", "Installs django and apache2 with mod_python"
|
||||
|
||||
%w{ ubuntu debian }.each do |os|
|
||||
supports os
|
||||
end
|
||||
|
||||
%w{ apache2 python}.each do |cb|
|
||||
depends cb
|
||||
end
|
|
@ -0,0 +1,24 @@
|
|||
#
|
||||
# Cookbook Name:: django
|
||||
# Recipe:: default
|
||||
#
|
||||
# Copyright 2009, Opscode, Inc.
|
||||
#
|
||||
# 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.
|
||||
#
|
||||
include_recipe "apache2"
|
||||
include_recipe "apache2::#{node[:django][:web_server]}"
|
||||
include_recipe "python"
|
||||
|
||||
include_recipe "django::#{node.django.install_from}"
|
||||
|
|
@ -0,0 +1,4 @@
|
|||
package "python-django" do
|
||||
action :install
|
||||
end
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
|
||||
python_pip 'Django' do
|
||||
version node[:django][:version] if node[:django][:version]
|
||||
action :install
|
||||
end
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue