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
Jean-Paul Smets
slapos
Commits
548d2f09
Commit
548d2f09
authored
Jun 20, 2014
by
Cédric Le Ninivin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
apache-frontend: Deploy configuration of slaves if test needed or deploy is activated
parent
89c8a591
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
81 additions
and
7 deletions
+81
-7
software/apache-frontend/instance-apache-replicate.cfg.in
software/apache-frontend/instance-apache-replicate.cfg.in
+77
-6
software/apache-frontend/instance.cfg
software/apache-frontend/instance.cfg
+4
-1
No files found.
software/apache-frontend/instance-apache-replicate.cfg.in
View file @
548d2f09
...
...
@@ -103,13 +103,16 @@ sla-{{ parameter }} = {{ slapparameter_dict.pop( sla_key + parameter ) }}
{% if slave_state == slave_deploy %}
{% do slave_configuration.get(slave_reference).__setitem__('deploy_configuration', slave_configuration.get(slave_reference).get('configuration')) %}
{% elif slave_state == slave_test %}
{% do slave_test_list.append(slave_configuration.get(slave_reference
,
'configuration')) %}
{% do slave_test_list.append(slave_configuration.get(slave_reference
).get(
'configuration')) %}
{% endif %}
{% if slave_state != slave_stop and slave_configuration.get(slave_reference).has_key('deploy_configuration') %}
{% do slave_deploy_list.append(slave_configuration.get(slave_reference, 'configuration')) %}
{% do slave_deploy_list.append(slave_configuration.get(slave_reference).get('deploy_configuration')) %}
{% if slave_state != slave_test %}
{% do slave_test_list.append(slave_configuration.get(slave_reference).get('configuration')) %}
{% endif %}
{% endif %}
{% endfor %}
{% do json_module.dump(slave_configuration, builtin.open(slave_configuration_path, 'w')) %}
{% do json_module.dump(slave_configuration, builtin.open(slave_configuration_path, 'w')
, indent=2
) %}
[replicate]
<= slap-connection
...
...
@@ -162,6 +165,73 @@ extra-context =
###########################
# Deploy slave configuration
#
{{ dumps(slave_test_list) }}
# Hardcoded dummy cache, we never start the apache
{% set cache_access = "http://%s:%s" % ("127.0.0.0", "23432") -%}
{% set generic_instance_parameter_dict = {'cache_access': cache_access,} -%}
{% set apache_log_directory = root_directory + '/var/log/httpd/' -%}
{% set slave_configuration_directory = root_directory + '/etc/apache-slave-conf.d/' -%}
{% set custom_ssl_directory = slave_configuration_directory + 'ssl/' -%}
# Loop trhought slave list to set up slaves
{% for slave_instance in slave_test_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() -%}
{% do part_list.append(slave_section_title) -%}
# Set Up log files
{% do slave_parameter_dict.__setitem__('access_log', '/'.join([apache_log_directory, '%s_access_log' % slave_reference])) -%}
{% do slave_parameter_dict.__setitem__('error_log', '/'.join([apache_log_directory, '%s_error_log' % slave_reference])) -%}
# Set up apache configuration file for slave
[{{ slave_section_title }}]
< = jinja2-template-base
template = {{ build_path.get('template-slave-configuration') }}
filename = {{ '%s.conf' % slave_reference }}
rendered = {{ slave_configuration_directory }}/${:filename}
extra-context =
key apache_custom_https {{ 'slave-instance-%s-configuration:apache_custom_https' % slave_reference }}
key apache_custom_http {{ 'slave-instance-%s-configuration:apache_custom_http' % slave_reference }}
raw https_port {{ slapparameter_dict.get('port', 4443) }}
raw http_port {{ slapparameter_dict.get('plain_http_port', 8080) }}
{{ '\n' }}
# Set ssl certificates for each slave
{% for cert_name in ('ssl_key', 'ssl_crt', 'ssl_ca_crt', 'ssl_csr')-%}
{% if cert_name in slave_instance -%}
{% set cert_title = '%s-%s' % (slave_reference, cert_name.replace('ssl_', '')) -%}
{% set cert_file = '/'.join([custom_ssl_directory, cert_title.replace('-','.')]) -%}
{% do part_list.append(cert_title) -%}
{% do slave_parameter_dict.__setitem__(cert_name, cert_file) -%}
# Store certificates on fs
[{{ cert_title }}]
< = jinja2-template-base
template = {{ build_path.get('template-empty') }}
rendered = {{ cert_file }}
extra-context =
key content {{ cert_title + '-config:value' }}
# Store certificate in config
[{{ cert_title + '-config' }}]
value = {{ dumps(slave_instance.get(cert_name)) }}
{% endif -%}
{% endfor -%}
# Set apache configuration value for slave
[{{ ('slave-instance-%s-configuration' % slave_reference) }}]
{% set apache_custom_http = ((slave_instance.get('apache_custom_http', '')) % slave_parameter_dict) -%}
{% set apache_custom_https = ((slave_instance.get('apache_custom_https', '')) % slave_parameter_dict) -%}
apache_custom_http = {{ dumps(apache_custom_http) }}
apache_custom_https = {{ dumps(apache_custom_https) }}
{{ '\n' }}
{% endfor -%}
###########################
# Deploy apache configuration
#
[directory]
recipe = slapos.cookbook:mkdirectory
...
...
@@ -173,6 +243,7 @@ var = ${buildout:directory}/var/
service = ${:etc}/service
log = ${:var}/log
httpd-log = {{ apache_log_directory }}
ca-dir = ${:srv}/ssl
run = ${:var}/run
...
...
@@ -222,11 +293,11 @@ extra-context =
[apache-directory]
recipe = slapos.cookbook:mkdirectory
document-root = ${directory:srv}/htdocs
slave-configuration =
${directory:etc}/apache-slave-conf.d/
slave-configuration =
{{ slave_configuration_directory }}
cache = ${directory:var}/cache
mod-ssl = ${:cache}/httpd_mod_ssl
vh-ssl =
${:slave-configuration}/ssl
slave-log =
${directory:log}/httpd
vh-ssl =
{{ custom_ssl_directory }}
slave-log =
{{ apache_log_directory }}
[apache-configuration]
frontend-configuration = ${directory:etc}/apache_frontend.conf
...
...
software/apache-frontend/instance.cfg
View file @
548d2f09
...
...
@@ -63,5 +63,8 @@ stop = STOP
openssl-location = ${openssl:location}
apache-location = ${apache-2.2:location}
monitor-template = ${monitor-template:output}
template-apache-frontend-configuration = ${template-apache-frontend-configuration:target}
template-default-slave-virtualhost = ${template-default-slave-virtualhost:target}
template-default-virtualhost = ${template-default-virtualhost:target}
template-apache-frontend-configuration = ${template-apache-frontend-configuration:target}
\ No newline at end of file
template-empty = ${template-empty:target}
template-slave-configuration = ${template-slave-configuration:target}
\ No newline at end of file
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