From f19c9165acd1d20345aef31e7906862bb0003541 Mon Sep 17 00:00:00 2001 From: Kazuhiko Shiozaki <kazuhiko@nexedi.com> Date: Wed, 17 Jul 2013 07:42:11 +0900 Subject: [PATCH] fixup! Initial Cloudooo Cluster setup --- software/cloudooo/instance-cloudoo.cfg.in | 30 +++++++++++++++-------- software/cloudooo/instance.cfg.in | 2 ++ software/cloudooo/software.cfg | 23 +++++++++++------ 3 files changed, 37 insertions(+), 18 deletions(-) diff --git a/software/cloudooo/instance-cloudoo.cfg.in b/software/cloudooo/instance-cloudoo.cfg.in index 59a947252..67c681d81 100644 --- a/software/cloudooo/instance-cloudoo.cfg.in +++ b/software/cloudooo/instance-cloudoo.cfg.in @@ -1,4 +1,7 @@ +{% set ipv4 = (ipv4_set | list)[0] -%} {% set bin_directory = parameter_dict['buildout-bin-directory'] -%} +{% set section_list = [] -%} +{% macro section(name) %}{% do section_list.append(name) %}{{ name }}{% endmacro -%} [buildout] parts = publish-cloudooo-connection-information @@ -14,8 +17,7 @@ url = cloudooo://${haproxy:ip}:${haproxy:port}/ [cloudooo-base] recipe = slapos.cookbook:generic.cloudooo -ip = ${slap-network-information:local-ipv4} -wrapper = ${basedirectory:services}/cloudooo +ip = {{ ipv4 }} environment = LD_LIBRARY_PATH = {{ parameter_dict['file'] }}/lib:{{ parameter_dict['fontconfig'] }}/lib:{{ parameter_dict['freetype'] }}/lib:{{ parameter_dict['libICE'] }}/lib:{{ parameter_dict['libpng12'] }}/lib:{{ parameter_dict['libSM'] }}/lib:{{ parameter_dict['libX11'] }}/lib:{{ parameter_dict['libXau'] }}/lib:{{ parameter_dict['libXdmcp'] }}/lib:{{ parameter_dict['libXext'] }}/lib:{{ parameter_dict['libxcb'] }}/lib:{{ parameter_dict['libXrender'] }}/lib:{{ parameter_dict['zlib'] }}/lib FONTCONFIG_FILE = ${fontconfig-instance:conf-path} @@ -27,28 +29,31 @@ ooo-paster = {{ bin_directory }}/cloudooo_paster ooo-uno-path = {{ parameter_dict['libreoffice-bin'] }}/basis-link/program {% set cloudooo_port = 23000 -%} -{% for index in range(slapparameter_dict.get('backend_count', 1)) -%} +{% set backend_count = slapparameter_dict.get('backend-count', 1) | int -%} +{% for index in range(backend_count) -%} {% set name = 'cloudooo-' ~ index -%} [{{ section(name) }}] < = cloudooo-base port = {{ cloudooo_port }} openoffice-port = {{ cloudooo_port + 1 }} configuration-file = ${rootdirectory:etc}/{{ name }}.cfg +data-directory = ${rootdirectory:srv}/{{ name }} +wrapper = ${basedirectory:services}/{{ name }} {% set cloudooo_port = cloudooo_port + 2 -%} {% endfor -%} [haproxy] recipe = slapos.cookbook:haproxy -name = haproxy +name = cloudooo conf-path = ${directory:etc}/haproxy.cfg +socket-path = ${directory:run}/haproxy.sock ip = {{ ipv4 }} port = 8001 -maxconn = {{ slapparameter_dict['haproxy-maxconn'] }} -# XXX: should be optional (check recipe code) -server-check-path = {{ slapparameter_dict['haproxy-server-check-path'] }} +maxconn = 1 wrapper-path = ${directory:services}/haproxy binary-path = {{ parameter_dict['haproxy'] }}/sbin/haproxy +ctl-path = ${directory:bin}/haproxy-ctl backend-list = {%- for section_name in section_list %} {{ "${" ~ section_name ~ ":ip}:${" ~ section_name ~ ":port}" }} @@ -65,8 +70,8 @@ prepend-path = ${buildout:bin-directory} run-unit-test = ${buildout:bin-directory}/runUnitTest run-test-suite = ${buildout:bin-directory}/runTestSuite -ooo-paster = ${cloudooo-instance:ooo-paster} -configuration-file = ${cloudooo-instance:configuration-file} +ooo-paster = ${cloudooo-0:ooo-paster} +configuration-file = ${cloudooo-0:configuration-file} run-unit-test-binary = {{ bin_directory }}/runCloudoooUnitTest run-test-suite-binary = {{ bin_directory }}/runCloudoooTestSuite @@ -104,7 +109,11 @@ services = ${rootdirectory:etc}/run [directory] recipe = slapos.cookbook:mkdirectory -cloudooo-data = ${rootdirectory:srv}/cloudooo +bin = ${rootdirectory:bin} +etc = ${rootdirectory:etc} +services = ${:etc}/run +var = ${rootdirectory:var} +run = ${:var}/run font = ${rootdirectory:srv}/font [rootdirectory] @@ -112,3 +121,4 @@ recipe = slapos.cookbook:mkdirectory etc = ${buildout:directory}/etc srv = ${buildout:directory}/srv bin = ${buildout:directory}/bin +var = ${buildout:directory}/var diff --git a/software/cloudooo/instance.cfg.in b/software/cloudooo/instance.cfg.in index bec984017..6173841fb 100644 --- a/software/cloudooo/instance.cfg.in +++ b/software/cloudooo/instance.cfg.in @@ -50,8 +50,10 @@ buildout-bin-directory = {{ buildout_bin_directory }} < = jinja2-template-base template = {{ template_cloudooo }} filename = instance-cloudoo.cfg +extensions = jinja2.ext.do extra-context = section parameter_dict dynamic-template-cloudooo-parameters + key ipv4_set slap-parameters:ipv4 [switch-softwaretype] recipe = slapos.cookbook:softwaretype diff --git a/software/cloudooo/software.cfg b/software/cloudooo/software.cfg index 677a42592..6af3510ff 100755 --- a/software/cloudooo/software.cfg +++ b/software/cloudooo/software.cfg @@ -16,6 +16,7 @@ parts += check-recipe # Create instance template template + slapos-cookbook # XXX: Workaround of SlapOS limitation # Unzippig of eggs is required, as SlapOS do not yet provide nicely working @@ -24,11 +25,10 @@ unzip = true # Local development [slapos.cookbook-repository] -recipe = plone.recipe.command -stop-on-error = true -location = ${buildout:parts-directory}/${:_buildout_section_name_} -command = ${git:location}/bin/git clone --branch cloudooo --quiet http://git.erp5.org/repos/slapos.git ${:location} -update-command = cd ${:location} && ${git:location}/bin/git pull --quiet +recipe = slapos.recipe.build:gitclone +repository = http://git.erp5.org/repos/slapos.git +branch = cloudooo-clusterise +git-executable = ${git:location}/bin/git [check-recipe] recipe = plone.recipe.command @@ -36,6 +36,14 @@ stop-on-error = true update-command = ${:command} command = grep parts ${buildout:develop-eggs-directory}/slapos.cookbook.egg-link +[slap-parameters] +recipe = slapos.cookbook:slapconfiguration +computer = ${slap-connection:computer-id} +partition = ${slap-connection:partition-id} +url = ${slap-connection:server-url} +key = ${slap-connection:key-file} +cert = ${slap-connection:cert-file} + [template-jinja2-base] recipe = slapos.recipe.template:jinja2 template = ${:_profile_base_location_}/${:filename}.in @@ -54,7 +62,7 @@ context = # XXX: "template.cfg" is hardcoded in instanciation recipe filename = template.cfg template = ${:_profile_base_location_}/instance.cfg.in -md5sum = dd0073d8e8d8aaf94df0405c86c7a055 +md5sum = 425cb2e76d46d53bb0b0eebdb8c1aa95 extra-context = key buildout_bin_directory buildout:bin-directory key dcron_location dcron:location @@ -84,10 +92,9 @@ extra-context = [template-cloudooo] recipe = slapos.recipe.build:download url = ${:_profile_base_location_}/instance-cloudoo.cfg.in -md5sum = 91eb4b262d3d61d193fa13fb97ef28c8 +md5sum = 6ac3dbd98958cdf3131c0e79754d4cb0 mode = 640 - [networkcache] # signature certificates of the following uploaders. # Romain Courteaud -- 2.30.9