8 logrotate-entry-stunnel
13 frontend-ajaxupload-promise
14 frontend-website2-promise
15 frontend-website-promise
17 publish-connection-informations
19 eggs-directory = ${buildout:eggs-directory}
20 develop-eggs-directory = ${buildout:develop-eggs-directory}
26 #-- Creation of all needed directories.
29 recipe = slapos.cookbook:mkdirectory
30 etc = $${buildout:directory}/etc
31 var = $${buildout:directory}/var
32 srv = $${buildout:directory}/srv
33 bin = $${buildout:directory}/bin
34 tmp = $${buildout:directory}/tmp
37 recipe = slapos.cookbook:mkdirectory
38 log = $${rootdirectory:var}/log
39 services = $${rootdirectory:etc}/service
40 run = $${rootdirectory:var}/run
41 backup = $${rootdirectory:srv}/backup
42 promises = $${rootdirectory:etc}/promise
45 recipe = slapos.cookbook:mkdirectory
46 cron-entries = $${rootdirectory:etc}/cron.d
47 crontabs = $${rootdirectory:etc}/crontabs
48 cronstamps = $${rootdirectory:etc}/cronstamps
49 ca-dir = $${rootdirectory:srv}/ssl
50 httpd-log = $${basedirectory:log}/apache
51 php-ini-dir = $${rootdirectory:etc}/php
52 tmp-php = $${rootdirectory:tmp}/php
53 logrotate-entries = $${rootdirectory:etc}/logrotate.d
54 logrotate-backup = $${basedirectory:backup}/logrotate
55 report = $${rootdirectory:etc}/report
56 stunnel-conf = $${rootdirectory:etc}/stunnel
57 xml-report = $${rootdirectory:var}/xml_report
58 www = $${rootdirectory:srv}/www/
61 recipe = slapos.cookbook:mkdirectory
62 requests = $${directory:ca-dir}/requests
63 private = $${directory:ca-dir}/private
64 certs = $${directory:ca-dir}/certs
65 newcerts = $${directory:ca-dir}/newcerts
66 crl = $${directory:ca-dir}/crl
74 recipe = slapos.cookbook:cron
75 dcrond-binary = ${dcron:location}/sbin/crond
76 cron-entries = $${directory:cron-entries}
77 crontabs = $${directory:crontabs}
78 cronstamps = $${directory:cronstamps}
79 catcher = $${cron-simplelogger:wrapper}
80 binary = $${basedirectory:services}/crond
83 recipe = slapos.cookbook:simplelogger
84 wrapper = $${rootdirectory:bin}/cron_simplelogger
85 log = $${basedirectory:log}/crond.log
92 [cron-entry-logrotate]
94 recipe = slapos.cookbook:cron.d
97 command = $${logrotate:wrapper}
100 recipe = slapos.cookbook:logrotate
102 logrotate-binary = ${logrotate:location}/usr/sbin/logrotate
103 gzip-binary = ${gzip:location}/bin/gzip
104 gunzip-binary = ${gzip:location}/bin/gunzip
106 wrapper = $${rootdirectory:bin}/logrotate
107 conf = $${rootdirectory:etc}/logrotate.conf
108 logrotate-entries = $${directory:logrotate-entries}
109 backup = $${directory:logrotate-backup}
110 state-file = $${rootdirectory:srv}/logrotate.status
118 recipe = slapos.cookbook:stunnel
120 stunnel-binary = ${stunnel:location}/bin/stunnel
121 remote-host = $${mariadb-urlparse:host}
122 remote-port = $${mariadb-urlparse:port}
123 local-host = $${slap-network-information:local-ipv4}
125 log-file = $${basedirectory:log}/stunnel.log
126 config-file = $${directory:stunnel-conf}/stunnel.conf
127 key-file = $${directory:stunnel-conf}/stunnel.key
128 cert-file = $${directory:stunnel-conf}/stunnel.crt
129 pid-file = $${basedirectory:run}/stunnel.pid
130 wrapper = $${rootdirectory:bin}/raw_stunnel
131 post-rotate-script = $${rootdirectory:bin}/stunnel_post_rotate
133 [logrotate-entry-stunnel]
135 recipe = slapos.cookbook:logrotate.d
137 log = $${stunnel:log-file}
142 post = $${stunnel:post-rotate-script}
147 #-- Certificate stuff.
149 [certificate-authority]
150 recipe = slapos.cookbook:certificate_authority
151 openssl-binary = ${openssl:location}/bin/openssl
152 ca-dir = $${directory:ca-dir}
153 requests-directory = $${cadirectory:requests}
154 wrapper = $${basedirectory:services}/ca
155 ca-private = $${cadirectory:private}
156 ca-certs = $${cadirectory:certs}
157 ca-newcerts = $${cadirectory:newcerts}
158 ca-crl = $${cadirectory:crl}
161 <= certificate-authority
162 recipe = slapos.cookbook:certificate_authority.request
163 executable = $${stunnel:wrapper}
164 wrapper = $${basedirectory:services}/stunnel
165 key-file = $${stunnel:key-file}
166 cert-file = $${stunnel:cert-file}
171 #-- Request MariaDB instance and parse its URL.
175 recipe = slapos.cookbook:request
177 software-url = $${slap-connection:software-release-url}
178 software-type = mariadb
181 sla-computer_guid = $${slap-connection:computer-id}
184 recipe = slapos.cookbook:urlparse
185 url = $${request-mariadb:connection-url}
190 #-- Deploy Apache + PHP application.
192 recipe = slapos.recipe.template
193 url = ${template-httpd-conf:location}/${template-httpd-conf:filename}
194 output = $${rootdirectory:etc}/apache.conf
197 document_root = $${rootdirectory:srv}/www/
198 pid_file = $${basedirectory:run}/apache.pid
199 lock_file = $${basedirectory:run}/apache.lock
200 ip = $${slap-network-information:global-ipv6}
204 error_log = $${directory:httpd-log}/error.log
205 access_log = $${directory:httpd-log}/access.log
206 php_ini_dir = $${directory:php-ini-dir}
209 # Deploy Apache + PHP application
211 recipe = slapos.cookbook:apachephp
212 source = ${application:location}
216 htdocs = $${directory:www}
217 pid-file = $${basedirectory:run}/apache.pid
218 lock-file = $${basedirectory:run}/apache.lock
219 ip = $${httpd-conf:ip}
220 port = $${httpd-conf:port}
221 url = http://[$${:ip}]:$${:port}/
222 error-log = $${directory:httpd-log}/error.log
223 access-log = $${directory:httpd-log}/access.log
224 php-ini-dir = $${directory:php-ini-dir}
225 tmp-dir = $${directory:tmp-php}
226 wrapper = $${basedirectory:services}/apache
228 httpd-binary = ${apache:location}/bin/httpd
231 httpd-conf = $${httpd-conf:output}
233 mysql-username = $${mariadb-urlparse:username}
234 mysql-password = $${mariadb-urlparse:password}
235 mysql-database = $${mariadb-urlparse:path}
236 mysql-host = $${stunnel:local-host}
237 mysql-port = $${stunnel:local-port}
240 [logrotate-entry-apache]
242 recipe = slapos.cookbook:logrotate.d
244 log = $${apache-php:error-log} $${apache-php:access-log}
254 #-- Request frontends.
258 recipe = slapos.cookbook:requestoptional
259 name = Frontend-Website
260 # XXX We have hardcoded SR URL here.
261 software-url = $${slap-parameter:frontend-software-url}
263 config = url custom_domain
264 config-url = http://[$${apache-php:ip}]:$${apache-php:port}/
266 config-custom_domain = $${slap-parameter:domain}
268 [request-frontend-ajaxupload]
270 recipe = slapos.cookbook:requestoptional
271 name = Frontend-FileManager
272 # XXX We have hardcoded SR URL here.
273 software-url = $${slap-parameter:frontend-software-url}
275 config = url custom_domain
276 config-url = http://[$${httpd-conf:ip}]:$${httpd-conf:port2}/
278 config-custom_domain = $${slap-parameter:domain2}
282 recipe = slapos.cookbook:requestoptional
283 name = Frontend-Website2
284 # XXX We have hardcoded SR URL here.
285 software-url = $${slap-parameter:frontend-software-url}
287 config = url custom_domain
288 config-url = http://[$${httpd-conf:ip}]:$${httpd-conf:port3}/
290 config-custom_domain = $${slap-parameter:domain3}
295 #-- Deploy slapmonitor.
298 #recipe = slapos.cookbook:slapmonitor
299 #pid-file = $${basedirectory:run}/apache.pid
300 #database-path = $${basedirectory:log}/slapmonitor.db
301 #slapmonitor-path = ${buildout:bin-directory}/slapmonitor
302 #path = $${basedirectory:services}/slapmonitor
305 #recipe = slapos.cookbook:slapmonitor-xml
306 #database-path = $${basedirectory:log}/slapmonitor.db
307 #slapmonitor-xml-path = ${buildout:bin-directory}/slapmonitor-xml
308 #path = $${directory:report}/slapmonitor-xml
313 #-- Publish instance parameters.
315 [publish-connection-informations]
316 recipe = slapos.cookbook:publish
317 website-backend-url = $${apache-php:url}
318 website-url = $${request-frontend:connection-site_url}
319 website2-backend-url = http://[$${apache-php:ip}]:$${httpd-conf:port3}
320 website2-url = $${request-frontend2:connection-site_url}
321 filemanager-backend-url = http://[$${apache-php:ip}]:$${httpd-conf:port2}
322 fileManager-url = $${request-frontend-ajaxupload:connection-site_url}
323 mysql-username = $${mariadb-urlparse:username}
324 mysql-password = $${mariadb-urlparse:password}
325 mysql-database = $${mariadb-urlparse:path}
326 mysql-host = $${stunnel:local-host}
327 mysql-port = $${stunnel:local-port}
332 #-- Deploy promises scripts.
335 recipe = slapos.cookbook:check_port_listening
336 path = $${basedirectory:promises}/apache
337 hostname = $${apache-php:ip}
338 port = $${apache-php:port}
340 [frontend-website-promise]
341 recipe = slapos.cookbook:check_url_available
342 path = $${basedirectory:promises}/frontend-website
343 url = $${request-frontend:connection-site_url}
344 dash_path = ${dash:location}/bin/dash
345 curl_path = ${curl:location}/bin/curl
347 [frontend-website2-promise]
348 recipe = slapos.cookbook:check_url_available
349 path = $${basedirectory:promises}/frontend-website2
350 url = $${request-frontend2:connection-site_url}
351 dash_path = ${dash:location}/bin/dash
352 curl_path = ${curl:location}/bin/curl
354 [frontend-ajaxupload-promise]
355 recipe = slapos.cookbook:check_url_available
356 path = $${basedirectory:promises}/frontend-ajaxupload
357 url = $${request-frontend-ajaxupload:connection-site_url}
358 dash_path = ${dash:location}/bin/dash
359 curl_path = ${curl:location}/bin/curl
362 recipe = slapos.cookbook:check_page_content
363 path = $${basedirectory:promises}/content
364 url = $${request-frontend-ajaxupload:connection-site_url}
366 dash_path = ${dash:location}/bin/dash
367 curl_path = ${curl:location}/bin/curl
373 # Default value if no domain is specified
377 frontend-software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg
378 # Default value if no ssh parameter is specified