vagrant-managed-servers 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +17 -0
- data/Berksfile +4 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile +14 -0
- data/LICENSE +8 -0
- data/README.md +142 -0
- data/Rakefile +21 -0
- data/Vagrantfile +44 -0
- data/cookbooks/apache2/CHANGELOG.md +95 -0
- data/cookbooks/apache2/CONTRIBUTING.md +257 -0
- data/cookbooks/apache2/Gemfile +10 -0
- data/cookbooks/apache2/LICENSE +201 -0
- data/cookbooks/apache2/README.md +567 -0
- data/cookbooks/apache2/attributes/default.rb +149 -0
- data/cookbooks/apache2/attributes/mod_auth_cas.rb +2 -0
- data/cookbooks/apache2/attributes/mod_auth_openid.rb +32 -0
- data/cookbooks/apache2/definitions/apache_conf.rb +26 -0
- data/cookbooks/apache2/definitions/apache_module.rb +53 -0
- data/cookbooks/apache2/definitions/apache_site.rb +43 -0
- data/cookbooks/apache2/definitions/web_app.rb +49 -0
- data/cookbooks/apache2/files/default/apache2_module_conf_generate.pl +41 -0
- data/cookbooks/apache2/files/default/tests/minitest/default_test.rb +77 -0
- data/cookbooks/apache2/files/default/tests/minitest/god_monitor_test.rb +34 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_apreq2_test.rb +19 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_auth_cas_test.rb +11 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_auth_openid_test.rb +37 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_cgi_test.rb +13 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_dav_svn_test.rb +14 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_fastcgi.rb +11 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_perl_test.rb +18 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_php5_test.rb +13 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_python_test.rb +10 -0
- data/cookbooks/apache2/files/default/tests/minitest/mod_ssl_test.rb +23 -0
- data/cookbooks/apache2/files/default/tests/minitest/support/helpers.rb +50 -0
- data/cookbooks/apache2/metadata.json +513 -0
- data/cookbooks/apache2/metadata.rb +207 -0
- data/cookbooks/apache2/recipes/default.rb +208 -0
- data/cookbooks/apache2/recipes/god_monitor.rb +33 -0
- data/cookbooks/apache2/recipes/logrotate.rb +29 -0
- data/cookbooks/apache2/recipes/mod_alias.rb +22 -0
- data/cookbooks/apache2/recipes/mod_apreq2.rb +54 -0
- data/cookbooks/apache2/recipes/mod_auth_basic.rb +20 -0
- data/cookbooks/apache2/recipes/mod_auth_cas.rb +59 -0
- data/cookbooks/apache2/recipes/mod_auth_digest.rb +20 -0
- data/cookbooks/apache2/recipes/mod_auth_openid.rb +111 -0
- data/cookbooks/apache2/recipes/mod_authn_file.rb +20 -0
- data/cookbooks/apache2/recipes/mod_authnz_ldap.rb +20 -0
- data/cookbooks/apache2/recipes/mod_authz_default.rb +20 -0
- data/cookbooks/apache2/recipes/mod_authz_groupfile.rb +20 -0
- data/cookbooks/apache2/recipes/mod_authz_host.rb +20 -0
- data/cookbooks/apache2/recipes/mod_authz_user.rb +20 -0
- data/cookbooks/apache2/recipes/mod_autoindex.rb +22 -0
- data/cookbooks/apache2/recipes/mod_cgi.rb +20 -0
- data/cookbooks/apache2/recipes/mod_dav.rb +20 -0
- data/cookbooks/apache2/recipes/mod_dav_fs.rb +21 -0
- data/cookbooks/apache2/recipes/mod_dav_svn.rb +41 -0
- data/cookbooks/apache2/recipes/mod_deflate.rb +22 -0
- data/cookbooks/apache2/recipes/mod_dir.rb +22 -0
- data/cookbooks/apache2/recipes/mod_env.rb +20 -0
- data/cookbooks/apache2/recipes/mod_expires.rb +20 -0
- data/cookbooks/apache2/recipes/mod_fastcgi.rb +26 -0
- data/cookbooks/apache2/recipes/mod_fcgid.rb +55 -0
- data/cookbooks/apache2/recipes/mod_headers.rb +20 -0
- data/cookbooks/apache2/recipes/mod_include.rb +20 -0
- data/cookbooks/apache2/recipes/mod_ldap.rb +20 -0
- data/cookbooks/apache2/recipes/mod_log_config.rb +24 -0
- data/cookbooks/apache2/recipes/mod_logio.rb +24 -0
- data/cookbooks/apache2/recipes/mod_mime.rb +22 -0
- data/cookbooks/apache2/recipes/mod_negotiation.rb +22 -0
- data/cookbooks/apache2/recipes/mod_perl.rb +44 -0
- data/cookbooks/apache2/recipes/mod_php5.rb +77 -0
- data/cookbooks/apache2/recipes/mod_proxy.rb +22 -0
- data/cookbooks/apache2/recipes/mod_proxy_ajp.rb +21 -0
- data/cookbooks/apache2/recipes/mod_proxy_balancer.rb +20 -0
- data/cookbooks/apache2/recipes/mod_proxy_connect.rb +20 -0
- data/cookbooks/apache2/recipes/mod_proxy_http.rb +20 -0
- data/cookbooks/apache2/recipes/mod_python.rb +38 -0
- data/cookbooks/apache2/recipes/mod_rewrite.rb +20 -0
- data/cookbooks/apache2/recipes/mod_setenvif.rb +22 -0
- data/cookbooks/apache2/recipes/mod_ssl.rb +46 -0
- data/cookbooks/apache2/recipes/mod_status.rb +22 -0
- data/cookbooks/apache2/recipes/mod_wsgi.rb +38 -0
- data/cookbooks/apache2/recipes/mod_xsendfile.rb +38 -0
- data/cookbooks/apache2/templates/default/a2dismod.erb +22 -0
- data/cookbooks/apache2/templates/default/a2dissite.erb +29 -0
- data/cookbooks/apache2/templates/default/a2enmod.erb +37 -0
- data/cookbooks/apache2/templates/default/a2ensite.erb +38 -0
- data/cookbooks/apache2/templates/default/apache2.conf.erb +237 -0
- data/cookbooks/apache2/templates/default/apache2.god.erb +19 -0
- data/cookbooks/apache2/templates/default/charset.erb +6 -0
- data/cookbooks/apache2/templates/default/default-site.erb +57 -0
- data/cookbooks/apache2/templates/default/mods/README +2 -0
- data/cookbooks/apache2/templates/default/mods/alias.conf.erb +24 -0
- data/cookbooks/apache2/templates/default/mods/auth_cas.conf.erb +1 -0
- data/cookbooks/apache2/templates/default/mods/auth_cas.load.erb +1 -0
- data/cookbooks/apache2/templates/default/mods/authopenid.load.erb +1 -0
- data/cookbooks/apache2/templates/default/mods/autoindex.conf.erb +101 -0
- data/cookbooks/apache2/templates/default/mods/deflate.conf.erb +16 -0
- data/cookbooks/apache2/templates/default/mods/dir.conf.erb +5 -0
- data/cookbooks/apache2/templates/default/mods/fastcgi.conf.erb +5 -0
- data/cookbooks/apache2/templates/default/mods/fcgid.conf.erb +10 -0
- data/cookbooks/apache2/templates/default/mods/mime.conf.erb +198 -0
- data/cookbooks/apache2/templates/default/mods/negotiation.conf.erb +18 -0
- data/cookbooks/apache2/templates/default/mods/php5.conf.erb +16 -0
- data/cookbooks/apache2/templates/default/mods/proxy.conf.erb +19 -0
- data/cookbooks/apache2/templates/default/mods/setenvif.conf.erb +28 -0
- data/cookbooks/apache2/templates/default/mods/ssl.conf.erb +76 -0
- data/cookbooks/apache2/templates/default/mods/status.conf.erb +26 -0
- data/cookbooks/apache2/templates/default/port_apache.erb +2 -0
- data/cookbooks/apache2/templates/default/ports.conf.erb +6 -0
- data/cookbooks/apache2/templates/default/security.erb +50 -0
- data/cookbooks/apache2/templates/default/web_app.conf.erb +43 -0
- data/cookbooks/apt/Berksfile +8 -0
- data/cookbooks/apt/CHANGELOG.md +97 -0
- data/cookbooks/apt/CONTRIBUTING +29 -0
- data/cookbooks/apt/LICENSE +201 -0
- data/cookbooks/apt/README.md +243 -0
- data/cookbooks/apt/TESTING.md +25 -0
- data/cookbooks/apt/attributes/default.rb +4 -0
- data/cookbooks/apt/files/default/apt-proxy-v2.conf +50 -0
- data/cookbooks/apt/metadata.json +1 -0
- data/cookbooks/apt/metadata.rb +30 -0
- data/cookbooks/apt/providers/preference.rb +61 -0
- data/cookbooks/apt/providers/repository.rb +132 -0
- data/cookbooks/apt/recipes/cacher-client.rb +59 -0
- data/cookbooks/apt/recipes/cacher-ng.rb +40 -0
- data/cookbooks/apt/recipes/default.rb +68 -0
- data/cookbooks/apt/resources/preference.rb +30 -0
- data/cookbooks/apt/resources/repository.rb +40 -0
- data/cookbooks/apt/templates/debian-6.0/acng.conf.erb +174 -0
- data/cookbooks/apt/templates/default/01proxy.erb +2 -0
- data/cookbooks/apt/templates/default/acng.conf.erb +276 -0
- data/cookbooks/apt/templates/ubuntu-10.04/acng.conf.erb +270 -0
- data/dummy.box +0 -0
- data/lib/vagrant-managed-servers.rb +18 -0
- data/lib/vagrant-managed-servers/action.rb +114 -0
- data/lib/vagrant-managed-servers/action/is_created.rb +18 -0
- data/lib/vagrant-managed-servers/action/is_reachable.rb +18 -0
- data/lib/vagrant-managed-servers/action/link_server.rb +31 -0
- data/lib/vagrant-managed-servers/action/message_not_reachable.rb +16 -0
- data/lib/vagrant-managed-servers/action/read_state.rb +84 -0
- data/lib/vagrant-managed-servers/action/sync_folders.rb +85 -0
- data/lib/vagrant-managed-servers/action/unlink_server.rb +30 -0
- data/lib/vagrant-managed-servers/action/warn_networks.rb +19 -0
- data/lib/vagrant-managed-servers/config.rb +28 -0
- data/lib/vagrant-managed-servers/errors.rb +19 -0
- data/lib/vagrant-managed-servers/plugin.rb +72 -0
- data/lib/vagrant-managed-servers/provider.rb +51 -0
- data/lib/vagrant-managed-servers/util/timer.rb +17 -0
- data/lib/vagrant-managed-servers/version.rb +5 -0
- data/locales/en.yml +45 -0
- data/spec/vagrant-managed-servers/config_spec.rb +28 -0
- data/vagrant-managed-servers.gemspec +56 -0
- metadata +264 -0
@@ -0,0 +1,201 @@
|
|
1
|
+
Apache License
|
2
|
+
Version 2.0, January 2004
|
3
|
+
http://www.apache.org/licenses/
|
4
|
+
|
5
|
+
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
6
|
+
|
7
|
+
1. Definitions.
|
8
|
+
|
9
|
+
"License" shall mean the terms and conditions for use, reproduction,
|
10
|
+
and distribution as defined by Sections 1 through 9 of this document.
|
11
|
+
|
12
|
+
"Licensor" shall mean the copyright owner or entity authorized by
|
13
|
+
the copyright owner that is granting the License.
|
14
|
+
|
15
|
+
"Legal Entity" shall mean the union of the acting entity and all
|
16
|
+
other entities that control, are controlled by, or are under common
|
17
|
+
control with that entity. For the purposes of this definition,
|
18
|
+
"control" means (i) the power, direct or indirect, to cause the
|
19
|
+
direction or management of such entity, whether by contract or
|
20
|
+
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
21
|
+
outstanding shares, or (iii) beneficial ownership of such entity.
|
22
|
+
|
23
|
+
"You" (or "Your") shall mean an individual or Legal Entity
|
24
|
+
exercising permissions granted by this License.
|
25
|
+
|
26
|
+
"Source" form shall mean the preferred form for making modifications,
|
27
|
+
including but not limited to software source code, documentation
|
28
|
+
source, and configuration files.
|
29
|
+
|
30
|
+
"Object" form shall mean any form resulting from mechanical
|
31
|
+
transformation or translation of a Source form, including but
|
32
|
+
not limited to compiled object code, generated documentation,
|
33
|
+
and conversions to other media types.
|
34
|
+
|
35
|
+
"Work" shall mean the work of authorship, whether in Source or
|
36
|
+
Object form, made available under the License, as indicated by a
|
37
|
+
copyright notice that is included in or attached to the work
|
38
|
+
(an example is provided in the Appendix below).
|
39
|
+
|
40
|
+
"Derivative Works" shall mean any work, whether in Source or Object
|
41
|
+
form, that is based on (or derived from) the Work and for which the
|
42
|
+
editorial revisions, annotations, elaborations, or other modifications
|
43
|
+
represent, as a whole, an original work of authorship. For the purposes
|
44
|
+
of this License, Derivative Works shall not include works that remain
|
45
|
+
separable from, or merely link (or bind by name) to the interfaces of,
|
46
|
+
the Work and Derivative Works thereof.
|
47
|
+
|
48
|
+
"Contribution" shall mean any work of authorship, including
|
49
|
+
the original version of the Work and any modifications or additions
|
50
|
+
to that Work or Derivative Works thereof, that is intentionally
|
51
|
+
submitted to Licensor for inclusion in the Work by the copyright owner
|
52
|
+
or by an individual or Legal Entity authorized to submit on behalf of
|
53
|
+
the copyright owner. For the purposes of this definition, "submitted"
|
54
|
+
means any form of electronic, verbal, or written communication sent
|
55
|
+
to the Licensor or its representatives, including but not limited to
|
56
|
+
communication on electronic mailing lists, source code control systems,
|
57
|
+
and issue tracking systems that are managed by, or on behalf of, the
|
58
|
+
Licensor for the purpose of discussing and improving the Work, but
|
59
|
+
excluding communication that is conspicuously marked or otherwise
|
60
|
+
designated in writing by the copyright owner as "Not a Contribution."
|
61
|
+
|
62
|
+
"Contributor" shall mean Licensor and any individual or Legal Entity
|
63
|
+
on behalf of whom a Contribution has been received by Licensor and
|
64
|
+
subsequently incorporated within the Work.
|
65
|
+
|
66
|
+
2. Grant of Copyright License. Subject to the terms and conditions of
|
67
|
+
this License, each Contributor hereby grants to You a perpetual,
|
68
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
69
|
+
copyright license to reproduce, prepare Derivative Works of,
|
70
|
+
publicly display, publicly perform, sublicense, and distribute the
|
71
|
+
Work and such Derivative Works in Source or Object form.
|
72
|
+
|
73
|
+
3. Grant of Patent License. Subject to the terms and conditions of
|
74
|
+
this License, each Contributor hereby grants to You a perpetual,
|
75
|
+
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
76
|
+
(except as stated in this section) patent license to make, have made,
|
77
|
+
use, offer to sell, sell, import, and otherwise transfer the Work,
|
78
|
+
where such license applies only to those patent claims licensable
|
79
|
+
by such Contributor that are necessarily infringed by their
|
80
|
+
Contribution(s) alone or by combination of their Contribution(s)
|
81
|
+
with the Work to which such Contribution(s) was submitted. If You
|
82
|
+
institute patent litigation against any entity (including a
|
83
|
+
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
84
|
+
or a Contribution incorporated within the Work constitutes direct
|
85
|
+
or contributory patent infringement, then any patent licenses
|
86
|
+
granted to You under this License for that Work shall terminate
|
87
|
+
as of the date such litigation is filed.
|
88
|
+
|
89
|
+
4. Redistribution. You may reproduce and distribute copies of the
|
90
|
+
Work or Derivative Works thereof in any medium, with or without
|
91
|
+
modifications, and in Source or Object form, provided that You
|
92
|
+
meet the following conditions:
|
93
|
+
|
94
|
+
(a) You must give any other recipients of the Work or
|
95
|
+
Derivative Works a copy of this License; and
|
96
|
+
|
97
|
+
(b) You must cause any modified files to carry prominent notices
|
98
|
+
stating that You changed the files; and
|
99
|
+
|
100
|
+
(c) You must retain, in the Source form of any Derivative Works
|
101
|
+
that You distribute, all copyright, patent, trademark, and
|
102
|
+
attribution notices from the Source form of the Work,
|
103
|
+
excluding those notices that do not pertain to any part of
|
104
|
+
the Derivative Works; and
|
105
|
+
|
106
|
+
(d) If the Work includes a "NOTICE" text file as part of its
|
107
|
+
distribution, then any Derivative Works that You distribute must
|
108
|
+
include a readable copy of the attribution notices contained
|
109
|
+
within such NOTICE file, excluding those notices that do not
|
110
|
+
pertain to any part of the Derivative Works, in at least one
|
111
|
+
of the following places: within a NOTICE text file distributed
|
112
|
+
as part of the Derivative Works; within the Source form or
|
113
|
+
documentation, if provided along with the Derivative Works; or,
|
114
|
+
within a display generated by the Derivative Works, if and
|
115
|
+
wherever such third-party notices normally appear. The contents
|
116
|
+
of the NOTICE file are for informational purposes only and
|
117
|
+
do not modify the License. You may add Your own attribution
|
118
|
+
notices within Derivative Works that You distribute, alongside
|
119
|
+
or as an addendum to the NOTICE text from the Work, provided
|
120
|
+
that such additional attribution notices cannot be construed
|
121
|
+
as modifying the License.
|
122
|
+
|
123
|
+
You may add Your own copyright statement to Your modifications and
|
124
|
+
may provide additional or different license terms and conditions
|
125
|
+
for use, reproduction, or distribution of Your modifications, or
|
126
|
+
for any such Derivative Works as a whole, provided Your use,
|
127
|
+
reproduction, and distribution of the Work otherwise complies with
|
128
|
+
the conditions stated in this License.
|
129
|
+
|
130
|
+
5. Submission of Contributions. Unless You explicitly state otherwise,
|
131
|
+
any Contribution intentionally submitted for inclusion in the Work
|
132
|
+
by You to the Licensor shall be under the terms and conditions of
|
133
|
+
this License, without any additional terms or conditions.
|
134
|
+
Notwithstanding the above, nothing herein shall supersede or modify
|
135
|
+
the terms of any separate license agreement you may have executed
|
136
|
+
with Licensor regarding such Contributions.
|
137
|
+
|
138
|
+
6. Trademarks. This License does not grant permission to use the trade
|
139
|
+
names, trademarks, service marks, or product names of the Licensor,
|
140
|
+
except as required for reasonable and customary use in describing the
|
141
|
+
origin of the Work and reproducing the content of the NOTICE file.
|
142
|
+
|
143
|
+
7. Disclaimer of Warranty. Unless required by applicable law or
|
144
|
+
agreed to in writing, Licensor provides the Work (and each
|
145
|
+
Contributor provides its Contributions) on an "AS IS" BASIS,
|
146
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
147
|
+
implied, including, without limitation, any warranties or conditions
|
148
|
+
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
149
|
+
PARTICULAR PURPOSE. You are solely responsible for determining the
|
150
|
+
appropriateness of using or redistributing the Work and assume any
|
151
|
+
risks associated with Your exercise of permissions under this License.
|
152
|
+
|
153
|
+
8. Limitation of Liability. In no event and under no legal theory,
|
154
|
+
whether in tort (including negligence), contract, or otherwise,
|
155
|
+
unless required by applicable law (such as deliberate and grossly
|
156
|
+
negligent acts) or agreed to in writing, shall any Contributor be
|
157
|
+
liable to You for damages, including any direct, indirect, special,
|
158
|
+
incidental, or consequential damages of any character arising as a
|
159
|
+
result of this License or out of the use or inability to use the
|
160
|
+
Work (including but not limited to damages for loss of goodwill,
|
161
|
+
work stoppage, computer failure or malfunction, or any and all
|
162
|
+
other commercial damages or losses), even if such Contributor
|
163
|
+
has been advised of the possibility of such damages.
|
164
|
+
|
165
|
+
9. Accepting Warranty or Additional Liability. While redistributing
|
166
|
+
the Work or Derivative Works thereof, You may choose to offer,
|
167
|
+
and charge a fee for, acceptance of support, warranty, indemnity,
|
168
|
+
or other liability obligations and/or rights consistent with this
|
169
|
+
License. However, in accepting such obligations, You may act only
|
170
|
+
on Your own behalf and on Your sole responsibility, not on behalf
|
171
|
+
of any other Contributor, and only if You agree to indemnify,
|
172
|
+
defend, and hold each Contributor harmless for any liability
|
173
|
+
incurred by, or claims asserted against, such Contributor by reason
|
174
|
+
of your accepting any such warranty or additional liability.
|
175
|
+
|
176
|
+
END OF TERMS AND CONDITIONS
|
177
|
+
|
178
|
+
APPENDIX: How to apply the Apache License to your work.
|
179
|
+
|
180
|
+
To apply the Apache License to your work, attach the following
|
181
|
+
boilerplate notice, with the fields enclosed by brackets "[]"
|
182
|
+
replaced with your own identifying information. (Don't include
|
183
|
+
the brackets!) The text should be enclosed in the appropriate
|
184
|
+
comment syntax for the file format. We also recommend that a
|
185
|
+
file or class name and description of purpose be included on the
|
186
|
+
same "printed page" as the copyright notice for easier
|
187
|
+
identification within third-party archives.
|
188
|
+
|
189
|
+
Copyright [yyyy] [name of copyright owner]
|
190
|
+
|
191
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
192
|
+
you may not use this file except in compliance with the License.
|
193
|
+
You may obtain a copy of the License at
|
194
|
+
|
195
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
196
|
+
|
197
|
+
Unless required by applicable law or agreed to in writing, software
|
198
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
199
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
200
|
+
See the License for the specific language governing permissions and
|
201
|
+
limitations under the License.
|
@@ -0,0 +1,567 @@
|
|
1
|
+
Description
|
2
|
+
===========
|
3
|
+
|
4
|
+
This cookbook provides a complete Debian/Ubuntu style Apache HTTPD
|
5
|
+
configuration. Non-Debian based distributions such as Red Hat/CentOS,
|
6
|
+
ArchLinux and others supported by this cookbook will have a
|
7
|
+
configuration that mimics Debian/Ubuntu style as it is easier to
|
8
|
+
manage with Chef.
|
9
|
+
|
10
|
+
Debian-style Apache configuration uses scripts to manage modules and
|
11
|
+
sites (vhosts). The scripts are:
|
12
|
+
|
13
|
+
* a2ensite
|
14
|
+
* a2dissite
|
15
|
+
* a2enmod
|
16
|
+
* a2dismod
|
17
|
+
|
18
|
+
This cookbook ships with templates of these scripts for non
|
19
|
+
Debian/Ubuntu platforms. The scripts are used in the __Definitions__
|
20
|
+
below.
|
21
|
+
|
22
|
+
Requirements
|
23
|
+
============
|
24
|
+
|
25
|
+
## Ohai and Chef:
|
26
|
+
|
27
|
+
* Ohai: 0.6.12+
|
28
|
+
* Chef: 0.10.10+
|
29
|
+
|
30
|
+
As of v1.2.0, this cookbook makes use of `node['platform_family']` to
|
31
|
+
simplify platform selection logic. This attribute was introduced in
|
32
|
+
Ohai v0.6.12. The recipe methods were introduced in Chef v0.10.10. If
|
33
|
+
you must run an older version of Chef or Ohai, use [version 1.1.16 of
|
34
|
+
this cookbook](http://community.opscode.com/cookbooks/apache2/versions/1_1_16/downloads).
|
35
|
+
|
36
|
+
## Cookbooks:
|
37
|
+
|
38
|
+
This cookbook doesn't have direct dependencies on other cookbooks, as
|
39
|
+
none are needed for the default recipe or the general use cases.
|
40
|
+
|
41
|
+
Depending on your OS configuration and security policy, you may need
|
42
|
+
additional recipes or cookbooks for this cookbook's recipes to
|
43
|
+
converge on the node. In particular, the following Operating System
|
44
|
+
settings may affect the behavior of this cookbook:
|
45
|
+
|
46
|
+
* apt cache outdated
|
47
|
+
* SELinux enabled
|
48
|
+
* IPtables
|
49
|
+
* Compile tools
|
50
|
+
* 3rd party repositories
|
51
|
+
|
52
|
+
On Ubuntu/Debian, use Opscode's `apt` cookbook to ensure the package
|
53
|
+
cache is updated so Chef can install packages, or consider putting
|
54
|
+
apt-get in your bootstrap process or
|
55
|
+
[knife bootstrap template](http://wiki.opscode.com/display/chef/Knife+Bootstrap).
|
56
|
+
|
57
|
+
On RHEL, SELinux is enabled by default. The `selinux` cookbook
|
58
|
+
contains a `permissive` recipe that can be used to set SELinux to
|
59
|
+
"Permissive" state. Otherwise, additional recipes need to be created
|
60
|
+
by the user to address SELinux permissions.
|
61
|
+
|
62
|
+
The easiest but **certainly not ideal way** to deal with IPtables is
|
63
|
+
to flush all rules. Opscode does provide an `iptables` cookbook but is
|
64
|
+
migrating from the approach used there to a more robust solution
|
65
|
+
utilizing a general "firewall" LWRP that would have an "iptables"
|
66
|
+
provider. Alternately, you can use ufw, with Opscode's `ufw` and
|
67
|
+
`firewall` cookbooks to set up rules. See those cookbooks' READMEs for
|
68
|
+
documentation.
|
69
|
+
|
70
|
+
Build/compile tools may not be installed on the system by default.
|
71
|
+
Some recipes (e.g., `apache2::mod_auth_openid`) build the module from
|
72
|
+
source. Use Opscode's `build-essential` cookbook to get essential
|
73
|
+
build packages installed.
|
74
|
+
|
75
|
+
On ArchLinux, if you are using the `apache2::mod_auth_openid` recipe,
|
76
|
+
you also need the `pacman` cookbook for the `pacman_aur` LWRP. Put
|
77
|
+
`recipe[pacman]` on the node's expanded run list (on the node or in a
|
78
|
+
role). This is not an explicit dependency because it is only required
|
79
|
+
for this single recipe and platform; the pacman default recipe
|
80
|
+
performs `pacman -Sy` to keep pacman's package cache updated.
|
81
|
+
|
82
|
+
The `apache2::god_monitor` recipe uses a definition from the `god`
|
83
|
+
cookbook. Include `recipe[god]` in the node's expanded run list to
|
84
|
+
ensure that the cookbook is available to the node, and to set up `god`.
|
85
|
+
|
86
|
+
## Platforms:
|
87
|
+
|
88
|
+
The following platforms and versions are tested and supported using
|
89
|
+
Opscode's [test-kitchen](http://github.com/opscode/test-kitchen).
|
90
|
+
|
91
|
+
* Ubuntu 10.04, 12.04
|
92
|
+
* CentOS 5.8, 6.3
|
93
|
+
|
94
|
+
The following platform families are supported in the code, and are
|
95
|
+
assumed to work based on the successful testing on Ubuntu and CentOS.
|
96
|
+
|
97
|
+
* Debian
|
98
|
+
* Red Hat (rhel)
|
99
|
+
* Fedora
|
100
|
+
* Amazon Linux
|
101
|
+
|
102
|
+
The following platforms are also supported in the code, have been
|
103
|
+
tested manually but are not tested under test-kitchen.
|
104
|
+
|
105
|
+
* SUSE/OpenSUSE
|
106
|
+
* ArchLinux
|
107
|
+
* FreeBSD
|
108
|
+
|
109
|
+
### Notes for RHEL Family:
|
110
|
+
|
111
|
+
On Red Hat Enterprise Linux and derivatives, the EPEL repository may
|
112
|
+
be necessary to install packages used in certain recipes. The
|
113
|
+
`apache2::default` recipe, however, does not require any additional
|
114
|
+
repositories. Opscode's `yum` cookbook contains a recipe to add the
|
115
|
+
EPEL repository. See __Examples__ for more information.
|
116
|
+
|
117
|
+
### Notes for FreeBSD:
|
118
|
+
|
119
|
+
The `apache2::mod_php5` recipe depends on the `freebsd` cookbook,
|
120
|
+
which it uses to set the correct options for compiling the `php5` port
|
121
|
+
from sources. You need to ensure the `freebsd` is in the expanded run
|
122
|
+
list, or this recipe will fail. We don't set an explicit dependency
|
123
|
+
because we feel the `freebsd` cookbook is something users would want
|
124
|
+
on their nodes, and due to the generality of this cookbook we don't
|
125
|
+
want additional specific dependencies.
|
126
|
+
|
127
|
+
Tests
|
128
|
+
=====
|
129
|
+
|
130
|
+
This cookbook in the
|
131
|
+
[source repository](https://github.com/opscode-cookbooks/apache2)
|
132
|
+
contains minitest and cucumber tests. This is an initial proof of
|
133
|
+
concept that will be fleshed out with more supporting infrastructure
|
134
|
+
at a future time.
|
135
|
+
|
136
|
+
Please see the CONTRIBUTING file for information on how to add tests
|
137
|
+
for your contributions.
|
138
|
+
|
139
|
+
Attributes
|
140
|
+
==========
|
141
|
+
|
142
|
+
This cookbook uses many attributes, broken up into a few different
|
143
|
+
kinds.
|
144
|
+
|
145
|
+
Platform specific
|
146
|
+
-----------------
|
147
|
+
|
148
|
+
In order to support the broadest number of platforms, several
|
149
|
+
attributes are determined based on the node's platform. See the
|
150
|
+
attributes/default.rb file for default values in the case statement at
|
151
|
+
the top of the file.
|
152
|
+
|
153
|
+
* `node['apache']['dir']` - Location for the Apache configuration
|
154
|
+
* `node['apache']['log_dir']` - Location for Apache logs
|
155
|
+
* `node['apache']['user']` - User Apache runs as
|
156
|
+
* `node['apache']['group']` - Group Apache runs as
|
157
|
+
* `node['apache']['binary']` - Apache httpd server daemon
|
158
|
+
* `node['apache']['icondir']` - Location for icons
|
159
|
+
* `node['apache']['cache_dir']` - Location for cached files used by Apache itself or recipes
|
160
|
+
* `node['apache']['pid_file']` - Location of the PID file for Apache httpd
|
161
|
+
* `node['apache']['lib_dir']` - Location for shared libraries
|
162
|
+
* `node['apache']['default_site_enabled']` - Default site enabled. Defaults to true on redhat-family platforms
|
163
|
+
* `node['apache']['ext_status']` - if true, enables ExtendedStatus for `mod_status`
|
164
|
+
|
165
|
+
General settings
|
166
|
+
----------------
|
167
|
+
|
168
|
+
These are general settings used in recipes and templates. Default
|
169
|
+
values are noted.
|
170
|
+
|
171
|
+
* `node['apache']['listen_ports']` - Ports that httpd should listen on. Default is an array of ports 80 and 443.
|
172
|
+
* `node['apache']['contact']` - Value for ServerAdmin directive. Default "ops@example.com".
|
173
|
+
* `node['apache']['timeout']` - Value for the Timeout directive. Default is 300.
|
174
|
+
* `node['apache']['keepalive']` - Value for the KeepAlive directive. Default is On.
|
175
|
+
* `node['apache']['keepaliverequests']` - Value for MaxKeepAliveRequests. Default is 100.
|
176
|
+
* `node['apache']['keepalivetimeout']` - Value for the KeepAliveTimeout directive. Default is 5.
|
177
|
+
* `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`".
|
178
|
+
|
179
|
+
The modules listed in `default_modules` will be included as recipes in `recipe[apache::default]`.
|
180
|
+
|
181
|
+
Prefork attributes
|
182
|
+
------------------
|
183
|
+
|
184
|
+
Prefork attributes are used for tuning the Apache HTTPD prefork MPM
|
185
|
+
configuration.
|
186
|
+
|
187
|
+
* `node['apache']['prefork']['startservers']` - initial number of server processes to start. Default is 16.
|
188
|
+
* `node['apache']['prefork']['minspareservers']` - minimum number of spare server processes. Default 16.
|
189
|
+
* `node['apache']['prefork']['maxspareservers']` - maximum number of spare server processes. Default 32.
|
190
|
+
* `node['apache']['prefork']['serverlimit']` - upper limit on configurable server processes. Default 400.
|
191
|
+
* `node['apache']['prefork']['maxclients']` - Maximum number of simultaneous connections.
|
192
|
+
* `node['apache']['prefork']['maxrequestsperchild']` - Maximum number of request a child process will handle. Default 10000.
|
193
|
+
|
194
|
+
Worker attributes
|
195
|
+
-----------------
|
196
|
+
|
197
|
+
Worker attributes are used for tuning the Apache HTTPD worker MPM
|
198
|
+
configuration.
|
199
|
+
|
200
|
+
* `node['apache']['worker']['startservers']` - Initial number of server processes to start. Default 4
|
201
|
+
* `node['apache']['worker']['maxclients']` - Maximum number of simultaneous connections. Default 1024.
|
202
|
+
* `node['apache']['worker']['minsparethreads']` - Minimum number of spare worker threads. Default 64
|
203
|
+
* `node['apache']['worker']['maxsparethreads']` - Maximum number of spare worker threads. Default 192.
|
204
|
+
* `node['apache']['worker']['maxrequestsperchild']` - Maximum number of requests a child process will handle.
|
205
|
+
|
206
|
+
mod\_auth\_openid attributes
|
207
|
+
----------------------------
|
208
|
+
|
209
|
+
The following attributes are in the `attributes/mod_auth_openid.rb`
|
210
|
+
file. Like all Chef attributes files, they are loaded as well, but
|
211
|
+
they're logistically unrelated to the others, being specific to the
|
212
|
+
`mod_auth_openid` recipe.
|
213
|
+
|
214
|
+
* `node['apache']['mod_auth_openid']['checksum']` - sha256sum of the tarball containing the source.
|
215
|
+
* `node['apache']['mod_auth_openid']['version']` - version of the `mod_auth_openid` to download.
|
216
|
+
* `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.
|
217
|
+
* `node['apache']['mod_auth_openid']['dblocation']` - filename of the sqlite3 database used for directive `AuthOpenIDDBLocation`, stored in the `cache_dir` by default.
|
218
|
+
* `node['apache']['mod_auth_openid']['configure_flags']` - optional array of configure flags passed to the `./configure` step in the compilation of the module.
|
219
|
+
|
220
|
+
Recipes
|
221
|
+
=======
|
222
|
+
|
223
|
+
Most of the recipes in the cookbook are for enabling Apache modules.
|
224
|
+
Where additional configuration or behavior is used, it is documented
|
225
|
+
below in more detail.
|
226
|
+
|
227
|
+
The following recipes merely enable the specified module: `mod_alias`,
|
228
|
+
`mod_basic`, `mod_digest`, `mod_authn_file`, `mod_authnz_ldap`,
|
229
|
+
`mod_authz_default`, `mod_authz_groupfile`, `mod_authz_host`,
|
230
|
+
`mod_authz_user`, `mod_autoindex`, `mod_cgi`, `mod_dav_fs`,
|
231
|
+
`mod_dav_svn`, `mod_deflate`, `mod_dir`, `mod_env`, `mod_expires`,
|
232
|
+
`mod_headers`, `mod_ldap`, `mod_log_config`, `mod_mime`,
|
233
|
+
`mod_negotiation`, `mod_proxy`, `mod_proxy_ajp`, `mod_proxy_balancer`,
|
234
|
+
`mod_proxy_connect`, `mod_proxy_http`, `mod_python`, `mod_rewrite`,
|
235
|
+
`mod_setenvif`, `mod_status`, `mod_wsgi`, `mod_xsendfile`.
|
236
|
+
|
237
|
+
On RHEL Family distributions, certain modules ship with a config file
|
238
|
+
with the package. The recipes here may delete those configuration
|
239
|
+
files to ensure they don't conflict with the settings from the
|
240
|
+
cookbook, which will use per-module configuration in
|
241
|
+
`/etc/httpd/mods-enabled`.
|
242
|
+
|
243
|
+
default
|
244
|
+
-------
|
245
|
+
|
246
|
+
The default recipe does a number of things to set up Apache HTTPd. It
|
247
|
+
also includes a number of modules based on the attribute
|
248
|
+
`node['apache']['default_modules']` as recipes.
|
249
|
+
|
250
|
+
logrotate
|
251
|
+
---------
|
252
|
+
|
253
|
+
Logrotate adds a logrotate entry for your apache2 logs. This recipe
|
254
|
+
requires the `logrotate` cookbook; ensure that `recipe[logrotate]` is
|
255
|
+
in the node's expanded run list.
|
256
|
+
|
257
|
+
mod\_auth\_cas
|
258
|
+
--------------
|
259
|
+
|
260
|
+
This recipe installs the proper package and enables the `auth_cas`
|
261
|
+
module. It can install from source or package. Package is the default,
|
262
|
+
set the attribute `node['apache']['mod_auth_cas']['from_source']` to
|
263
|
+
true to enable source installation. Modify the version to install by
|
264
|
+
changing the attribute
|
265
|
+
`node['apache']['mod_auth_cas']['source_revision']`. It is a version
|
266
|
+
tag by default, but could be master, or another tag, or branch.
|
267
|
+
|
268
|
+
The module configuration is written out with the `CASCookiePath` set,
|
269
|
+
otherwise an error loading the module may cause Apache to not start.
|
270
|
+
|
271
|
+
**Note**: This recipe does not work on EL 6 platforms unless
|
272
|
+
epel-testing repository is enabled (outside the scope of this
|
273
|
+
cookbook), or the package version 1.0.8.1-3.el6 or higher is otherwise
|
274
|
+
available to the system due to this bug:
|
275
|
+
|
276
|
+
https://bugzilla.redhat.com/show_bug.cgi?format=multiple&id=708550
|
277
|
+
|
278
|
+
mod\_auth\_openid
|
279
|
+
-----------------
|
280
|
+
|
281
|
+
**Changed via COOK-915**
|
282
|
+
|
283
|
+
This recipe compiles the module from source. In addition to
|
284
|
+
`build-essential`, some other packages are included for installation
|
285
|
+
like the GNU C++ compiler and development headers.
|
286
|
+
|
287
|
+
To use the module in your own cookbooks to authenticate systems using
|
288
|
+
OpenIDs, specify an array of OpenIDs that are allowed to authenticate
|
289
|
+
with the attribute `node['apache']['allowed_openids']`. Use the
|
290
|
+
following in a vhost to protect with OpenID authentication:
|
291
|
+
|
292
|
+
AuthType OpenID require user <%= node['apache']['allowed_openids'].join(' ') %>
|
293
|
+
AuthOpenIDDBLocation <%= node['apache']['mod_auth_openid']['dblocation'] %>
|
294
|
+
|
295
|
+
Change the DBLocation with the attribute as required; this file is in
|
296
|
+
a different location than previous versions, see below. It should be a
|
297
|
+
sane default for most platforms, though, see
|
298
|
+
`attributes/mod_auth_openid.rb`.
|
299
|
+
|
300
|
+
### Changes from COOK-915:
|
301
|
+
|
302
|
+
* `AuthType OpenID` instead of `AuthOpenIDEnabled On`.
|
303
|
+
* `require user` instead of `AuthOpenIDUserProgram`.
|
304
|
+
* A bug(?) in `mod_auth_openid` causes it to segfault when attempting
|
305
|
+
to update the database file if the containing directory is not
|
306
|
+
writable by the HTTPD process owner (e.g., www-data), even if the
|
307
|
+
file is writable. In order to not interfere with other settings from
|
308
|
+
the default recipe in this cookbook, the db file is moved.
|
309
|
+
|
310
|
+
mod\_fastcgi
|
311
|
+
------------
|
312
|
+
|
313
|
+
Install the fastcgi package and enable the module.
|
314
|
+
|
315
|
+
Only work on Debian/Ubuntu
|
316
|
+
|
317
|
+
mod\_fcgid
|
318
|
+
----------
|
319
|
+
|
320
|
+
Installs the fcgi package and enables the module. Requires EPEL on
|
321
|
+
RHEL family.
|
322
|
+
|
323
|
+
On RHEL family, this recipe will delete the fcgid.conf and on version
|
324
|
+
6+, create the /var/run/httpd/mod_fcgid` directory, which prevents the
|
325
|
+
emergency error:
|
326
|
+
|
327
|
+
[emerg] (2)No such file or directory: mod_fcgid: Can't create shared memory for size XX bytes
|
328
|
+
|
329
|
+
mod\_php5
|
330
|
+
--------
|
331
|
+
|
332
|
+
Simply installs the appropriate package on Debian, Ubuntu and
|
333
|
+
ArchLinux.
|
334
|
+
|
335
|
+
On Red Hat family distributions including Fedora, the php.conf that
|
336
|
+
comes with the package is removed. On RHEL platforms less than v6, the
|
337
|
+
`php53` package is used.
|
338
|
+
|
339
|
+
mod\_ssl
|
340
|
+
--------
|
341
|
+
|
342
|
+
Besides installing and enabling `mod_ssl`, this recipe will append
|
343
|
+
port 443 to the `node['apache']['listen_ports']` attribute array and
|
344
|
+
update the ports.conf.
|
345
|
+
|
346
|
+
god\_monitor
|
347
|
+
------------
|
348
|
+
|
349
|
+
Sets up a `god` monitor for Apache. External requirements are the
|
350
|
+
`god` and `runit` cookbooks from Opscode. When using this recipe,
|
351
|
+
include `recipe[god]` in the node's expanded run list to ensure the
|
352
|
+
client downloads it; `god` depends on runit so that will also be
|
353
|
+
downloaded.
|
354
|
+
|
355
|
+
**Note** This recipe is not tested under test-kitchen yet and is
|
356
|
+
pending fix in COOK-744.
|
357
|
+
|
358
|
+
Definitions
|
359
|
+
===========
|
360
|
+
|
361
|
+
The cookbook provides a few definitions. At some point in the future
|
362
|
+
these definitions may be refactored into lightweight resources and
|
363
|
+
providers as suggested by
|
364
|
+
[foodcritic rule FC015](http://acrmp.github.com/foodcritic/#FC015).
|
365
|
+
|
366
|
+
apache\_conf
|
367
|
+
------------
|
368
|
+
|
369
|
+
Sets up configuration file for an Apache module from a template. The
|
370
|
+
template should be in the same cookbook where the definition is used.
|
371
|
+
This is used by the `apache_module` definition and is not often used
|
372
|
+
directly.
|
373
|
+
|
374
|
+
This will use a template resource to write the module's configuration
|
375
|
+
file in the `mods-available` under the Apache configuration directory
|
376
|
+
(`node['apache']['dir']`). This is a platform-dependent location. See
|
377
|
+
__apache\_module__.
|
378
|
+
|
379
|
+
### Parameters:
|
380
|
+
|
381
|
+
* `name` - Name of the template. When used from the `apache_module`,
|
382
|
+
it will use the same name as the module.
|
383
|
+
|
384
|
+
### Examples:
|
385
|
+
|
386
|
+
Create `#{node['apache']['dir']}/mods-available/alias.conf`.
|
387
|
+
|
388
|
+
apache_conf "alias"
|
389
|
+
|
390
|
+
apache\_module
|
391
|
+
--------------
|
392
|
+
|
393
|
+
Enable or disable an Apache module in
|
394
|
+
`#{node['apache']['dir']}/mods-available` by calling `a2enmod` or
|
395
|
+
`a2dismod` to manage the symbolic link in
|
396
|
+
`#{node['apache']['dir']}/mods-enabled`. If the module has a
|
397
|
+
configuration file, a template should be created in the cookbook where
|
398
|
+
the definition is used. See __Examples__.
|
399
|
+
|
400
|
+
### Parameters:
|
401
|
+
|
402
|
+
* `name` - Name of the module enabled or disabled with the `a2enmod` or `a2dismod` scripts.
|
403
|
+
* `enable` - Default true, which uses `a2enmod` to enable the module. If false, the module will be disabled with `a2dismod`.
|
404
|
+
* `conf` - Default false. Set to true if the module has a config file, which will use `apache_conf` for the file.
|
405
|
+
* `filename` - specify the full name of the file, e.g.
|
406
|
+
|
407
|
+
### Examples:
|
408
|
+
|
409
|
+
Enable the ssl module, which also has a configuration template in `templates/default/ssl.conf.erb`.
|
410
|
+
|
411
|
+
apache_module "ssl" do
|
412
|
+
conf true
|
413
|
+
end
|
414
|
+
|
415
|
+
Enable the php5 module, which has a different filename than the module default:
|
416
|
+
|
417
|
+
apache_module "php5" do
|
418
|
+
filename "libphp5.so"
|
419
|
+
end
|
420
|
+
|
421
|
+
Disable a module:
|
422
|
+
|
423
|
+
apache_module "disabled_module" do
|
424
|
+
enable false
|
425
|
+
end
|
426
|
+
|
427
|
+
See the recipes directory for many more examples of `apache_module`.
|
428
|
+
|
429
|
+
apache\_site
|
430
|
+
------------
|
431
|
+
|
432
|
+
Enable or disable a VirtualHost in
|
433
|
+
`#{node['apache']['dir']}/sites-available` by calling a2ensite or
|
434
|
+
a2dissite to manage the symbolic link in
|
435
|
+
`#{node['apache']['dir']}/sites-enabled`.
|
436
|
+
|
437
|
+
The template for the site must be managed as a separate resource. To
|
438
|
+
combine the template with enabling a site, see `web_app`.
|
439
|
+
|
440
|
+
### Parameters:
|
441
|
+
|
442
|
+
* `name` - Name of the site.
|
443
|
+
* `enable` - Default true, which uses `a2ensite` to enable the site. If false, the site will be disabled with `a2dissite`.
|
444
|
+
|
445
|
+
web\_app
|
446
|
+
--------
|
447
|
+
|
448
|
+
Manage a template resource for a VirtualHost site, and enable it with
|
449
|
+
`apache_site`. This is commonly done for managing web applications
|
450
|
+
such as Ruby on Rails, PHP or Django, and the default behavior
|
451
|
+
reflects that. However it is flexible.
|
452
|
+
|
453
|
+
This definition includes some recipes to make sure the system is
|
454
|
+
configured to have Apache and some sane default modules:
|
455
|
+
|
456
|
+
* `apache2`
|
457
|
+
* `apache2::mod_rewrite`
|
458
|
+
* `apache2::mod_deflate`
|
459
|
+
* `apache2::mod_headers`
|
460
|
+
|
461
|
+
It will then configure the template (see __Parameters__ and
|
462
|
+
__Examples__ below), and enable or disable the site per the `enable`
|
463
|
+
parameter.
|
464
|
+
|
465
|
+
### Parameters:
|
466
|
+
|
467
|
+
Current parameters used by the definition:
|
468
|
+
|
469
|
+
* `name` - The name of the site. The template will be written to
|
470
|
+
`#{node['apache']['dir']}/sites-available/#{params['name']}.conf`
|
471
|
+
* `cookbook` - Optional. Cookbook where the source template is. If
|
472
|
+
this is not defined, Chef will use the named template in the
|
473
|
+
cookbook where the definition is used.
|
474
|
+
* `template` - Default `web_app.conf.erb`, source template file.
|
475
|
+
* `enable` - Default true. Passed to the `apache_site` definition.
|
476
|
+
|
477
|
+
Additional parameters can be defined when the definition is called in
|
478
|
+
a recipe, see __Examples__.
|
479
|
+
|
480
|
+
### Examples:
|
481
|
+
|
482
|
+
All parameters are passed into the template. You can use whatever you
|
483
|
+
like. The apache2 cookbook comes with a `web_app.conf.erb` template as
|
484
|
+
an example. The following parameters are used in the template:
|
485
|
+
|
486
|
+
* `server_name` - ServerName directive.
|
487
|
+
* `server_aliases` - ServerAlias directive. Must be an array of aliases.
|
488
|
+
* `docroot` - DocumentRoot directive.
|
489
|
+
* `application_name` - Used in RewriteLog directive. Will be set to the `name` parameter.
|
490
|
+
|
491
|
+
To use the default web_app, for example:
|
492
|
+
|
493
|
+
web_app "my_site" do
|
494
|
+
server_name node['hostname']
|
495
|
+
server_aliases [node['fqdn'], "my-site.example.com"]
|
496
|
+
docroot "/srv/www/my_site"
|
497
|
+
end
|
498
|
+
|
499
|
+
The parameters specified will be used as:
|
500
|
+
|
501
|
+
* `@params[:server_name]`
|
502
|
+
* `@params[:server_aliases]`
|
503
|
+
* `@params[:docroot]`
|
504
|
+
|
505
|
+
In the template. When you write your own, the `@` is significant.
|
506
|
+
|
507
|
+
For more information about Definitions and parameters, see the
|
508
|
+
[Chef Wiki](http://wiki.opscode.com/display/chef/Definitions)
|
509
|
+
|
510
|
+
Usage
|
511
|
+
=====
|
512
|
+
|
513
|
+
Using this cookbook is relatively straightforward. Add the desired
|
514
|
+
recipes to the run list of a node, or create a role. Depending on your
|
515
|
+
environment, you may have multiple roles that use different recipes
|
516
|
+
from this cookbook. Adjust any attributes as desired. For example, to
|
517
|
+
create a basic role for web servers that provide both HTTP and HTTPS:
|
518
|
+
|
519
|
+
% cat roles/webserver.rb
|
520
|
+
name "webserver"
|
521
|
+
description "Systems that serve HTTP and HTTPS"
|
522
|
+
run_list(
|
523
|
+
"recipe[apache2]",
|
524
|
+
"recipe[apache2::mod_ssl]"
|
525
|
+
)
|
526
|
+
default_attributes(
|
527
|
+
"apache2" => {
|
528
|
+
"listen_ports" => ["80", "443"]
|
529
|
+
}
|
530
|
+
)
|
531
|
+
|
532
|
+
For examples of using the definitions in your own recipes, see their
|
533
|
+
respective sections above.
|
534
|
+
|
535
|
+
License and Authors
|
536
|
+
===================
|
537
|
+
|
538
|
+
* Author:: Adam Jacob <adam@opscode.com>
|
539
|
+
* Author:: Joshua Timberman <joshua@opscode.com>
|
540
|
+
* Author:: Bryan McLellan <bryanm@widemile.com>
|
541
|
+
* Author:: Dave Esposito <esposito@espolinux.corpnet.local>
|
542
|
+
* Author:: David Abdemoulaie <github@hobodave.com>
|
543
|
+
* Author:: Edmund Haselwanter <edmund@haselwanter.com>
|
544
|
+
* Author:: Eric Rochester <err8n@virginia.edu>
|
545
|
+
* Author:: Jim Browne <jbrowne@42lines.net>
|
546
|
+
* Author:: Matthew Kent <mkent@magoazul.com>
|
547
|
+
* Author:: Nathen Harvey <nharvey@customink.com>
|
548
|
+
* Author:: Ringo De Smet <ringo.de.smet@amplidata.com>
|
549
|
+
* Author:: Sean OMeara <someara@opscode.com>
|
550
|
+
* Author:: Seth Chisamore <schisamo@opscode.com>
|
551
|
+
* Author:: Gilles Devaux <gilles@peerpong.com>
|
552
|
+
|
553
|
+
* Copyright:: 2009-2012, Opscode, Inc
|
554
|
+
* Copyright:: 2011, Atriso
|
555
|
+
* Copyright:: 2011, CustomInk, LLC.
|
556
|
+
|
557
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
558
|
+
you may not use this file except in compliance with the License.
|
559
|
+
You may obtain a copy of the License at
|
560
|
+
|
561
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
562
|
+
|
563
|
+
Unless required by applicable law or agreed to in writing, software
|
564
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
565
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
566
|
+
See the License for the specific language governing permissions and
|
567
|
+
limitations under the License.
|