Last active
August 29, 2015 14:24
-
-
Save burtlo/c6812c704ac8aee89964 to your computer and use it in GitHub Desktop.
SuSE Apache Cookbook Redux
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# attributes file | |
default["apache"]["sites"]["clowns"] = { "port" => 80, "nose" => "red" } | |
default["apache"]["sites"]["bears"] = { "port" => 81, "nose" => "black" } |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<% if @port != 80 -%> | |
Listen <%= @port %> | |
<% end -%> | |
<VirtualHost *:<%= @port %>> | |
ServerAdmin webmaster@localhost | |
DocumentRoot <%= @document_root %> | |
<Directory /> | |
Options FollowSymLinks | |
AllowOverride None | |
</Directory> | |
<Directory <%= @document_root %>> | |
Options Indexes FollowSymLinks MultiViews | |
AllowOverride None | |
Order allow,deny | |
allow from all | |
</Directory> | |
</VirtualHost> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# Cookbook Name:: apache | |
# Recipe:: default | |
# | |
# Copyright 2015, YOUR_COMPANY_NAME | |
# | |
# All rights reserved - Do Not Redistribute | |
# | |
package "apache2" | |
template "/etc/apache2/httpd.conf" do | |
source "httpd.conf.erb" | |
notifies :restart, "service[apache2]" | |
end | |
node["apache"]["sites"].each do |site_name, site_data| | |
document_root ="/srv/www/htdocs/#{site_name}" | |
# Add a template for Apache virtual host configuration | |
template "/etc/apache2/vhosts.d/#{site_name}.conf" do | |
source "custom.erb" | |
mode "0644" | |
variables( | |
:document_root => document_root, | |
:port => site_data["port"] | |
) | |
notifies :restart, "service[apache2]" | |
end | |
directory document_root do | |
mode "0755" | |
recursive true | |
end | |
# Add a template resource for the virtual host's index.html | |
template "#{document_root}/index.html" do | |
source "index.html.erb" | |
mode "0644" | |
variables( | |
:site_name => site_name, | |
:port => site_data["port"], | |
:nose => site_data["nose"] | |
) | |
end | |
end | |
service "apache2" do | |
action [:enable, :start ] | |
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# | |
# /etc/apache2/httpd.conf | |
# | |
# This is the main Apache server configuration file. It contains the | |
# configuration directives that give the server its instructions. | |
# See <URL:http://httpd.apache.org/docs-2.2/> for detailed information about | |
# the directives. | |
# Based upon the default apache configuration file that ships with apache, | |
# which is based upon the NCSA server configuration files originally by Rob | |
# McCool. This file was knocked together by Peter Poeml <[email protected]>. | |
# If possible, avoid changes to this file. It does mainly contain Include | |
# statements and global settings that can/should be overridden in the | |
# configuration of your virtual hosts. | |
# Quickstart guide: | |
# http://www.opensuse.org/Apache_Howto_Quickstart | |
# Overview of include files, chronologically: | |
# | |
# httpd.conf | |
# | | |
# |-- uid.conf . . . . . . . . . . . . . . UserID/GroupID to run under | |
# |-- server-tuning.conf . . . . . . . . . sizing of the server (how many processes to start, ...) | |
# |-- sysconfig.d/loadmodule.conf . . . . . [*] load these modules | |
# |-- listen.conf . . . . . . . . . . . . . IP adresses / ports to listen on | |
# |-- mod_log_config.conf . . . . . . . . . define logging formats | |
# |-- sysconfig.d/global.conf . . . . . . . [*] server-wide general settings | |
# |-- mod_status.conf . . . . . . . . . . . restrict access to mod_status (server monitoring) | |
# |-- mod_info.conf . . . . . . . . . . . . restrict access to mod_info | |
# |-- mod_reqtimeout.conf ................. limit the time that http clients may consume for the full request | |
# |-- mod_usertrack.conf . . . . . . . . . defaults for cookie-based user tracking | |
# |-- mod_autoindex-defaults.conf . . . . . defaults for displaying of server-generated directory listings | |
# |-- mod_mime-defaults.conf . . . . . . . defaults for mod_mime configuration | |
# |-- errors.conf . . . . . . . . . . . . . customize error responses | |
# |-- ssl-global.conf . . . . . . . . . . . SSL conf that applies to default server _and all_ virtual hosts | |
# | | |
# |-- default-server.conf . . . . . . . . . set up the default server that replies to non-virtual-host requests | |
# | |--mod_userdir.conf . . . . . . . . enable UserDir (if mod_userdir is loaded) | |
# | `--conf.d/apache2-manual?conf . . . add the docs ('?' = if installed) | |
# | | |
# |-- sysconfig.d/include.conf . . . . . . [*] your include files | |
# | (for each file to be included here, put its name | |
# | into APACHE_INCLUDE_* in /etc/sysconfig/apache2) | |
# | | |
# `-- vhosts.d/ . . . . . . . . . . . . . . for each virtual host, place one file here | |
# `-- *.conf . . . . . . . . . . . . . (*.conf is automatically included) | |
# | |
# | |
# Files marked [*] are created from sysconfig upon server restart: instead of | |
# these files, you edit /etc/sysconfig/apache2 | |
# Filesystem layout: | |
# | |
# /etc/apache2/ | |
# |-- charset.conv . . . . . . . . . . . . for mod_auth_ldap | |
# |-- conf.d/ | |
# | |-- apache2-manual.conf . . . . . . . conf that comes with apache2-doc | |
# | |-- mod_php4.conf . . . . . . . . . . (example) conf that comes with apache2-mod_php4 | |
# | `-- ... . . . . . . . . . . . . . . . other configuration added by packages | |
# |-- default-server.conf | |
# |-- errors.conf | |
# |-- httpd.conf . . . . . . . . . . . . . top level configuration file | |
# |-- listen.conf | |
# |-- magic | |
# |-- mime.types -> ../mime.types | |
# |-- mod_autoindex-defaults.conf | |
# |-- mod_info.conf | |
# |-- mod_log_config.conf | |
# |-- mod_mime-defaults.conf | |
# |-- mod_perl-startup.pl | |
# |-- mod_status.conf | |
# |-- mod_userdir.conf | |
# |-- mod_usertrack.conf | |
# |-- server-tuning.conf | |
# |-- ssl-global.conf | |
# |-- ssl.crl/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Revocation Lists (CRL) | |
# |-- ssl.crt/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificates | |
# |-- ssl.csr/ . . . . . . . . . . . . . . PEM-encoded X.509 Certificate Signing Requests | |
# |-- ssl.key/ . . . . . . . . . . . . . . PEM-encoded RSA Private Keys | |
# |-- ssl.prm/ . . . . . . . . . . . . . . public DSA Parameter Files | |
# |-- sysconfig.d/ . . . . . . . . . . . . files that are created from /etc/sysconfig/apache2 | |
# | |-- global.conf | |
# | |-- include.conf | |
# | `-- loadmodule.conf | |
# |-- uid.conf | |
# `-- vhosts.d/ . . . . . . . . . . . . . . put your virtual host configuration (*.conf) here | |
# |-- vhost-ssl.template | |
# `-- vhost.template | |
### Global Environment ###################################################### | |
# | |
# The directives in this section affect the overall operation of Apache, | |
# such as the number of concurrent requests. | |
# run under this user/group id | |
Include /etc/apache2/uid.conf | |
# - how many server processes to start (server pool regulation) | |
# - usage of KeepAlive | |
Include /etc/apache2/server-tuning.conf | |
# 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 /var/log/apache2/error_log | |
# generated from APACHE_MODULES in /etc/sysconfig/apache2 | |
Include /etc/apache2/sysconfig.d/loadmodule.conf | |
# IP addresses / ports to listen on | |
Include /etc/apache2/listen.conf | |
# predefined logging formats | |
Include /etc/apache2/mod_log_config.conf | |
# generated from global settings in /etc/sysconfig/apache2 | |
Include /etc/apache2/sysconfig.d/global.conf | |
# optional mod_status, mod_info | |
Include /etc/apache2/mod_status.conf | |
Include /etc/apache2/mod_info.conf | |
# mod_reqtimeout: | |
Include /etc/apache2/mod_reqtimeout.conf | |
# optional cookie-based user tracking | |
# read the documentation before using it!! | |
Include /etc/apache2/mod_usertrack.conf | |
# configuration of server-generated directory listings | |
Include /etc/apache2/mod_autoindex-defaults.conf | |
# associate MIME types with filename extensions | |
TypesConfig /etc/apache2/mime.types | |
DefaultType text/plain | |
Include /etc/apache2/mod_mime-defaults.conf | |
# set up (customizable) error responses | |
Include /etc/apache2/errors.conf | |
# global (server-wide) SSL configuration, that is not specific to | |
# any virtual host | |
Include /etc/apache2/ssl-global.conf | |
# forbid access to the entire filesystem by default | |
<Directory /> | |
Options None | |
AllowOverride None | |
Order deny,allow | |
Deny from all | |
</Directory> | |
# use .htaccess files for overriding, | |
AccessFileName .htaccess | |
# and never show them | |
<Files ~ "^\.ht"> | |
Order allow,deny | |
Deny from all | |
</Files> | |
# List of resources to look for when the client requests a directory | |
DirectoryIndex index.html index.html.var | |
### 'Main' server configuration ############################################# | |
# | |
# The directives in this section set up the values used by the 'main' | |
# server, which responds to any requests that aren't handled by a | |
# <VirtualHost> definition. These values also provide defaults for | |
# any <VirtualHost> containers you may define later in the file. | |
# | |
# All of these directives may appear inside <VirtualHost> containers, | |
# in which case these default settings will be overridden for the | |
# virtual host being defined. | |
# | |
# Include /etc/apache2/default-server.conf | |
# Another way to include your own files | |
# | |
# The file below is generated from /etc/sysconfig/apache2, | |
# include arbitrary files as named in APACHE_CONF_INCLUDE_FILES and | |
# APACHE_CONF_INCLUDE_DIRS | |
Include /etc/apache2/sysconfig.d/include.conf | |
### Virtual server configuration ############################################ | |
# | |
# VirtualHost: If you want to maintain multiple domains/hostnames on your | |
# machine you can setup VirtualHost containers for them. Most configurations | |
# use only name-based virtual hosts so the server doesn't need to worry about | |
# IP addresses. This is indicated by the asterisks in the directives below. | |
# | |
# Please see the documentation at | |
# <URL:http://httpd.apache.org/docs-2.2/vhosts/> | |
# for further details before you try to setup virtual hosts. | |
# | |
# You may use the command line option '-S' to verify your virtual host | |
# configuration. | |
# | |
Include /etc/apache2/vhosts.d/*.conf | |
# Note: instead of adding your own configuration here, consider | |
# adding it in your own file (/etc/apache2/httpd.conf.local) | |
# putting its name into APACHE_CONF_INCLUDE_FILES in | |
# /etc/sysconfig/apache2 -- this will make system updates | |
# easier :) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body> | |
<h2>We love <%= @site_name %> with <%= @nose %> noses</h2> | |
<%= node["ipaddress"] %>:<%= @port %> | |
</body> | |
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name 'apache' | |
maintainer 'YOUR_COMPANY_NAME' | |
maintainer_email 'YOUR_EMAIL' | |
license 'All rights reserved' | |
description 'Installs/Configures apache' | |
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md')) | |
version '0.2.0' |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment