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
Iliya Manolov
slapos
Commits
3c5507a7
Commit
3c5507a7
authored
Aug 03, 2012
by
Romain Courteaud
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
WIP.
Balancer has to be done, as well as frontend.
parent
7d83b5c0
Changes
4
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
241 additions
and
174 deletions
+241
-174
stack/erp5/buildout.cfg
stack/erp5/buildout.cfg
+58
-20
stack/erp5/instance-balancer.cfg.in
stack/erp5/instance-balancer.cfg.in
+59
-13
stack/erp5/instance-erp5-production.cfg.in
stack/erp5/instance-erp5-production.cfg.in
+104
-138
stack/erp5/instance.cfg.in
stack/erp5/instance.cfg.in
+20
-3
No files found.
stack/erp5/buildout.cfg
View file @
3c5507a7
[buildout]
[buildout]
# Local development
# Local development
develop =
develop =
${:parts-directory}/slapos.cookbook-repository
# ${:parts-directory}/slapos.cookbook-repository
/opt/slapdev
${:parts-directory}/cloudooo-repository
${:parts-directory}/cloudooo-repository
extensions =
extensions =
...
@@ -67,6 +68,9 @@ extends =
...
@@ -67,6 +68,9 @@ extends =
../../component/wget/buildout.cfg
../../component/wget/buildout.cfg
../../component/aspell/buildout.cfg
../../component/aspell/buildout.cfg
../../component/cloudooo/buildout.cfg
../../component/cloudooo/buildout.cfg
../../component/6tunnel/buildout.cfg
versions = versions
parts =
parts =
rdiff-backup
rdiff-backup
...
@@ -142,6 +146,11 @@ parts =
...
@@ -142,6 +146,11 @@ parts =
# Create instance template
# Create instance template
template
template
# XXX: Workaround of SlapOS limitation
# Unzippig of eggs is required, as SlapOS do not yet provide nicely working
# development / fast switching environment for whole software
unzip = true
# Local development
# Local development
[slapos.cookbook-repository]
[slapos.cookbook-repository]
recipe = plone.recipe.command
recipe = plone.recipe.command
...
@@ -156,7 +165,7 @@ update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet &&
...
@@ -156,7 +165,7 @@ update-command = cd "${:location}" && "${git:location}/bin/git" fetch --quiet &&
recipe = plone.recipe.command
recipe = plone.recipe.command
stop-on-error = true
stop-on-error = true
update-command = ${:command}
update-command = ${:command}
command = grep
parts
${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
command = grep
slapdev
${buildout:develop-eggs-directory}/slapos.cookbook.egg-link
[slapos.cookbook-python2.6]
[slapos.cookbook-python2.6]
recipe = zc.recipe.egg
recipe = zc.recipe.egg
...
@@ -187,7 +196,7 @@ context =
...
@@ -187,7 +196,7 @@ context =
[template-mariadb]
[template-mariadb]
< = template-jinja2-base
< = template-jinja2-base
filename = instance-mariadb.cfg
filename = instance-mariadb.cfg
md5sum =
ff64d128a076f9a55faa660b2e86e3b4
md5sum =
788d8232e0ec1c2913972df67de50711
extra-context =
extra-context =
key coreutils_location coreutils:location
key coreutils_location coreutils:location
key dcron_location dcron:location
key dcron_location dcron:location
...
@@ -207,6 +216,8 @@ filename = instance-sphinx.cfg
...
@@ -207,6 +216,8 @@ filename = instance-sphinx.cfg
md5sum = c9d510c55a8f3562fe6346907002d4df
md5sum = c9d510c55a8f3562fe6346907002d4df
extra-context =
extra-context =
key sphinx_location sphinx:location
key sphinx_location sphinx:location
key haproxy_location haproxy:location
key dash_location dash:location
[template-zope]
[template-zope]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
...
@@ -225,22 +236,16 @@ extra-context =
...
@@ -225,22 +236,16 @@ extra-context =
key kumo_location kumo:location
key kumo_location kumo:location
key logrotate_location logrotate:location
key logrotate_location logrotate:location
[template-tidstorage]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-tidstorage.cfg.in
md5sum = 520e39f2612a045b42c0ad914bfdc5a9
mode = 640
[template-cloudooo]
[template-cloudooo]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
url = ${:_profile_base_location_}/instance-cloudoo.cfg.in
md5sum =
5b56a84b779f72c279adb4ed3b12e512
md5sum =
c6af2d026daff3dd9055ecd8785a346d
mode = 640
mode = 640
[template-zope-conf]
[template-zope-conf]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/zope.conf.in
url = ${:_profile_base_location_}/zope.conf.in
md5sum =
ec4203f1f54b05505d8f35cb5799a75c
md5sum =
4fbcaf745a1959cd18da3c7004960fc3
mode = 640
mode = 640
[template]
[template]
...
@@ -248,7 +253,7 @@ mode = 640
...
@@ -248,7 +253,7 @@ mode = 640
# XXX: "template.cfg" is hardcoded in instanciation recipe
# XXX: "template.cfg" is hardcoded in instanciation recipe
filename = template.cfg
filename = template.cfg
template = ${:_profile_base_location_}/instance.cfg.in
template = ${:_profile_base_location_}/instance.cfg.in
md5sum =
e55c79ce2e52a9895980b3800e8a12fe
md5sum =
292b0b4a44183ab1028cde2427ba7e85
extra-context =
extra-context =
key apache_location apache:location
key apache_location apache:location
key aspell_location aspell:location
key aspell_location aspell:location
...
@@ -268,6 +273,7 @@ extra-context =
...
@@ -268,6 +273,7 @@ extra-context =
key grep_location grep:location
key grep_location grep:location
key gzip_location gzip:location
key gzip_location gzip:location
key haproxy_location haproxy:location
key haproxy_location haproxy:location
key tunnel6_location 6tunnel:location
key imagemagick_location imagemagick:location
key imagemagick_location imagemagick:location
key libICE_location libICE:location
key libICE_location libICE:location
key libSM_location libSM:location
key libSM_location libSM:location
...
@@ -284,18 +290,22 @@ extra-context =
...
@@ -284,18 +290,22 @@ extra-context =
key logrotate_location logrotate:location
key logrotate_location logrotate:location
key mariadb_location mariadb:location
key mariadb_location mariadb:location
key openssl_location openssl:location
key openssl_location openssl:location
key stunnel_location stunnel:location
key pdftk_location pdftk:location
key pdftk_location pdftk:location
key poppler_location poppler:location
key poppler_location poppler:location
key sed_location sed:location
key sed_location sed:location
key template_balancer template-balancer:target
key template_cloudooo template-cloudooo:target
key template_cloudooo template-cloudooo:target
key template_erp5_development template-erp5-development:target
key template_erp5_development template-erp5-development:target
key template_erp5_production template-erp5-production:
rendered
key template_erp5_production template-erp5-production:
target
key template_kumofs template-kumofs:rendered
key template_kumofs template-kumofs:rendered
key template_logrotate_base template-logrotate-base:rendered
key template_mariadb template-mariadb:rendered
key template_mariadb template-mariadb:rendered
key template_memcached template-memcached:rendered
key template_memcached template-memcached:rendered
key template_production_zope template-production-zope:target
key template_sphinx template-sphinx:rendered
key template_sphinx template-sphinx:rendered
key template_tidstorage template-tidstorage:target
key template_varnish template-varnish:target
key template_varnish template-varnish:target
key template_zeo template-zeo:target
key template_zope template-zope:target
key template_zope template-zope:target
key template_zope_conf template-zope-conf:target
key template_zope_conf template-zope-conf:target
key tesseract_location tesseract:location
key tesseract_location tesseract:location
...
@@ -307,10 +317,10 @@ extra-context =
...
@@ -307,10 +317,10 @@ extra-context =
[template-memcached]
[template-memcached]
< = template-jinja2-base
< = template-jinja2-base
filename = instance-memcached.cfg
filename = instance-memcached.cfg
md5sum =
594d3195b258906d4a3fde09c01c917c
md5sum =
872da22de0d07e1ca05282d10dbf488b
extra-context =
extra-context =
key dash_location dash:location
key dash_location dash:location
key
haproxy_location haproxy
:location
key
tunnel6_location 6tunnel
:location
key memcached_location memcached:location
key memcached_location memcached:location
[template-erp5-development]
[template-erp5-development]
...
@@ -320,11 +330,39 @@ md5sum = 2a4312202a3160f874c4fa3ee9155a1d
...
@@ -320,11 +330,39 @@ md5sum = 2a4312202a3160f874c4fa3ee9155a1d
mode = 640
mode = 640
[template-erp5-production]
[template-erp5-production]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-erp5-production.cfg.in
md5sum = c2f4bc478dd072e0bba85e8898dc7c8f
mode = 640
[template-zeo]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-zeo.cfg.in
md5sum = 57ddeb22de33bc181b0334e2fed72eaa
mode = 640
extra-context =
key dash_location dash:location
[template-production-zope]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-production-zope.cfg.in
md5sum = eab812d8d331fc710c3625d8860a99a7
mode = 640
[template-balancer]
recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-balancer.cfg.in
md5sum = 6c8fd033568be93057cce5e15ab8f3d9
mode = 640
[template-logrotate-base]
< = template-jinja2-base
< = template-jinja2-base
filename = instance-
erp5-production
.cfg
filename = instance-
logrotate-base
.cfg
md5sum =
3051f3fea39d7409c417dcac26027b56
md5sum =
af19ff0c7817df85987c69738fb083f2
extra-context =
extra-context =
key local_bt5_repository local-bt5-repository:list
key dcron_location dcron:location
key gzip_location gzip:location
key logrotate_location logrotate:location
[template-varnish]
[template-varnish]
recipe = slapos.recipe.build:download
recipe = slapos.recipe.build:download
...
@@ -609,7 +647,7 @@ Products.GenericSetup = 1.7.1
...
@@ -609,7 +647,7 @@ Products.GenericSetup = 1.7.1
Products.MimetypesRegistry = 2.0.3
Products.MimetypesRegistry = 2.0.3
Products.PluggableAuthService = 1.7.7
Products.PluggableAuthService = 1.7.7
Products.PluginRegistry = 1.3b1
Products.PluginRegistry = 1.3b1
Products.TIDStorage = 5.4.
7.dev-r45842
Products.TIDStorage = 5.4.
8
Products.Zelenium = 1.0.3
Products.Zelenium = 1.0.3
StructuredText = 2.11.1
StructuredText = 2.11.1
WSGIUtils = 0.7
WSGIUtils = 0.7
...
...
stack/erp5/instance-balancer.cfg.in
View file @
3c5507a7
{% if software_type == slap_software_type -%}
{% if software_type == slap_software_type -%}
{% set part_list = [] -%}
{% macro section(name) %}{% do part_list.append(name) %}{{ name }}{% endmacro -%}
{#
{#
XXX: This template only supports exactly one IPv4 and one IPv6 per
XXX: This template only supports exactly one IPv4 and one IPv6 per
partition. No more (undefined result), no less (IndexError).
partition. No more (undefined result), no less (IndexError).
...
@@ -8,18 +10,35 @@ partition. No more (undefined result), no less (IndexError).
...
@@ -8,18 +10,35 @@ partition. No more (undefined result), no less (IndexError).
# directly to haproxy. (maybe just passing literal configuration file chunk)
# directly to haproxy. (maybe just passing literal configuration file chunk)
{% set ipv4 = (ipv4_set | list)[0] -%}
{% set ipv4 = (ipv4_set | list)[0] -%}
{% set ipv6 = (ipv6_set | list)[0] -%}
{% set ipv6 = (ipv6_set | list)[0] -%}
[buildout]
extends = {{ parameter_dict['instance-logrotate-cfg'] }}
parts +=
publish
logrotate-apache
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
[publish]
[zope-tunnel-base]
recipe = slapos.cookbook:publish
recipe = slapos.cookbook:ipv4toipv6
url = ${apache:scheme}://[${apache:ip}]:${apache:port}
runner-path = ${directory:services}/${:base-name}
tunnel6-path = {{ parameter_dict['tunnel6'] }}/bin/6tunnel
shell-path = {{ parameter_dict['dash'] }}/bin/dash
ipv4 = {{ ipv4 }}
{% set zope_address_list = [] -%}
{% set current_port = 9000 -%}
{% set next_current_port = {'next_port': current_port} -%}
{% for zope_name in json_module.loads(slapparameter_dict['zope-name-list']) -%}
{% for zope_address in json_module.loads(slapparameter_dict['zope-' ~ zope_name ~ '-address-list']) -%}
[{{ section('zope-tunnel-' ~ current_port) }}]
< = zope-tunnel-base
base-name = {{ 'zeo-tunnel-' ~ current_port }}
ipv4-port = {{ current_port }}
ipv6-port = {{ zope_address.split(']:')[1] }}
ipv6 = {{ zope_address.split(']:')[0][1:] }}
{% do zope_address_list.append(ipv4 ~ ":" ~ current_port) -%}
{% set current_port = current_port + 1 -%}
{% do next_current_port.__setitem__('next_port', current_port) -%}
{% endfor -%}
{% set current_port = next_current_port['next_port'] -%}
{% endfor -%}
{% set current_port = next_current_port['next_port'] -%}
[haproxy]
[haproxy]
recipe = slapos.cookbook:haproxy
recipe = slapos.cookbook:haproxy
...
@@ -32,7 +51,7 @@ maxconn = {{ slapparameter_dict['haproxy-maxconn'] }}
...
@@ -32,7 +51,7 @@ maxconn = {{ slapparameter_dict['haproxy-maxconn'] }}
server-check-path = {{ slapparameter_dict['haproxy-server-check-path'] }}
server-check-path = {{ slapparameter_dict['haproxy-server-check-path'] }}
wrapper-path = ${directory:services}/haproxy
wrapper-path = ${directory:services}/haproxy
binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy
backend-list = {{
slapparameter_dict['zope-address-list']
}}
backend-list = {{
json_module.dumps(zope_address_list)
}}
[apache]
[apache]
recipe = slapos.cookbook:apache.zope.backend
recipe = slapos.cookbook:apache.zope.backend
...
@@ -67,13 +86,21 @@ ca-private = ${directory:private}
...
@@ -67,13 +86,21 @@ ca-private = ${directory:private}
ca-certs = ${directory:certs}
ca-certs = ${directory:certs}
ca-newcerts = ${directory:newcerts}
ca-newcerts = ${directory:newcerts}
ca-crl = ${directory:crl}
ca-crl = ${directory:crl}
{% set ca =
slapparameter_dict['ca']
-%}
{% set ca =
json_module.loads(slapparameter_dict['ca'])
-%}
country-code = {{ ca['country-code'] }}
country-code = {{ ca['country-code'] }}
email = {{ ca['email'] }}
email = {{ ca['email'] }}
state = {{ ca['state'] }}
state = {{ ca['state'] }}
city = {{ ca['city'] }}
city = {{ ca['city'] }}
company = {{ ca['company'] }}
company = {{ ca['company'] }}
[ca-apache]
< = certificate-authority
recipe = slapos.cookbook:certificate_authority.request
key-file = ${apache:key-file}
cert-file = ${apache:cert-file}
executable = ${apache:wrapper}
wrapper = ${directory:services}/apache
[logrotate-apache]
[logrotate-apache]
recipe = slapos.cookbook:logrotate.d
recipe = slapos.cookbook:logrotate.d
logrotate-entries = ${logrotate:logrotate-entries}
logrotate-entries = ${logrotate:logrotate-entries}
...
@@ -97,4 +124,23 @@ private = ${:ca-dir}/private
...
@@ -97,4 +124,23 @@ private = ${:ca-dir}/private
certs = ${:ca-dir}/certs
certs = ${:ca-dir}/certs
newcerts = ${:ca-dir}/newcerts
newcerts = ${:ca-dir}/newcerts
crl = ${:ca-dir}/crl
crl = ${:ca-dir}/crl
[publish]
recipe = slapos.cookbook:publish
url = ${apache:scheme}://[${apache:ip}]:${apache:port}
[buildout]
extends = {{ parameter_dict['instance-logrotate-cfg'] }}
parts =
haproxy
{{ part_list | join('\n ') }}
publish
ca-apache
# cron-entry-logrotate
# logrotate
# logrotate-apache
eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true
{% endif %}
{% endif %}
stack/erp5/instance-erp5-production.cfg.in
View file @
3c5507a7
This diff is collapsed.
Click to expand it.
stack/erp5/instance.cfg.in
View file @
3c5507a7
...
@@ -42,7 +42,7 @@ zlib = {{ zlib_location }}
...
@@ -42,7 +42,7 @@ zlib = {{ zlib_location }}
libreoffice-bin = {{ libreoffice_bin_location }}
libreoffice-bin = {{ libreoffice_bin_location }}
fonts = {{ fonts_location }}
fonts = {{ fonts_location }}
buildout-bin-directory = {{ buildout_bin_directory }}
buildout-bin-directory = {{ buildout_bin_directory }}
haproxy = {{ haproxy
_location }}
tunnel6 = {{ tunnel6
_location }}
dash = {{ dash_location }}
dash = {{ dash_location }}
[dynamic-template-cloudooo]
[dynamic-template-cloudooo]
...
@@ -167,10 +167,14 @@ apache = {{ apache_location }}
...
@@ -167,10 +167,14 @@ apache = {{ apache_location }}
openssl = {{ openssl_location }}
openssl = {{ openssl_location }}
haproxy = {{ haproxy_location }}
haproxy = {{ haproxy_location }}
instance-logrotate-cfg = {{ template_logrotate_base }}
instance-logrotate-cfg = {{ template_logrotate_base }}
bin-directory = {{ bin_directory }}
tunnel6 = {{ tunnel6_location }}
dash = {{ dash_location }}
[dynamic-template-balancer]
[dynamic-template-balancer]
< = jinja2-template-base
< = jinja2-template-base
template = {{ template_balancer }}
template = {{ template_balancer }}
extensions = jinja2.ext.do
filename = instance-balancer.cfg
filename = instance-balancer.cfg
extra-context =
extra-context =
key ipv4_set slap-parameters:ipv4
key ipv4_set slap-parameters:ipv4
...
@@ -179,10 +183,15 @@ extra-context =
...
@@ -179,10 +183,15 @@ extra-context =
# Must match the key id in [switch-softwaretype] which uses this section.
# Must match the key id in [switch-softwaretype] which uses this section.
# XXX: a better name should be searched
# XXX: a better name should be searched
raw software_type balancer
raw software_type balancer
import json_module json
key bin_directory dynamic-template-zope-parameters:bin-directory
[dynamic-template-zeo-parameters]
[dynamic-template-zeo-parameters]
buildout-bin-directory = {{ buildout_bin_directory }}
buildout-bin-directory = {{ buildout_bin_directory }}
instance-logrotate-cfg = {{ template_logrotate_base }}
instance-logrotate-cfg = {{ template_logrotate_base }}
tunnel6 = {{ tunnel6_location }}
dash = {{ dash_location }}
zope-conf-template = {{ template_zope_conf }}
[dynamic-template-zeo]
[dynamic-template-zeo]
< = jinja2-template-base
< = jinja2-template-base
...
@@ -190,7 +199,9 @@ template = {{ template_zeo }}
...
@@ -190,7 +199,9 @@ template = {{ template_zeo }}
filename = instance-zeo.cfg
filename = instance-zeo.cfg
extensions = jinja2.ext.do
extensions = jinja2.ext.do
extra-context =
extra-context =
key ipv4_set slap-parameters:ipv4
key ipv6_set slap-parameters:ipv6
key ipv6_set slap-parameters:ipv6
import json_module json
section parameter_dict dynamic-template-zeo-parameters
section parameter_dict dynamic-template-zeo-parameters
# key instance_stunnel
# key instance_stunnel
# Must match the key id in [switch-softwaretype] which uses this section.
# Must match the key id in [switch-softwaretype] which uses this section.
...
@@ -198,7 +209,6 @@ extra-context =
...
@@ -198,7 +209,6 @@ extra-context =
[dynamic-template-production-zope-parameters]
[dynamic-template-production-zope-parameters]
zope-conf-template = {{ template_zope_conf }}
zope-conf-template = {{ template_zope_conf }}
products = {{ product_list }}
instance-logrotate-cfg = {{ template_logrotate_base }}
instance-logrotate-cfg = {{ template_logrotate_base }}
git = {{ git_location }}
git = {{ git_location }}
graphviz = {{ graphviz_location }}
graphviz = {{ graphviz_location }}
...
@@ -213,6 +223,11 @@ tesseract = {{ tesseract_location }}
...
@@ -213,6 +223,11 @@ tesseract = {{ tesseract_location }}
w3m = {{ w3m_location }}
w3m = {{ w3m_location }}
poppler = {{ poppler_location }}
poppler = {{ poppler_location }}
dmtx-utils = {{ dmtx_utils_location }}
dmtx-utils = {{ dmtx_utils_location }}
openssl = {{ openssl_location }}
stunnel = {{ stunnel_location }}
tunnel6 = {{ tunnel6_location }}
haproxy = {{ haproxy_location }}
dash = {{ dash_location }}
[dynamic-template-production-zope]
[dynamic-template-production-zope]
< = jinja2-template-base
< = jinja2-template-base
...
@@ -221,10 +236,12 @@ filename = instance-production-zope.cfg
...
@@ -221,10 +236,12 @@ filename = instance-production-zope.cfg
extensions = jinja2.ext.do
extensions = jinja2.ext.do
extra-context =
extra-context =
key ipv6_set slap-parameters:ipv6
key ipv6_set slap-parameters:ipv6
section parameter_dict dynamic-template-production-zope
key ipv4_set slap-parameters:ipv4
section parameter_dict dynamic-template-production-zope-parameters
# key instance_stunnel
# key instance_stunnel
# Must match the key id in [switch-softwaretype] which uses this section.
# Must match the key id in [switch-softwaretype] which uses this section.
raw software_type production-zope
raw software_type production-zope
import json_module json
[switch-softwaretype]
[switch-softwaretype]
recipe = slapos.cookbook:softwaretype
recipe = slapos.cookbook:softwaretype
...
...
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