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
francois
slapos
Commits
9e72f351
Commit
9e72f351
authored
May 22, 2013
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
apache-frontend: Introducing yakari mode for apache-frontend
parent
6f6aca4d
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
112 additions
and
6 deletions
+112
-6
software/apache-frontend/apache-yakari.cfg.in
software/apache-frontend/apache-yakari.cfg.in
+67
-0
software/apache-frontend/common.cfg
software/apache-frontend/common.cfg
+5
-0
software/apache-frontend/instance.cfg
software/apache-frontend/instance.cfg
+38
-4
software/apache-frontend/slave-virtualhost.conf.in
software/apache-frontend/slave-virtualhost.conf.in
+2
-2
No files found.
software/apache-frontend/apache-yakari.cfg.in
0 → 100644
View file @
9e72f351
{% set cached_server_dict = {} -%}
{% set part_list = [] -%}
{% set generic_instance_parameter_dict = {'cache_access': cache_access,} -%}
[jinja2-template-base]
recipe = slapos.recipe.template:jinja2
rendered = {{ apache_configuration_directory }}/${:filename}
extra-context =
context =
key eggs_directory buildout:eggs-directory
key develop_eggs_directory buildout:develop-eggs-directory
${:extra-context}
{% for slave_instance in slave_instance_list -%}
{% set slave_reference = slave_instance.get('slave_reference') -%}
{% set slave_section_title = 'dynamic-template-slave-instance-%s' % slave_reference -%}
{% set slave_parameter_dict = generic_instance_parameter_dict.copy() -%}
{% if slave_instance.get('server_name', None) == None -%}
{% do slave_instance.__setitem__('server_name', "%s.%s" % (slave_instance.get('slave_reference').replace("-", "").lower(), domain)) -%}
{% endif -%}
{% if 'enable_cache' in slave_instance -%}
# The slave use cache
{% do cached_server_dict.__setitem__(slave_instance.get('server_name'), slave_instance.get('url')) -%}
{% endif -%}
{% do slave_instance.__setitem__('url', cache_access) -%}
{% do part_list.append(slave_section_title) -%}
[{{ slave_section_title }}]
< = jinja2-template-base
template = {{ template_slave_configuration }}
filename = {{ '%s.conf' % slave_reference }}
extensions = jinja2.ext.do
extra-context =
section slave_parameter {{ 'slave-instance-%s-configuration' % slave_reference }}
raw domain {{ domain }}
raw https_port {{ https_port }}
raw http_port {{ http_port }}
{{ '\n' }}
# Set apache configuration for slave
[{{ ('slave-instance-%s-configuration' % slave_reference) }}]
{% for key, value in slave_instance.iteritems() -%}
{{ key }} = {{ dumps(value) }}
{% endfor %}
{% endfor -%}
{% do part_list.append('cached-rewrite-rules') -%}
[cached-rewrite-rules]
< = jinja2-template-base
template = {{ template_rewrite_cached }}
rendered = {{ rewrite_cached_configuration }}
extra-context =
import json_module json
key server_dict rewrite-rules:rules
[rewrite-rules]
rules = {{ dumps(cached_server_dict) }}
[buildout]
parts +=
{% for part in part_list -%}
{{ ' %s' % part }}
{% endfor -%}
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
cache-access = {{ cache_access }}
\ No newline at end of file
software/apache-frontend/common.cfg
View file @
9e72f351
...
@@ -99,6 +99,11 @@ recipe = slapos.recipe.build:download
...
@@ -99,6 +99,11 @@ recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/apache_cached_rewrite.txt.in
url = ${:_profile_base_location_}/apache_cached_rewrite.txt.in
mode = 640
mode = 640
[template-custom-slave-list]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/apache-yakari.cfg.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/instance.cfg
View file @
9e72f351
...
@@ -11,9 +11,10 @@ parts =
...
@@ -11,9 +11,10 @@ parts =
logrotate-entry-apache
logrotate-entry-apache
apache-frontend
apache-frontend
apache-cached
apache-cached
switch-softwaretype
frontend-apache-graceful
frontend-apache-graceful
cached-apache-graceful
cached-apache-graceful
s
witch-softwaretype
s
quid-reload
promise-apache-frontend-v4-https
promise-apache-frontend-v4-https
promise-apache-frontend-v4-http
promise-apache-frontend-v4-http
promise-apache-frontend-v6-https
promise-apache-frontend-v6-https
...
@@ -32,6 +33,7 @@ bin = $${buildout:directory}/bin/
...
@@ -32,6 +33,7 @@ bin = $${buildout:directory}/bin/
etc = $${buildout:directory}/etc/
etc = $${buildout:directory}/etc/
srv = $${buildout:directory}/srv/
srv = $${buildout:directory}/srv/
var = $${buildout:directory}/var/
var = $${buildout:directory}/var/
template = $${buildout:directory}/template/
backup = $${:srv}/backup
backup = $${:srv}/backup
log = $${:var}/log
log = $${:var}/log
...
@@ -51,7 +53,7 @@ squid-cache = $${:srv}/squid_cache
...
@@ -51,7 +53,7 @@ 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-
custom-
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.
...
@@ -71,6 +73,8 @@ configuration.public-ipv4 = ''
...
@@ -71,6 +73,8 @@ configuration.public-ipv4 = ''
configuration.port = 4443
configuration.port = 4443
configuration.plain_http_port = 8080
configuration.plain_http_port = 8080
configuration.server-admin = admin@example.com
configuration.server-admin = admin@example.com
configuration.apache_custom_https = ""
configuration.apache_custom_http = ""
[jinja2-template-base]
[jinja2-template-base]
recipe = slapos.recipe.template:jinja2
recipe = slapos.recipe.template:jinja2
...
@@ -100,6 +104,36 @@ extra-context =
...
@@ -100,6 +104,36 @@ 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]
< = 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 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 template_slave_configuration dynamic-virtualhost-template-slave:rendered
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-virtualhost-template-slave]
<= jinja2-template-base
template = ${template-slave-configuration:target}
rendered = $${directory:template}/slave-virtualhost.conf.in
extensions = jinja2.ext.do
extra-context =
key https_port instance-parameter:configuration.port
key http_port instance-parameter:configuration.plain_http_port
key apache_custom_https instance-parameter:configuration.apache_custom_https
key apache_custom_http instance-parameter:configuration.apache_custom_http
# Deploy Apache Frontend (new way, no recipe, jinja power)
# Deploy Apache Frontend (new way, no recipe, jinja power)
[dynamic-apache-frontend-template]
[dynamic-apache-frontend-template]
< = jinja2-template-base
< = jinja2-template-base
...
@@ -302,12 +336,12 @@ wrapper-path = $${directory:service}/squid-reload
...
@@ -302,12 +336,12 @@ wrapper-path = $${directory:service}/squid-reload
[frontend-apache-graceful]
[frontend-apache-graceful]
recipe = slapos.cookbook:wrapper
recipe = slapos.cookbook:wrapper
command-line = ${buildout:bin-directory}/killpidfromfile $${apache-configuration:pid-file} SIGUSR1
command-line = ${buildout:bin-directory}/killpidfromfile $${apache-configuration:pid-file} SIGUSR1
wrapper-path = $${directory:
run
}/frontend-apache-graceful
wrapper-path = $${directory:
service
}/frontend-apache-graceful
[cached-apache-graceful]
[cached-apache-graceful]
recipe = slapos.cookbook:wrapper
recipe = slapos.cookbook:wrapper
command-line = ${buildout:bin-directory}/killpidfromfile $${apache-configuration:cache-pid-file} SIGUSR1
command-line = ${buildout:bin-directory}/killpidfromfile $${apache-configuration:cache-pid-file} SIGUSR1
wrapper-path = $${directory:
run
}/cached-apache-graceful
wrapper-path = $${directory:
service
}/cached-apache-graceful
[promise-apache-frontend-v4-https]
[promise-apache-frontend-v4-https]
recipe = slapos.cookbook:check_port_listening
recipe = slapos.cookbook:check_port_listening
...
...
software/apache-frontend/slave-virtualhost.conf.in
View file @
9e72f351
<VirtualHost *:{{ https_port }}>
<VirtualHost *:{{ https_port }}>
{{
slave_parameter.get('apache_custom_https','')
}}
{{
apache_custom_https
}}
</VirtualHost>
</VirtualHost>
<VirtualHost *:{{ http_port }}>
<VirtualHost *:{{ http_port }}>
{{
slave_parameter.get('apache_custom_http','')
}}
{{
apache_custom_http
}}
</VirtualHost>
</VirtualHost>
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