Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
slapos
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Boxiang Sun
slapos
Commits
2b1bed1a
Commit
2b1bed1a
authored
May 24, 2013
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
apache-frontend: Set a default software type with a default template
parent
401a9c8b
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
116 additions
and
5 deletions
+116
-5
software/apache-frontend/apache-yakari.cfg.in
software/apache-frontend/apache-yakari.cfg.in
+22
-2
software/apache-frontend/common.cfg
software/apache-frontend/common.cfg
+5
-0
software/apache-frontend/default-virtualhost.conf.in
software/apache-frontend/default-virtualhost.conf.in
+63
-0
software/apache-frontend/instance.cfg
software/apache-frontend/instance.cfg
+26
-3
No files found.
software/apache-frontend/apache-yakari.cfg.in
View file @
2b1bed1a
...
@@ -17,10 +17,18 @@ context =
...
@@ -17,10 +17,18 @@ context =
{% set slave_parameter_dict = generic_instance_parameter_dict.copy() -%}
{% set slave_parameter_dict = generic_instance_parameter_dict.copy() -%}
# Set slave domain if none was defined
# Set slave domain if none was defined
{% if slave_instance.get('domain', None) == None -%}
{% if slave_instance.get('domain', None) == None -%}
# Backward compatibility
{% if slave_instance.get('custom_domain', None) != None -%}
{% do slave_instance.__setitem__('domain', slave_instance.get('custom_domain') )-%}
{% else -%}
{% do slave_instance.__setitem__('domain', "%s.%s" % (slave_instance.get('slave_reference').replace("-", "").lower(), domain)) -%}
{% do slave_instance.__setitem__('domain', "%s.%s" % (slave_instance.get('slave_reference').replace("-", "").lower(), domain)) -%}
{% endif -%}
{% endif -%}
{% if 'enable_cache' in slave_instance -%}
{% endif -%}
# Set personal log, two per slave
{% set access_log = '/'.join([apache_log_directory, '%s_access_log' % slave_reference]) -%}
{% set error_log = '/'.join([apache_log_directory, '%s_error_log' % slave_reference]) -%}
# The slave use cache
# The slave use cache
{% if 'enable_cache' in slave_instance -%}
{% do cached_server_dict.__setitem__(slave_instance.get('domain'), slave_instance.get('url')) -%}
{% do cached_server_dict.__setitem__(slave_instance.get('domain'), slave_instance.get('url')) -%}
{% endif -%}
{% endif -%}
{% do slave_instance.__setitem__('url', cache_access) -%}
{% do slave_instance.__setitem__('url', cache_access) -%}
...
@@ -36,6 +44,8 @@ extra-context =
...
@@ -36,6 +44,8 @@ extra-context =
raw domain {{ domain }}
raw domain {{ domain }}
raw https_port {{ https_port }}
raw https_port {{ https_port }}
raw http_port {{ http_port }}
raw http_port {{ http_port }}
raw access_log {{ access_log }}
raw error_log {{ error_log }}
{{ '\n' }}
{{ '\n' }}
# Set apache configuration for slave
# Set apache configuration for slave
...
@@ -43,6 +53,16 @@ extra-context =
...
@@ -43,6 +53,16 @@ extra-context =
{% for key, value in slave_instance.iteritems() -%}
{% for key, value in slave_instance.iteritems() -%}
{{ key }} = {{ dumps(value) }}
{{ key }} = {{ dumps(value) }}
{% endfor %}
{% endfor %}
# Publish slave information
{% set publish_section_title = 'publish-%s-connection-information' % slave_instance.get('slave_reference') -%}
{% do part_list.append(publish_section_title) -%}
[{{ publish_section_title }}]
recipe = slapos.cookbook:publish
slave-reference = {{ slave_instance.get('slave_reference') }}
reference = {{ slave_instance.get('slave_reference') }}
public-ipv4 = {{ public_ipv4 }}
domain = {{ slave_instance.get('domain') }}
{% endfor -%}
{% endfor -%}
...
...
software/apache-frontend/common.cfg
View file @
2b1bed1a
...
@@ -115,6 +115,11 @@ recipe = slapos.recipe.build:download
...
@@ -115,6 +115,11 @@ recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/000.conf.in
url = ${:_profile_base_location_}/000.conf.in
mode = 640
mode = 640
[template-default-slave-virtualhost]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/default-virtualhost.conf.in
mode = 640
[template-empty]
[template-empty]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/empty.in
url = ${:_profile_base_location_}/empty.in
...
...
software/apache-frontend/default-virtualhost.conf.in
0 → 100644
View file @
2b1bed1a
<VirtualHost *:{{ http_port }}>
ServerName {{ slave_parameter.get('domain', '') }}
ServerAlias {{ slave_parameter.get('domain', '') }}
SSLEngine on
SSLProxyEngine on
# Rewrite part
ProxyVia On
ProxyPreserveHost On
ProxyTimeout 600
RewriteEngine On
# One Slave two logs
ErrorLog "{{ error_log }}"
LogLevel warn
LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
CustomLog "{{ access_log }}" combined
{% if slave_parameter.get('type', '') == 'zope' -%}
# First, we check if we have a zope backend server
# If so, let's use Virtual Host Daemon rewrite
# We suppose that Apache listens to 80 (even indirectly thanks to things like iptables)
RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/http/{{ slave_parameter.get('domain', '') }}:80/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P]
{% else -%}
RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/$1 [L,P]
{% endif -%}
# If nothing exist : put a nice error
# ErrorDocument 404 /notfound.html
</VirtualHost>
<VirtualHost *:{{ https_port }}>
ServerName {{ slave_parameter.get('domain', '') }}
ServerAlias {{ slave_parameter.get('domain', '') }}
SSLProxyEngine on
# Rewrite part
ProxyVia On
ProxyPreserveHost On
ProxyTimeout 600
RewriteEngine On
# One Slave two logs
ErrorLog "{{ error_log }}"
LogLevel warn
LogFormat "%h %l %{REMOTE_USER}i %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %D" combined
CustomLog "{{ access_log }}" combined
# Remove "Secure" from cookies, as backend may be https
Header edit Set-Cookie "(?i)^(.+);secure$" "$1"
{% if 'https-only' in slave_parameter -%}
# Not using HTTPS? Ask that guy over there.
# Dummy redirection to https. Note: will work only if https listens
# on standard port (443).
RewriteRule ^/(.*)$ https://%{DOMAIN}%{REQUEST_URI}
{% elif slave_parameter.get('type', '') == 'zope' -%}
# First, we check if we have a zope backend server
# If so, let's use Virtual Host Daemon rewrite
# We suppose that Apache listens to 443 (even indirectly thanks to things like iptables)
RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/VirtualHostBase/https/{{ slave_parameter.get('domain', '') }}:443/{{ slave_parameter.get('path', '') }}/VirtualHostRoot/$1 [L,P]
{% else -%}
RewriteRule ^/(.*)$ {{ slave_parameter.get('url', '') }}/$1 [L,P]
{% endif -%}
</VirtualHost>
software/apache-frontend/instance.cfg
View file @
2b1bed1a
...
@@ -58,7 +58,9 @@ squid-cache = $${:srv}/squid_cache
...
@@ -58,7 +58,9 @@ squid-cache = $${:srv}/squid_cache
[switch-softwaretype]
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
recipe = slapos.cookbook:softwaretype
default = $${dynamic-template-slave-list:rendered}
default = $${dynamic-default-template-slave-list:rendered}
custom-personal = $${dynamic-custom-personal-template-slave-list:rendered}
custom-group = $${dynamic-custom-group-template-slave-list:rendered}
[instance-parameter]
[instance-parameter]
# Fetches parameters defined in SlapOS Master for this instance.
# Fetches parameters defined in SlapOS Master for this instance.
...
@@ -101,7 +103,7 @@ extra-context =
...
@@ -101,7 +103,7 @@ extra-context =
key http_port instance-parameter:configuration.plain_http_port
key http_port instance-parameter:configuration.plain_http_port
key https_port instance-parameter:configuration.port
key https_port instance-parameter:configuration.port
[dynamic-template-slave-list]
[dynamic-
custom-personal-
template-slave-list]
< = jinja2-template-base
< = jinja2-template-base
template = ${template-slave-list:target}
template = ${template-slave-list:target}
filename = instance-slave-list.cfg
filename = instance-slave-list.cfg
...
@@ -120,7 +122,7 @@ extra-context =
...
@@ -120,7 +122,7 @@ extra-context =
raw template_slave_configuration ${template-slave-configuration:target}
raw template_slave_configuration ${template-slave-configuration:target}
raw template_rewrite_cached ${template-rewrite-cached:target}
raw template_rewrite_cached ${template-rewrite-cached:target}
[dynamic-custom-template-slave-list]
[dynamic-custom-
group-
template-slave-list]
< = jinja2-template-base
< = jinja2-template-base
template = ${template-custom-slave-list:target}
template = ${template-custom-slave-list:target}
filename = instance-slave-list.cfg
filename = instance-slave-list.cfg
...
@@ -135,6 +137,27 @@ extra-context =
...
@@ -135,6 +137,27 @@ extra-context =
key rewrite_cached_configuration apache-configuration:cached-rewrite-file
key rewrite_cached_configuration apache-configuration:cached-rewrite-file
key custom_ssl_directory apache-directory:vh-ssl
key custom_ssl_directory apache-directory:vh-ssl
key template_slave_configuration dynamic-virtualhost-template-slave:rendered
key template_slave_configuration dynamic-virtualhost-template-slave:rendered
key apache_log_directory apache-directory:slave-log
raw empty_template ${template-empty:target}
raw cache_access http://$${instance-parameter:ipv4-random}:$${apache-configuration:cache-port}
raw template_rewrite_cached ${template-rewrite-cached:target}
[dynamic-default-template-slave-list]
< = jinja2-template-base
template = ${template-custom-slave-list:target}
filename = instance-slave-list.cfg
extensions = jinja2.ext.do
extra-context =
key apache_configuration_directory apache-directory:slave-configuration
key domain instance-parameter:configuration.domain
key http_port instance-parameter:configuration.plain_http_port
key https_port instance-parameter:configuration.port
key public_ipv4 instance-parameter:configuration.public-ipv4
key slave_instance_list instance-parameter:slave-instance-list
key rewrite_cached_configuration apache-configuration:cached-rewrite-file
key custom_ssl_directory apache-directory:vh-ssl
key apache_log_directory apache-directory:slave-log
raw template_slave_configuration ${template-default-slave-virtualhost:target}
raw empty_template ${template-empty:target}
raw empty_template ${template-empty:target}
raw cache_access http://$${instance-parameter:ipv4-random}:$${apache-configuration:cache-port}
raw cache_access http://$${instance-parameter:ipv4-random}:$${apache-configuration:cache-port}
raw template_rewrite_cached ${template-rewrite-cached:target}
raw template_rewrite_cached ${template-rewrite-cached:target}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment