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
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Xavier Thompson
slapos
Commits
f9e6239b
Commit
f9e6239b
authored
Jun 15, 2012
by
Cédric de Saint Martin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' into drupal
parents
14b4699b
3355c7dd
Changes
15
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
365 additions
and
198 deletions
+365
-198
CHANGES.txt
CHANGES.txt
+7
-1
component/cloud9/buildout.cfg
component/cloud9/buildout.cfg
+13
-5
component/git/buildout.cfg
component/git/buildout.cfg
+4
-5
component/nodejs/buildout.cfg
component/nodejs/buildout.cfg
+2
-2
setup.py
setup.py
+2
-1
slapos/recipe/cloud9/__init__.py
slapos/recipe/cloud9/__init__.py
+60
-0
slapos/recipe/slaprunner/__init__.py
slapos/recipe/slaprunner/__init__.py
+51
-55
slapos/recipe/slaprunner/template/slapos.cfg.in
slapos/recipe/slaprunner/template/slapos.cfg.in
+1
-0
software/slaprunner/README.txt
software/slaprunner/README.txt
+23
-0
software/slaprunner/instance-runner.cfg
software/slaprunner/instance-runner.cfg
+141
-0
software/slaprunner/instance.cfg
software/slaprunner/instance.cfg
+5
-61
software/slaprunner/software.cfg
software/slaprunner/software.cfg
+50
-55
stack/lamp/buildout.cfg
stack/lamp/buildout.cfg
+3
-0
stack/nodejs.cfg
stack/nodejs.cfg
+0
-11
stack/slapos.cfg
stack/slapos.cfg
+3
-2
No files found.
CHANGES.txt
View file @
f9e6239b
Changes
Changes
=======
=======
0.5
3
(Unreleased)
0.5
4
(Unreleased)
-----------------
-----------------
* No change yet.
* No change yet.
0.53 (2012-06-07)
-----------------
* Switch slaprunner into generic recipe, and add cloud9 recipe. [Cedric de
Saint Martin]
0.52 (2012-05-16)
0.52 (2012-05-16)
-----------------
-----------------
...
...
component/cloud9/buildout.cfg
View file @
f9e6239b
...
@@ -14,6 +14,13 @@ parts =
...
@@ -14,6 +14,13 @@ parts =
[cloud9]
[cloud9]
<= cloud9-git
<= cloud9-git
[node-sm]
recipe = slapos.recipe.build:npm
packages = sm
node = nodejs
environment =
PATH=${nodejs:location}/bin:%(PATH)s
[cloud9-git]
[cloud9-git]
# Online IDE written in javascript/node.js
# Online IDE written in javascript/node.js
# URL : c9.io
# URL : c9.io
...
@@ -21,12 +28,13 @@ parts =
...
@@ -21,12 +28,13 @@ parts =
# NODE_PATH=${:destination}/node_modules ${nodejs:node_location} ${:cloud9_js_location}
# NODE_PATH=${:destination}/node_modules ${nodejs:node_location} ${:cloud9_js_location}
recipe = plone.recipe.command
recipe = plone.recipe.command
stop-on-error = true
stop-on-error = true
commit =
97db1467c517d265438684bd2a70b0b76ee282f6
commit =
4bde3206ac0dc1e5736cb18a42851e203a6cc68f
repository = https://github.com/ajaxorg/cloud9.git
repository = https://github.com/ajaxorg/cloud9.git
location = ${buildout:parts-directory}/${:_buildout_section_name_}
location = ${buildout:parts-directory}/${:_buildout_section_name_}
git-binary = ${git:location}/bin/git
git-binary = ${git:location}/bin/git
npm-binary = ${nodejs-0.4:location}/bin/node ${npm:location}/bin/npm
npm-binary = ${nodejs:location}/bin/node ${nodejs:location}/bin/npm
command = export GIT_SSL_NO_VERIFY=true; (${:git-binary} clone --quiet ${:repository} ${:location} && cd ${:location} && ${:git-binary} reset --hard ${:commit} && ${:git-binary} submodule update --init && cd support/jsdav && PATH=${nodejs-0.4:location}/bin:$PATH LDFLAGS=-L${libxml2:location}/lib ${:npm-binary} install) || (rm -fr ${:location}; exit 1)
environment = export GIT_SSL_NO_VERIFY=true; export PATH=${nodejs:location}/bin:$PATH; export LDFLAGS=-L${libxml2:location}/lib;
command = ${:environment} (${:git-binary} clone --quiet ${:repository} ${:location} && cd ${:location} && ${:git-binary} reset --hard ${:commit} && ${node-sm:location}/node_modules/.bin/sm install && ${:npm-binary} install) || (rm -fr ${:location}; exit 1)
update-command =
update-command =
[cloud9-npm]
[cloud9-npm]
...
@@ -36,10 +44,10 @@ update-command =
...
@@ -36,10 +44,10 @@ update-command =
# NODE_PATH=${:destination}/node_modules ${nodejs:node_location} ${:cloud9_js_location}
# NODE_PATH=${:destination}/node_modules ${nodejs:node_location} ${:cloud9_js_location}
recipe = slapos.recipe.npm
recipe = slapos.recipe.npm
# Node part has to be specified, otherwise system node is used.
# Node part has to be specified, otherwise system node is used.
node = nodejs
-0.6
node = nodejs
# List of packages to install
# List of packages to install
packages =
packages =
cloud9
cloud9
==0.7
# Specify environment jsDAV (dependency of cloud9) needs libxml2
# Specify environment jsDAV (dependency of cloud9) needs libxml2
environment =
environment =
LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
LDFLAGS=-L${libxml2:location}/lib -Wl,-rpath=${libxml2:location}/lib
component/git/buildout.cfg
View file @
f9e6239b
...
@@ -6,25 +6,24 @@ extends =
...
@@ -6,25 +6,24 @@ extends =
../curl/buildout.cfg
../curl/buildout.cfg
../libexpat/buildout.cfg
../libexpat/buildout.cfg
../openssl/buildout.cfg
../openssl/buildout.cfg
../perl/buildout.cfg
../zlib/buildout.cfg
../zlib/buildout.cfg
parts =
parts =
git
git
[git]
[git]
recipe = hexagonit.recipe.cmmi
recipe = hexagonit.recipe.cmmi
url = http://git-core.googlecode.com/files/git-1.7.
8
.4.tar.gz
url = http://git-core.googlecode.com/files/git-1.7.
10
.4.tar.gz
md5sum =
e6c3319d76d52a830af395046fc56143
md5sum =
68319d593d051ef76c26e945bbd2d7ac
configure-options =
configure-options =
--with-curl=${curl:location}
--with-curl=${curl:location}
--with-openssl=${openssl:location}
--with-openssl=${openssl:location}
--with-zlib=${zlib:location}
--with-zlib=${zlib:location}
--with-expat=${libexpat:location}
--with-expat=${libexpat:location}
--with-perl=${perl:location}/bin/perl
--without-python
--without-python
--without-tcltk
--without-tcltk
environment =
environment =
PATH=${curl:location}/bin:%(PATH)s
NO_PERL=y
PATH=${curl:location}/bin:${gettext:location}/bin:%(PATH)s
CPPFLAGS=-I${zlib:location}/include
CPPFLAGS=-I${zlib:location}/include
LDFLAGS=-L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${zlib:location}/lib
LDFLAGS=-L${zlib:location}/lib -L${openssl:location}/lib -Wl,-rpath=${openssl:location}/lib -Wl,-rpath=${zlib:location}/lib
component/nodejs/buildout.cfg
View file @
f9e6239b
...
@@ -12,8 +12,8 @@ parts =
...
@@ -12,8 +12,8 @@ parts =
[nodejs]
[nodejs]
# Server-side Javascript.
# Server-side Javascript.
recipe = hexagonit.recipe.cmmi
recipe = hexagonit.recipe.cmmi
url = http://nodejs.org/dist/v0.6.1
2/node-v0.6.12
.tar.gz
url = http://nodejs.org/dist/v0.6.1
9/node-v0.6.19
.tar.gz
md5sum =
a12766ae4003c9712927d1fa134ed9f6
md5sum =
f5669a9717422b811c6bad1cc961b1e5
configure-options =
configure-options =
--openssl-includes=${openssl:location}/include
--openssl-includes=${openssl:location}/include
--openssl-libpath=${openssl:location}/lib
--openssl-libpath=${openssl:location}/lib
...
...
setup.py
View file @
f9e6239b
...
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
...
@@ -2,7 +2,7 @@ from setuptools import setup, find_packages
import
glob
import
glob
import
os
import
os
version
=
'0.5
3
-dev'
version
=
'0.5
4
-dev'
name
=
'slapos.cookbook'
name
=
'slapos.cookbook'
long_description
=
open
(
"README.txt"
).
read
()
+
"
\
n
"
+
\
long_description
=
open
(
"README.txt"
).
read
()
+
"
\
n
"
+
\
open
(
"CHANGES.txt"
).
read
()
+
"
\
n
"
open
(
"CHANGES.txt"
).
read
()
+
"
\
n
"
...
@@ -49,6 +49,7 @@ setup(name=name,
...
@@ -49,6 +49,7 @@ setup(name=name,
'certificate_authority.request = slapos.recipe.certificate_authority:Request'
,
'certificate_authority.request = slapos.recipe.certificate_authority:Request'
,
'check_port_listening = slapos.recipe.check_port_listening:Recipe'
,
'check_port_listening = slapos.recipe.check_port_listening:Recipe'
,
'check_url_available = slapos.recipe.check_url_available:Recipe'
,
'check_url_available = slapos.recipe.check_url_available:Recipe'
,
'cloud9 = slapos.recipe.cloud9:Recipe'
,
'cron = slapos.recipe.dcron:Recipe'
,
'cron = slapos.recipe.dcron:Recipe'
,
'cron.d = slapos.recipe.dcron:Part'
,
'cron.d = slapos.recipe.dcron:Part'
,
'davstorage = slapos.recipe.davstorage:Recipe'
,
'davstorage = slapos.recipe.davstorage:Recipe'
,
...
...
slapos/recipe/cloud9/__init__.py
0 → 100644
View file @
f9e6239b
##############################################################################
#
# Copyright (c) 2010 Vifib SARL and Contributors. All Rights Reserved.
#
# WARNING: This program as such is intended to be used by professional
# programmers who take the whole responsibility of assessing all potential
# consequences resulting from its eventual inadequacies and bugs
# End users who are looking for a ready-to-use solution with commercial
# guarantees and support are strongly adviced to contract a Free Software
# Service Company
#
# This program is Free Software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 3
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
##############################################################################
from
slapos.recipe.librecipe
import
GenericBaseRecipe
import
os
class
Recipe
(
GenericBaseRecipe
):
"""Deploy a fully operational cloud9 service."""
def
_options
(
self
,
options
):
self
.
ip
=
options
[
'ip'
].
strip
()
self
.
port
=
options
[
'port'
].
strip
()
self
.
git
=
options
[
'git-binary'
].
strip
()
self
.
node_executable
=
options
[
'node-binary'
].
strip
()
self
.
cloud9
=
options
[
'cloud9'
].
strip
()
self
.
workdir
=
options
[
'working-directory'
].
strip
()
self
.
wrapper
=
options
[
'wrapper'
].
strip
()
# Set cloud9 access URL
options
[
'access-url'
]
=
'http://[%s]:%s'
%
(
self
.
ip
,
self
.
port
)
def
install
(
self
):
path_list
=
[]
environment
=
{
'PATH'
:
os
.
path
.
dirname
(
self
.
git
)
+
':'
+
os
.
environ
[
'PATH'
],
}
cloud9_args
=
[
self
.
node_executable
,
self
.
cloud9
,
'-l'
,
self
.
ip
,
'-p'
,
self
.
port
,
'-w'
,
self
.
workdir
]
wrapper
=
self
.
createPythonScript
(
self
.
wrapper
,
'slapos.recipe.librecipe.execute.executee'
,
(
cloud9_args
,
environment
)
)
path_list
.
append
(
wrapper
)
return
path_list
slapos/recipe/slaprunner/__init__.py
View file @
f9e6239b
...
@@ -24,74 +24,70 @@
...
@@ -24,74 +24,70 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#
#
##############################################################################
##############################################################################
from
slapos.recipe.librecipe
import
BaseSlap
Recipe
from
slapos.recipe.librecipe
import
GenericBase
Recipe
import
os
import
os
import
pkg_resources
import
sys
import
zc.buildout
import
zc.recipe.egg
class
Recipe
(
GenericBaseRecipe
):
def
_options
(
self
,
options
):
self
.
ipv4
=
options
[
'ipv4'
].
strip
()
self
.
ipv6
=
options
[
'ipv6'
].
strip
()
self
.
proxy_port
=
options
[
'proxy_port'
].
strip
()
self
.
runner_port
=
options
[
'runner_port'
].
strip
()
self
.
workdir
=
options
[
'working-directory'
].
strip
()
self
.
software_directory
=
options
[
'software-directory'
].
strip
()
self
.
instance_directory
=
options
[
'instance-directory'
].
strip
()
self
.
partition_amount
=
options
[
'partition-amount'
].
strip
()
self
.
cloud9_url
=
options
[
'cloud9-url'
].
strip
()
# Set slaprunner access URL
options
[
'access-url'
]
=
'http://[%s]:%s'
%
(
self
.
ipv6
,
self
.
runner_port
)
def
install
(
self
):
path_list
=
[]
class
Recipe
(
BaseSlapRecipe
):
def
_install
(
self
):
self
.
path_list
=
[]
self
.
requirements
,
self
.
ws
=
self
.
egg
.
working_set
()
ipv4
=
self
.
getLocalIPv4Address
()
ipv6
=
self
.
getGlobalIPv6Address
()
proxy_port
=
'50000'
runner_port
=
'50000'
cloud9_port
=
'30000'
workdir
=
self
.
createDataDirectory
(
'runner'
)
software_root
=
os
.
path
.
join
(
workdir
,
'software'
)
instance_root
=
os
.
path
.
join
(
workdir
,
'instance'
)
configuration
=
dict
(
configuration
=
dict
(
software_root
=
s
oftware_root
,
software_root
=
s
elf
.
software_directory
,
instance_root
=
instance_root
,
instance_root
=
self
.
instance_directory
,
master_url
=
'http://%s:%s/'
%
(
ipv4
,
proxy_port
),
master_url
=
'http://%s:%s/'
%
(
self
.
ipv4
,
self
.
proxy_port
),
computer_id
=
'slaprunner'
,
computer_id
=
'slaprunner'
,
partition_amount
=
7
,
partition_amount
=
self
.
partition_amount
,
slapgrid_sr
=
self
.
options
[
'slapgrid_sr'
],
slapgrid_sr
=
self
.
options
[
'slapgrid_sr'
],
slapgrid_cp
=
self
.
options
[
'slapgrid_cp'
],
slapgrid_cp
=
self
.
options
[
'slapgrid_cp'
],
slapproxy
=
self
.
options
[
'slapproxy'
],
slapproxy
=
self
.
options
[
'slapproxy'
],
supervisor
=
self
.
options
[
'supervisor'
],
supervisor
=
self
.
options
[
'supervisor'
],
supervisord_config
=
os
.
path
.
join
(
instance_root
,
'etc'
,
supervisord_config
=
os
.
path
.
join
(
self
.
instance_directory
,
'etc'
,
'supervisord.conf'
),
'supervisord.conf'
),
runner_workdir
=
workdir
,
runner_workdir
=
self
.
workdir
,
runner_host
=
ipv6
,
runner_host
=
self
.
ipv6
,
runner_port
=
runner_port
,
runner_port
=
self
.
runner_port
,
ipv4_address
=
ipv4
,
ipv4_address
=
self
.
ipv4
,
ipv6_address
=
ipv6
,
ipv6_address
=
self
.
ipv6
,
proxy_host
=
ipv4
,
proxy_host
=
self
.
ipv4
,
proxy_port
=
proxy_port
,
proxy_port
=
self
.
proxy_port
,
proxy_database
=
os
.
path
.
join
(
workdir
,
'proxy.db'
),
proxy_database
=
os
.
path
.
join
(
self
.
workdir
,
'proxy.db'
),
git
=
self
.
options
[
'git'
],
git
=
self
.
options
[
'git-binary'
],
cloud9_url
=
'http://[%s]:%s'
%
(
ipv6
,
cloud9_port
),
ssh_client
=
self
.
options
[
'ssh_client'
],
ssh_client
=
self
.
options
[
'ssh_client'
],
public_key
=
self
.
options
[
'public_key'
],
public_key
=
self
.
options
[
'public_key'
],
private_key
=
self
.
options
[
'private_key'
],
private_key
=
self
.
options
[
'private_key'
],
cloud9_url
=
self
.
cloud9_url
)
)
config_file
=
self
.
createConfigurationFile
(
'slapos.cfg'
,
self
.
substituteTemplate
(
pkg_resources
.
resource_filename
(
__name__
,
config_file
=
self
.
createFile
(
self
.
options
[
'slapos.cfg'
],
'template/slapos.cfg.in'
),
configuration
))
self
.
substituteTemplate
(
self
.
getTemplateFilename
(
'slapos.cfg.in'
),
self
.
path_list
.
append
(
config_file
)
configuration
))
path_list
.
append
(
config_file
)
environment
=
dict
(
environment
=
dict
(
PATH
=
os
.
path
.
dirname
(
self
.
options
[
'git'
])
+
':'
+
os
.
environ
[
'PATH'
],
PATH
=
os
.
path
.
dirname
(
self
.
options
[
'git
-binary
'
])
+
':'
+
os
.
environ
[
'PATH'
],
GIT_SSH
=
self
.
options
[
'ssh_client'
]
GIT_SSH
=
self
.
options
[
'ssh_client'
]
)
)
workdir
=
os
.
path
.
join
(
workdir
,
'project'
)
if
not
os
.
path
.
exists
(
workdir
):
os
.
mkdir
(
workdir
)
launch_args
=
[
self
.
options
[
'slaprunner'
].
strip
(),
config_file
,
'--debug'
]
launch_args
=
[
self
.
options
[
'slaprunner'
].
strip
(),
config_file
,
'--debug'
]
cloud9_args
=
[
self
.
options
[
'node-bin'
].
strip
(),
self
.
options
[
'cloud9'
].
strip
(),
'-l'
,
ipv6
,
'-p'
,
cloud9_port
,
'-w'
,
workdir
]
wrapper
=
self
.
createPythonScript
(
self
.
options
[
'wrapper'
],
self
.
path_list
.
extend
(
zc
.
buildout
.
easy_install
.
scripts
([(
'slaprunner'
,
'slapos.recipe.librecipe.execute.executee'
,
'slapos.recipe.librecipe.execute'
,
'executee'
)],
self
.
ws
,
sys
.
executable
,
(
launch_args
,
environment
)
self
.
wrapper_directory
,
arguments
=
[
launch_args
,
environment
]))
)
self
.
path_list
.
extend
(
zc
.
buildout
.
easy_install
.
scripts
([(
'cloud9IDE'
,
path_list
.
append
(
wrapper
)
'slapos.recipe.librecipe.execute'
,
'executee'
)],
self
.
ws
,
sys
.
executable
,
self
.
wrapper_directory
,
arguments
=
[
cloud9_args
,
environment
]))
return
path_list
self
.
setConnectionDict
(
dict
(
slaprunner_url
=
'http://[%s]:%s'
%
(
ipv6
,
runner_port
),
cloud9_url
=
'http://[%s]:%s'
%
(
ipv6
,
cloud9_port
)))
return
self
.
path_list
slapos/recipe/slaprunner/template/slapos.cfg.in
View file @
f9e6239b
...
@@ -3,6 +3,7 @@ software_root = %(software_root)s
...
@@ -3,6 +3,7 @@ software_root = %(software_root)s
instance_root = %(instance_root)s
instance_root = %(instance_root)s
master_url = %(master_url)s
master_url = %(master_url)s
computer_id = %(computer_id)s
computer_id = %(computer_id)s
maximal_delay = 0
[slapformat]
[slapformat]
partition_amount = %(partition_amount)s
partition_amount = %(partition_amount)s
...
...
software/slaprunner/README.txt
0 → 100644
View file @
f9e6239b
kvm
===
Introduction
------------
This software release is used to deploy Slaprunner instances.
Slaprunner is an all-in-one IDE used to develop and test profiles and recipes for SlapOS.
Parameters
----------
authorized-key
~~~~~~~~~~~~~~
You need to specify your SSH public key in order to connect to the SSH server of this instance.
Example of parameter XML::
<?xml version="1.0" encoding="utf-8"?>
<instance>
<parameter id="authorized-key">ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCdNp7qZMVAzNc07opHshiIFDmJpYXQpetfcSgUj39a409d42PpsJElp7WsAE/x0nN6gUIoWIl7UiAlMzf6bKEJGJVSOZEPTmiJVlgK1Gp+kE0x9yNcncYg7p38Jny0daVA/NkkpAFyRsAm5kLGzyLtaCcktSvy0cJuy7WSSHU05pd1f8Y8thofE9g5t+/JA2VZvipxPkRfkFAG3aOAGLULlTImTSDFSDFGSDFG5F6mMnl7yvY2d6vEHVBu+K+aKmAwZVfCUwtSpa/tq3i2Lppjrw3UfrxbQSFHZCkzefr+u+l4YYe+tJrX7rYJYXD7LIfZfdSeFTlHFaN/yI1 user@host.local</parameter>
</instance>
software/slaprunner/instance-runner.cfg
0 → 100644
View file @
f9e6239b
[buildout]
parts =
cloud9
slaprunner
sshkeys-dropbear
dropbear-server-add-authorized-key
publish-connection-informations
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
# Create all needed directories
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc/
var = $${buildout:directory}/var/
srv = $${buildout:directory}/srv/
bin = $${buildout:directory}/bin/
[directory]
recipe = slapos.cookbook:mkdirectory
sshkeys = $${rootdirectory:srv}/sshkeys
services = $${rootdirectory:etc}/run/
ssh = $${rootdirectory:etc}/ssh/
[basedirectory]
recipe = slapos.cookbook:mkdirectory
log = $${rootdirectory:var}/log/
services = $${rootdirectory:etc}/run/
run = $${rootdirectory:var}/run/
backup = $${rootdirectory:srv}/backup/
promises = $${rootdirectory:etc}/promise/
[runnerdirectory]
recipe = slapos.cookbook:mkdirectory
home = $${rootdirectory:srv}/runner/
project = $${:home}/project
software-root = $${:home}/software
instance-root = $${:home}/instance
# Deploy cloud9 and slaprunner
[cloud9]
recipe = slapos.cookbook:cloud9
ip = $${slap-network-information:global-ipv6}
port = 30000
wrapper = $${basedirectory:services}/cloud9
working-directory = $${runnerdirectory:home}
git-binary = ${git:location}/bin/git
node-binary = ${nodejs:location}/bin/node
cloud9 = ${cloud9:location}/server.js
[slaprunner]
recipe = slapos.cookbook:slaprunner
slaprunner = ${buildout:directory}/bin/slaprunner
slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr
slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp
slapproxy = ${buildout:directory}/bin/slapproxy
supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl
git-binary = ${git:location}/bin/git
slapos.cfg = $${rootdirectory:etc}/slapos.cfg
working-directory = $${runnerdirectory:home}
project-directory = $${runnerdirectory:project}
software-directory = $${runnerdirectory:software-root}
instance-directory = $${runnerdirectory:instance-root}
ssh_client = $${sshkeys-dropbear:wrapper}
public_key = $${sshkeys-dropbear:public-key}
private_key = $${sshkeys-dropbear:private-key}
ipv4 = $${slap-network-information:local-ipv4}
ipv6 = $${slap-network-information:global-ipv6}
proxy_port = 50000
runner_port = 50000
partition-amount = 7
cloud9-url = $${cloud9:access-url}
wrapper = $${basedirectory:services}/slaprunner
# Deploy dropbear (minimalist ssh server)
[sshkeys-directory]
recipe = slapos.cookbook:mkdirectory
requests = $${directory:sshkeys}/requests/
keys = $${directory:sshkeys}/keys/
[sshkeys-authority]
recipe = slapos.cookbook:sshkeys_authority
request-directory = $${sshkeys-directory:requests}
keys-directory = $${sshkeys-directory:keys}
wrapper = $${basedirectory:services}/sshkeys_authority
keygen-binary = ${dropbear:location}/bin/dropbearkey
[dropbear-server]
recipe = slapos.cookbook:dropbear
host = $${slap-network-information:global-ipv6}
port = 2222
home = $${directory:ssh}
wrapper = $${rootdirectory:bin}/raw_sshd
shell = /bin/bash
rsa-keyfile = $${directory:ssh}/server_key.rsa
dropbear-binary = ${dropbear:location}/sbin/dropbear
[sshkeys-dropbear]
<= sshkeys-authority
recipe = slapos.cookbook:sshkeys_authority.request
name = dropbear
type = rsa
executable = $${dropbear-server:wrapper}
public-key = $${dropbear-server:rsa-keyfile}.pub
private-key = $${dropbear-server:rsa-keyfile}
wrapper = $${basedirectory:services}/sshd
[dropbear-server-add-authorized-key]
<= dropbear-server
recipe = slapos.cookbook:dropbear.add_authorized_key
key = $${slap-parameter:authorized-key}
# Request frontend
[request-frontend]
<= slap-connection
recipe = slapos.cookbook:request
name = Frontend
# XXX We have hardcoded SR URL here.
software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
slave = true
config = url
config-url = $${slaprunner:access-url}
return = site_url
# Send informations to SlapOS Master
[publish-connection-informations]
recipe = slapos.cookbook:publish
backend_url = $${slaprunner:access-url}
url = $${request-frontend:connection-site_url}
cloud9_url = $${cloud9:access-url}
ssh_command = ssh $${dropbear-server:host} -p $${dropbear-server:port}
[slap-parameter]
# Default value if no ssh key is specified
authorized-key =
software/slaprunner/instance.cfg
View file @
f9e6239b
[buildout]
[buildout]
parts =
parts =
instance
switch_softwaretype
sshkeys-authority
sshkeys-dropbear
dropbear-client
eggs-directory = ${buildout:eggs-directory}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true
[instance]
[switch_softwaretype]
recipe = ${instance-recipe:egg}:${instance-recipe:module}
recipe = slapos.cookbook:softwaretype
slaprunner = ${buildout:directory}/bin/slaprunner
default = ${template-runner:output}
slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr
\ No newline at end of file
slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp
slapproxy = ${buildout:directory}/bin/slapproxy
supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl
git = ${git:location}/bin/git
node-bin = ${nodejs-0.4:location}/bin/node
cloud9 = ${cloud9:location}/bin/cloud9.js
ssh_client = $${sshkeys-dropbear:wrapper}
public_key = $${sshkeys-dropbear:public-key}
private_key = $${sshkeys-dropbear:private-key}
[sshkeys-directory]
recipe = slapos.cookbook:mkdirectory
requests = $${directory:sshkeys}/requests/
keys = $${directory:sshkeys}/keys/
[sshkeys-authority]
recipe = slapos.cookbook:sshkeys_authority
request-directory = $${sshkeys-directory:requests}
keys-directory = $${sshkeys-directory:keys}
wrapper = $${directory:services}/sshkeys_authority
keygen-binary = ${dropbear:location}/bin/dropbearkey
[sshkeys-dropbear]
<= sshkeys-authority
recipe = slapos.cookbook:sshkeys_authority.request
name = dropbear
type = rsa
executable = $${dropbear-client:wrapper}
public-key = $${dropbear-client:identity-file}.pub
private-key = $${dropbear-client:identity-file}
wrapper = $${rootdirectory:bin}/dbclient
[dropbear-client]
recipe = slapos.cookbook:dropbear.client
dbclient-binary = ${dropbear:location}/bin/dbclient
identity-file = $${directory:ssh}/id_rsa
wrapper = $${rootdirectory:bin}/dbclient_raw
home = $${rootdirectory:etc}/ssh/
force-host-key = True
[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc/
var = $${buildout:directory}/var/
srv = $${buildout:directory}/srv/
bin = $${buildout:directory}/bin/
[directory]
recipe = slapos.cookbook:mkdirectory
sshkeys = $${rootdirectory:srv}/sshkeys
services = $${rootdirectory:etc}/run/
ssh = $${rootdirectory:etc}/ssh/
\ No newline at end of file
software/slaprunner/software.cfg
View file @
f9e6239b
[buildout]
[buildout]
extensions =
buildout-versions
extends =
extends =
../../stack/slapos.cfg
../../stack/slapos.cfg
../../stack/flask.cfg
../../stack/flask.cfg
...
@@ -14,28 +10,23 @@ extends =
...
@@ -14,28 +10,23 @@ extends =
parts =
parts =
template
template
eggs
eggs
instance-recipe-egg
slapos-cookbook
dropbear
versions = versions
[instance-recipe]
egg = slapos.cookbook
module = slaprunner
[instance-recipe-egg]
recipe = zc.recipe.egg
python = python2.7
eggs = ${instance-recipe:egg}
[template]
[template]
recipe = slapos.recipe.template
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance.cfg
url = ${:_profile_base_location_}/instance.cfg
output = ${buildout:directory}/template.cfg
output = ${buildout:directory}/template.cfg
mode = 0644
mode = 0644
md5sum =
7cfd248cdc6fa6cbb4957d25a0aed884
md5sum =
5307e4200f044ae57b504ad68444491c
[eggs]
[template-runner]
recipe = slapos.recipe.template
url = ${:_profile_base_location_}/instance-runner.cfg
output = ${buildout:directory}/template-runner.cfg
md5sum = 237c3fd54970d92f8a51a9949880f788
mode = 0644
[slapos-cookbook]
eggs +=
eggs +=
slapos.libnetworkcache
slapos.libnetworkcache
slapos.toolbox
slapos.toolbox
...
@@ -60,98 +51,102 @@ signature-certificate-list =
...
@@ -60,98 +51,102 @@ signature-certificate-list =
-----END CERTIFICATE-----
-----END CERTIFICATE-----
[versions]
[versions]
# Use SlapOS patched zc.buildout
zc.buildout = 1.6.0-dev-SlapOS-003
Jinja2 = 2.6
Jinja2 = 2.6
Pygments = 1.5
Werkzeug = 0.8.3
Werkzeug = 0.8.3
apache-libcloud = 0.
8.0
apache-libcloud = 0.
10.1
async = 0.6.1
async = 0.6.1
buildout-versions = 1.7
buildout-versions = 1.7
docutils = 0.9
gitdb = 0.5.4
gitdb = 0.5.4
hexagonit.recipe.cmmi = 1.5.0
hexagonit.recipe.cmmi = 1.5.1
ipython = 0.12.1
meld3 = 0.6.8
meld3 = 0.6.8
plone.recipe.command = 1.1
plone.recipe.command = 1.1
pycrypto = 2.
5
pycrypto = 2.
6
slapos.cookbook = 0.
45
slapos.cookbook = 0.
53
slapos.libnetworkcache = 0.12
slapos.libnetworkcache = 0.12
slapos.recipe.template = 2.3
slapos.recipe.build = 0.9
slapos.toolbox = 0.20
slapos.recipe.template = 2.4
slapos.toolbox = 0.24
smmap = 0.8.2
smmap = 0.8.2
# Required by:
# Required by:
# slapos.core==0.2
4
# slapos.core==0.2
5
Flask = 0.8
Flask = 0.8
# Required by:
# Required by:
# slapos.toolbox==0.2
0
# slapos.toolbox==0.2
4
GitPython = 0.3.2.RC1
GitPython = 0.3.2.RC1
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
PyXML = 0.8.4
PyXML = 0.8.4
# Required by:
# Required by:
# slapos.toolbox==0.20
# netaddr==0.7.7
Sphinx = 1.1.3
# Required by:
# slapos.toolbox==0.24
atomize = 0.1.1
atomize = 0.1.1
# Required by:
# Required by:
# slapos.toolbox==0.2
0
# slapos.toolbox==0.2
4
feedparser = 5.1.
1
feedparser = 5.1.
2
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
inotifyx = 0.2.0
inotifyx = 0.2.0
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
# slapos.core==0.2
4
# slapos.core==0.2
5
# xml-marshaller==0.9.7
# xml-marshaller==0.9.7
lxml = 2.3.4
lxml = 2.3.4
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
netaddr = 0.7.
6
netaddr = 0.7.
7
# Required by:
# Required by:
# slapos.core==0.2
4
# slapos.core==0.2
5
netifaces = 0.8
netifaces = 0.8
# Required by:
# Required by:
# slapos.toolbox==0.2
0
# slapos.toolbox==0.2
4
paramiko = 1.7.7.
1
paramiko = 1.7.7.
2
# Required by:
# Required by:
# slapos.toolbox==0.2
0
# slapos.toolbox==0.2
4
psutil = 0.4.1
psutil = 0.4.1
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
# slapos.core==0.2
4
# slapos.core==0.2
5
# slapos.libnetworkcache==0.12
# slapos.libnetworkcache==0.12
# slapos.toolbox==0.2
0
# slapos.toolbox==0.2
4
# supervisor==3.0a12
# supervisor==3.0a12
# zc.buildout==1.6.0-dev-SlapOS-00
3
# zc.buildout==1.6.0-dev-SlapOS-00
4
# zc.recipe.egg==1.3.2
# zc.recipe.egg==1.3.2
# zope.interface==
3.8.0
# zope.interface==
4.0.1
setuptools = 0.6c12dev-r88846
setuptools = 0.6c12dev-r88846
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
slapos.core = 0.2
4
slapos.core = 0.2
5
# Required by:
# Required by:
# slapos.core==0.2
4
# slapos.core==0.2
5
supervisor = 3.0a12
supervisor = 3.0a12
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
xml-marshaller = 0.9.7
xml-marshaller = 0.9.7
# Required by:
# Required by:
# slapos.cookbook==0.
45
# slapos.cookbook==0.
53
zc.recipe.egg = 1.3.2
zc.recipe.egg = 1.3.2
# Required by:
# Required by:
# slapos.core==0.24
# slapos.core==0.25
zope.interface = 3.8.0
zope.interface = 4.0.1
\ No newline at end of file
stack/lamp/buildout.cfg
View file @
f9e6239b
...
@@ -35,6 +35,9 @@ extends =
...
@@ -35,6 +35,9 @@ extends =
../../component/mysql-python/buildout.cfg
../../component/mysql-python/buildout.cfg
../../component/dropbear/buildout.cfg
../../component/dropbear/buildout.cfg
../slapos.cfg
../slapos.cfg
../../component/python-2.7/buildout.cfg
# python-2.7 component is here only for compatibility with old software.cfg.
# It is not needed and should not be used in LAMP-based software.cfg
[mariadb]
[mariadb]
# Compile dir is for plugins, there's no plugin in LAMP
# Compile dir is for plugins, there's no plugin in LAMP
...
...
stack/nodejs.cfg
View file @
f9e6239b
[buildout]
[buildout]
extends =
extends =
../component/nodejs/buildout.cfg
../component/nodejs/buildout.cfg
../component/lxml-python/buildout.cfg
../stack/slapos.cfg
../stack/slapos.cfg
versions = versions
parts =
parts =
eggs
nodejs
nodejs
npm
[eggs]
recipe = zc.recipe.egg
eggs =
slapos.cookbook
${lxml-python:egg}
stack/slapos.cfg
View file @
f9e6239b
...
@@ -2,6 +2,9 @@
...
@@ -2,6 +2,9 @@
# Software Releases or Stacks can safely extend this stack.
# Software Releases or Stacks can safely extend this stack.
[buildout]
[buildout]
# It is good idea for developers to add explicitely this part in their profile
parts += slapos-cookbook
# Generate list of automatically chosen eggs version
# Generate list of automatically chosen eggs version
extensions +=
extensions +=
buildout-versions
buildout-versions
...
@@ -41,8 +44,6 @@ allow-hosts +=
...
@@ -41,8 +44,6 @@ allow-hosts +=
# development / fast switching environment for whole software
# development / fast switching environment for whole software
unzip = true
unzip = true
parts += slapos-cookbook
versions = versions
versions = versions
# Install slapos.cookbook containing all officials recipes
# Install slapos.cookbook containing all officials recipes
...
...
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