apache-frontend: fix double publication bug
[slapos.git] / software / apache-frontend / instance-apache-frontend.cfg
1 [buildout]
2 parts =
3   directory
4   configtest
5   logrotate
6   cron
7   cron-entry-logrotate
8   ca-frontend
9   certificate-authority
10   logrotate-entry-apache
11   logrotate-entry-apache-cached
12   apache-frontend
13   apache-cached
14   switch-apache-softwaretype
15   frontend-apache-graceful
16   cached-apache-graceful
17   dynamic-template-default-vh
18   not-found-html
19   promise-frontend-apache-configuration
20   promise-cached-apache-configuration
21   promise-apache-frontend-v4-https
22   promise-apache-frontend-v4-http
23   promise-apache-frontend-v6-https
24   promise-apache-frontend-v6-http
25   promise-apache-cached
26
27   trafficserver-launcher
28   trafficserver-reload
29   trafficserver-configuration-directory
30   trafficserver-records-config
31   trafficserver-remap-config
32   trafficserver-plugin-config
33   trafficserver-storage-config
34   trafficserver-promise-listen-port
35
36 ## Monitoring part
37 ###Parts to add for monitoring
38   certificate-authority
39   cron-entry-monitor
40   cron-entry-rss
41   deploy-index
42   deploy-settings-cgi
43   deploy-status-cgi
44   deploy-status-history-cgi
45   setup-static-files
46   certificate-authority
47   zero-parameters
48   public-symlink
49   cgi-httpd-wrapper
50   cgi-httpd-graceful-wrapper
51   monitor-promise
52   monitor-instance-log-access
53 ## Monitor for apache
54   monitor-current-log-access
55   monitor-backup-log-access
56   monitor-ats-cache-stats-wrapper
57   monitor-apache-configuration-verification
58   monitor-verify-re6st-connectivity
59
60 extends = ${monitor-template:output}
61
62
63 eggs-directory = ${buildout:eggs-directory}
64 develop-eggs-directory = ${buildout:develop-eggs-directory}
65 offline = true
66
67 # Create all needed directories
68 [directory]
69 recipe = slapos.cookbook:mkdirectory
70
71 bin = $${buildout:directory}/bin/
72 etc = $${buildout:directory}/etc/
73 srv = $${buildout:directory}/srv/
74 var = $${buildout:directory}/var/
75 template = $${buildout:directory}/template/
76
77 backup = $${:srv}/backup
78 log = $${:var}/log
79 run = $${:var}/run
80 service = $${:etc}/service
81 etc-run = $${:etc}/run
82 promise = $${:etc}/promise
83
84 logrotate-backup = $${:backup}/logrotate
85 logrotate-entries = $${:etc}/logrotate.d
86
87 cron-entries = $${:etc}/cron.d
88 crontabs = $${:etc}/crontabs
89 cronstamps = $${:etc}/cronstamps
90 ca-dir = $${:srv}/ssl
91
92
93 [switch-apache-softwaretype]
94 recipe = slapos.cookbook:softwaretype
95 single-default = $${dynamic-default-template-slave-list:rendered}
96 single-custom-personal = $${dynamic-custom-personal-template-slave-list:rendered}
97 single-custom-group = $${dynamic-custom-group-template-slave-list:rendered}
98
99 [instance-parameter]
100 # Fetches parameters defined in SlapOS Master for this instance.
101 # Always the same.
102 recipe = slapos.cookbook:slapconfiguration.serialised
103 computer = $${slap-connection:computer-id}
104 partition = $${slap-connection:partition-id}
105 url = $${slap-connection:server-url}
106 key = $${slap-connection:key-file}
107 cert = $${slap-connection:cert-file}
108 # Define default parameter(s) that will be used later, in case user didn't
109 # specify it
110 # All parameters are available through the configuration.XX syntax.
111 # All possible parameters should have a default.
112 configuration.domain = example.org
113 configuration.public-ipv4 =
114 configuration.port = 4443
115 configuration.plain_http_port = 8080
116 configuration.server-admin = admin@example.com
117 configuration.apache_custom_https = ""
118 configuration.apache_custom_http = ""
119 configuration.apache-key =
120 configuration.apache-certificate =
121 configuration.open-port = 80 443
122 configuration.extra_slave_instance_list =
123
124 [frontend-configuration]
125 template-log-access = ${template-log-access:target}
126 log-access-configuration = $${directory:etc}/apache-log-access.conf
127 apache-directory = ${apache-2.2:location}
128 apache-ipv6 = $${instance-parameter:ipv6-random}
129 apache-https-port = $${instance-parameter:configuration.port}
130
131 [jinja2-template-base]
132 recipe = slapos.recipe.template:jinja2
133 rendered = $${buildout:directory}/$${:filename}
134 extra-context =
135 context =
136     import json_module json
137     key eggs_directory buildout:eggs-directory
138     key develop_eggs_directory buildout:develop-eggs-directory
139     key slap_software_type instance-parameter:slap-software-type
140     key slapparameter_dict instance-parameter:configuration
141     section directory directory
142     $${:extra-context}
143
144 [dynamic-template-default-vh]
145 < = jinja2-template-base
146 template = ${template-default-virtualhost:target}
147 rendered = $${apache-directory:slave-configuration}/000.conf
148 extensions = jinja2.ext.do
149 extra-context =
150     key http_port instance-parameter:configuration.plain_http_port
151     key https_port instance-parameter:configuration.port
152
153 [dynamic-custom-personal-template-slave-list]
154 < = jinja2-template-base
155 template = ${template-slave-list:target}
156 filename = custom-personal-instance-slave-list.cfg
157 extensions = jinja2.ext.do
158 extra-context =
159     key apache_configuration_directory apache-directory:slave-configuration
160     key http_port instance-parameter:configuration.plain_http_port
161     key https_port instance-parameter:configuration.port
162     key public_ipv4 instance-parameter:configuration.public-ipv4
163     key slave_instance_list instance-parameter:slave-instance-list
164     key extra_slave_instance_list instance-parameter:configuration.extra_slave_instance_list
165     key rewrite_cached_configuration apache-configuration:cached-rewrite-file
166     key custom_ssl_directory apache-directory:vh-ssl
167     key apache_log_directory apache-directory:slave-log
168     key local_ipv4 instance-parameter:ipv4-random
169     key cache_port apache-configuration:cache-port
170     raw empty_template ${template-empty:target}
171     raw template_custom_slave_configuration ${template-slave-configuration:target}
172     raw template_default_slave_configuration ${template-default-slave-virtualhost:target}
173     raw template_rewrite_cached ${template-rewrite-cached:target}
174     raw software_type single-custom-personal
175     section logrotate_dict logrotate
176     section frontend_configuration frontend-configuration
177     section apache_configuration apache-configuration
178     key monitor_url monitor-parameters:url
179
180 [dynamic-custom-group-template-slave-list]
181 < = jinja2-template-base
182 template = ${template-custom-slave-list:target}
183 filename = custom-group-instance-slave-list.cfg
184 extensions = jinja2.ext.do
185 extra-context =
186     key apache_configuration_directory apache-directory:slave-configuration
187     key domain instance-parameter:configuration.domain
188     key http_port instance-parameter:configuration.plain_http_port
189     key https_port instance-parameter:configuration.port
190     key public_ipv4 instance-parameter:configuration.public-ipv4
191     key slave_instance_list instance-parameter:slave-instance-list
192     key extra_slave_instance_list instance-parameter:configuration.extra_slave_instance_list
193     key rewrite_cached_configuration apache-configuration:cached-rewrite-file
194     key custom_ssl_directory apache-directory:vh-ssl
195     key template_slave_configuration dynamic-virtualhost-template-slave:rendered
196     key apache_log_directory apache-directory:slave-log
197     key local_ipv4 instance-parameter:ipv4-random
198     key cache_port apache-configuration:cache-port
199     raw empty_template ${template-empty:target}
200     raw template_rewrite_cached ${template-rewrite-cached:target}
201     raw software_type single-custom-group
202
203 [dynamic-default-template-slave-list]
204 < = jinja2-template-base
205 template = ${template-custom-slave-list:target}
206 filename = default-instance-slave-list.cfg
207 extensions = jinja2.ext.do
208 extra-context =
209     key apache_configuration_directory apache-directory:slave-configuration
210     key domain instance-parameter:configuration.domain
211     key http_port instance-parameter:configuration.plain_http_port
212     key https_port instance-parameter:configuration.port
213     key public_ipv4 instance-parameter:configuration.public-ipv4
214     key slave_instance_list instance-parameter:slave-instance-list
215     key extra_slave_instance_list instance-parameter:configuration.extra_slave_instance_list
216     key rewrite_cached_configuration apache-configuration:cached-rewrite-file
217     key custom_ssl_directory apache-directory:vh-ssl
218     key apache_log_directory apache-directory:slave-log
219     key local_ipv4 instance-parameter:ipv4-random
220     key cache_port apache-configuration:cache-port
221     raw template_slave_configuration ${template-default-slave-virtualhost:target}
222     raw empty_template ${template-empty:target}
223     raw template_rewrite_cached ${template-rewrite-cached:target}
224     raw software_type single-default
225 # XXXX Hack to allow two software types
226
227 [dynamic-virtualhost-template-slave]
228 <= jinja2-template-base
229 template = ${template-slave-configuration:target}
230 rendered = $${directory:template}/slave-virtualhost.conf.in
231 extensions = jinja2.ext.do
232 extra-context =
233     key https_port instance-parameter:configuration.port
234     key http_port instance-parameter:configuration.plain_http_port
235     key apache_custom_https instance-parameter:configuration.apache_custom_https
236     key apache_custom_http instance-parameter:configuration.apache_custom_http
237
238 # Deploy Apache Frontend (new way, no recipe, jinja power)
239 [dynamic-apache-frontend-template]
240 < = jinja2-template-base
241 template = ${template-apache-frontend-configuration:target}
242 rendered = $${apache-configuration:frontend-configuration}
243 extra-context =
244     raw httpd_home ${apache-2.2:location}
245     key httpd_mod_ssl_cache_directory apache-directory:mod-ssl
246     key domain instance-parameter:configuration.domain
247     key document_root apache-directory:document-root
248     key instance_home buildout:directory
249     key ipv4_addr instance-parameter:ipv4-random
250     key ipv6_addr instance-parameter:ipv6-random
251     key http_port instance-parameter:configuration.plain_http_port
252     key https_port instance-parameter:configuration.port
253     key server_admin instance-parameter:configuration.server-admin
254     key protected_path apache-configuration:protected-path
255     key access_control_string apache-configuration:access-control-string
256     key login_certificate ca-frontend:cert-file
257     key login_key ca-frontend:key-file
258     key ca_dir  certificate-authority:ca-dir
259     key ca_crl certificate-authority:ca-crl
260     key access_log apache-configuration:access-log
261     key error_log apache-configuration:error-log
262     key pid_file apache-configuration:pid-file
263     key slave_configuration_directory apache-directory:slave-configuration
264     section frontend_configuration frontend-configuration
265
266 [apache-frontend]
267 recipe = slapos.cookbook:wrapper
268 command-line = ${apache-2.2:location}/bin/httpd -f $${dynamic-apache-frontend-template:rendered} -DFOREGROUND
269 wrapper-path = $${directory:service}/frontend_apache
270 wait-for-files =
271                $${ca-frontend:cert-file}
272                $${ca-frontend:key-file}
273
274 # Deploy Apache for cached website
275 [dynamic-apache-cached-template]
276 < = jinja2-template-base
277 template = ${template-apache-cached-configuration:target}
278 rendered = $${apache-configuration:cached-configuration}
279 extra-context =
280     raw httpd_home ${apache-2.2:location}
281     key httpd_mod_ssl_cache_directory apache-directory:mod-ssl
282     key domain instance-parameter:configuration.domain
283     key document_root apache-directory:document-root
284     key instance_home buildout:directory
285     key ipv4_addr instance-parameter:ipv4-random
286     key cached_port apache-configuration:cache-through-port
287     key server_admin instance-parameter:configuration.server-admin
288     key protected_path apache-configuration:protected-path
289     key access_control_string apache-configuration:access-control-string
290     key login_certificate ca-frontend:cert-file
291     key login_key ca-frontend:key-file
292     key ca_dir  certificate-authority:ca-dir
293     key ca_crl certificate-authority:ca-crl
294     key access_log apache-configuration:cache-access-log
295     key error_log apache-configuration:cache-error-log
296     key pid_file apache-configuration:cache-pid-file
297     key apachecachedmap_path apache-configuration:cached-rewrite-file
298
299 [apache-cached]
300 recipe = slapos.cookbook:wrapper
301 command-line = ${apache-2.2:location}/bin/httpd -f $${dynamic-apache-cached-template:rendered} -DFOREGROUND
302 wrapper-path = $${directory:service}/frontend_cached_apache
303 wait-for-files =
304                $${ca-frontend:cert-file}
305                $${ca-frontend:key-file}
306
307 [not-found-html]
308 recipe = slapos.cookbook:symbolic.link
309 target-directory = $${apache-directory:document-root}
310 link-binary =
311             ${template-not-found-html:target}
312
313 [apache-directory]
314 recipe = slapos.cookbook:mkdirectory
315 document-root = $${directory:srv}/htdocs
316 slave-configuration = $${directory:etc}/apache-slave-conf.d/
317 cache = $${directory:var}/cache
318 mod-ssl = $${:cache}/httpd_mod_ssl
319 vh-ssl = $${:slave-configuration}/ssl
320 slave-log = $${directory:log}/httpd
321
322 [apache-configuration]
323 frontend-configuration = $${directory:etc}/apache_frontend.conf
324 cached-configuration = $${directory:etc}/apache_frontend_cached.conf
325 access-log = $${directory:log}/frontend-apache-access.log
326 error-log = $${directory:log}/frontend-apache-error.log
327 pid-file = $${directory:run}/httpd.pid
328 protected-path = /
329 access-control-string = none
330 cached-rewrite-file = $${directory:etc}/apache_rewrite_cached.txt
331 frontend-configuration-verification = ${apache-2.2:location}/bin/httpd -Sf $${:frontend-configuration}
332 frontend-graceful-command = $${:frontend-configuration-verification}; if [ $? -eq 0 ]; then kill -USR1 $(cat $${:pid-file}); fi
333 cached-configuration-verification = ${apache-2.2:location}/bin/httpd -Sf $${:cached-configuration}
334 cached-graceful-command = $${:cached-configuration-verification}; if [ $? -eq 0 ]; then kill -USR1 $(cat $${apache-configuration:cache-pid-file}); fi
335
336 # Apache for cache configuration
337 cache-access-log = $${directory:log}/frontend-apache-access-cached.log
338 cache-error-log = $${directory:log}/frontend-apache-error-cached.log
339 cache-pid-file = $${directory:run}/httpd-cached.pid
340
341 # Comunication with ats
342 cache-port = $${trafficserver-variable:input-port}
343 cache-through-port = 26011
344
345 # Create wrapper for "apachectl conftest" in bin
346 [configtest]
347 recipe = slapos.cookbook:wrapper
348 command-line = ${apache-2.2:location}/bin/httpd -f $${directory:etc}/apache_frontend.conf -t
349 wrapper-path = $${directory:bin}/apache-configtest
350
351 [certificate-authority]
352 recipe = slapos.cookbook:certificate_authority
353 openssl-binary = ${openssl:location}/bin/openssl
354 ca-dir = $${directory:ca-dir}
355 requests-directory = $${cadirectory:requests}
356 wrapper = $${directory:service}/certificate_authority
357 ca-private = $${cadirectory:private}
358 ca-certs = $${cadirectory:certs}
359 ca-newcerts = $${cadirectory:newcerts}
360 ca-crl = $${cadirectory:crl}
361
362 [cadirectory]
363 recipe = slapos.cookbook:mkdirectory
364 requests = $${directory:ca-dir}/requests/
365 private = $${directory:ca-dir}/private/
366 certs = $${directory:ca-dir}/certs/
367 newcerts = $${directory:ca-dir}/newcerts/
368 crl = $${directory:ca-dir}/crl/
369
370 [ca-frontend]
371 <= certificate-authority
372 recipe = slapos.cookbook:certificate_authority.request
373 key-file = $${cadirectory:certs}/apache_frontend.key
374 cert-file = $${cadirectory:certs}/apache_frontend.crt
375 executable = $${directory:service}/frontend_apache
376 wrapper = $${directory:service}/frontend_apache
377 key-content = $${instance-parameter:configuration.apache-key}
378 cert-content = $${instance-parameter:configuration.apache-certificate}
379 # Put domain name
380 name = $${instance-parameter:configuration.domain}
381
382 [cron]
383 recipe = slapos.cookbook:cron
384 dcrond-binary = ${dcron:location}/sbin/crond
385 cron-entries = $${directory:cron-entries}
386 crontabs = $${directory:crontabs}
387 cronstamps = $${directory:cronstamps}
388 catcher = $${cron-simplelogger:wrapper}
389 binary = $${directory:service}/crond
390
391 [cron-simplelogger]
392 recipe = slapos.cookbook:simplelogger
393 wrapper = $${directory:bin}/cron_simplelogger
394 log = $${directory:log}/cron.log
395
396 [cron-entry-logrotate]
397 <= cron
398 recipe = slapos.cookbook:cron.d
399 name = logrotate
400 frequency = 0 0 * * *
401 command = $${logrotate:wrapper}
402
403 # Deploy Logrotate
404 [logrotate]
405 recipe = slapos.cookbook:logrotate
406 # Binaries
407 logrotate-binary = ${logrotate:location}/usr/sbin/logrotate
408 gzip-binary = ${gzip:location}/bin/gzip
409 gunzip-binary = ${gzip:location}/bin/gunzip
410 # Directories
411 wrapper = $${directory:bin}/logrotate
412 conf = $${directory:etc}/logrotate.conf
413 logrotate-entries = $${directory:logrotate-entries}
414 backup = $${directory:logrotate-backup}
415 state-file = $${directory:srv}/logrotate.status
416
417 [logrotate-entry-apache]
418 <= logrotate
419 recipe = slapos.cookbook:logrotate.d
420 name = apache
421 log = $${apache-configuration:error-log} $${apache-configuration:access-log}
422 frequency = daily
423 rotatep-num = 30
424 post = $${apache-configuration:frontend-graceful-command}
425 sharedscripts = true
426 notifempty = true
427 create = true
428
429 [logrotate-entry-apache-cached]
430 <= logrotate
431 recipe = slapos.cookbook:logrotate.d
432 name = apache-cached
433 log = $${apache-configuration:cache-error-log} $${apache-configuration:cache-access-log}
434 frequency = daily
435 rotatep-num = 30
436 post = $${apache-configuration:cached-graceful-command}
437 sharedscripts = true
438 notifempty = true
439 create = true
440
441 #################
442 # Trafficserver
443 #################
444 [trafficserver-directory]
445 recipe = slapos.cookbook:mkdirectory
446 configuration = $${directory:etc}/trafficserver
447 local-state = $${directory:var}/trafficserver
448 bin_path = ${trafficserver:location}/bin
449 log = $${directory:log}/trafficserver
450 cache-path = $${directory:srv}/ats_cache
451
452 [trafficserver-variable]
453 wrapper-path = $${directory:service}/trafficserver
454 reload-path = $${directory:etc-run}/trafficserver-reload
455 local-ip = $${instance-parameter:ipv4-random}
456 input-port = 23432
457 hostname = $${slap-parameter:frontend-name}
458 remap = map / http://$${instance-parameter:ipv4-random}:$${apache-configuration:cache-through-port}
459 disk-cache-config = $${trafficserver-directory:cache-path} 8G volume=$${slap-parameter:frontend-name}
460 plugin-config = ${trafficserver:location}/libexec/trafficserver/rfc5861.so
461
462 [trafficserver-configuration-directory]
463 recipe = plone.recipe.command
464 command = cp -rn ${trafficserver:location}/etc/trafficserver/* $${:target}
465 target = $${trafficserver-directory:configuration}
466
467 [trafficserver-launcher]
468 recipe = slapos.cookbook:wrapper
469 command-line = ${trafficserver:location}/bin/traffic_cop
470 wrapper-path = $${trafficserver-variable:wrapper-path}
471 environment = TS_ROOT=$${buildout:directory}
472
473 [trafficserver-reload]
474 recipe = slapos.cookbook:wrapper
475 command-line = ${trafficserver:location}/bin/traffic_line -x
476 wrapper-path = $${trafficserver-variable:reload-path}
477 environment = TS_ROOT=$${buildout:directory}
478
479 [trafficserver-records-config]
480 < = jinja2-template-base
481 template = ${template-trafficserver-records-config:location}/${template-trafficserver-records-config:filename}
482 rendered = $${trafficserver-directory:configuration}/records.config
483 mode = 700
484 context =
485     import os_module os
486     section ats_directory trafficserver-directory
487     section ats_configuration trafficserver-variable
488
489 [trafficserver-remap-config]
490 < = jinja2-template-base
491 template = ${template-empty:target}
492 rendered = $${trafficserver-configuration-directory:target}/remap.config
493 mode = 700
494 context =
495     key content trafficserver-variable:remap
496
497 [trafficserver-plugin-config]
498 < = jinja2-template-base
499 template = ${template-empty:target}
500 rendered = $${trafficserver-configuration-directory:target}/plugin.config
501 mode = 700
502 context =
503     key content trafficserver-variable:plugin-config
504
505 [trafficserver-storage-config]
506 < = jinja2-template-base
507 template = ${template-empty:target}
508 rendered = $${trafficserver-configuration-directory:target}/storage.config
509 mode = 700
510 context =
511     key content trafficserver-variable:disk-cache-config
512
513 [trafficserver-promise-listen-port]
514 recipe = slapos.cookbook:check_port_listening
515 path = $${directory:promise}/trafficserver-port-listening
516 hostname = $${trafficserver-variable:local-ip}
517 port = $${trafficserver-variable:input-port}
518
519 ### End of ATS sections
520
521 ### Apaches Graceful and promises
522 [frontend-apache-graceful]
523 < = jinja2-template-base
524 template = ${template-wrapper:output}
525 rendered = $${directory:etc-run}/frontend-apache-safe-graceful
526 mode = 0700
527 extra-context =
528     key content apache-configuration:frontend-graceful-command
529
530 [cached-apache-graceful]
531 < = jinja2-template-base
532 template = ${template-wrapper:output}
533 rendered = $${directory:etc-run}/cached-apache-safe-graceful
534 mode = 0700
535 extra-context =
536     key content apache-configuration:cached-graceful-command
537
538 # Promises checking configuration:
539 [promise-frontend-apache-configuration]
540 < = jinja2-template-base
541 template = ${template-wrapper:output}
542 rendered = $${directory:promise}/frontend-apache-configuration-promise
543 mode = 0700
544 extra-context =
545     key content apache-configuration:frontend-configuration-verification
546
547 [promise-cached-apache-configuration]
548 < = jinja2-template-base
549 template = ${template-wrapper:output}
550 rendered = $${directory:promise}/cached-apache-configuration-promise
551 mode = 0700
552 extra-context =
553     key content apache-configuration:cached-configuration-verification
554
555 [promise-apache-frontend-v4-https]
556 recipe = slapos.cookbook:check_port_listening
557 path = $${directory:promise}/apache_frontend_ipv4_https
558 hostname = $${instance-parameter:ipv4-random}
559 port = $${instance-parameter:configuration.port}
560
561 [promise-apache-frontend-v4-http]
562 recipe = slapos.cookbook:check_port_listening
563 path = $${directory:promise}/apache_frontend_ipv4_http
564 hostname = $${instance-parameter:ipv4-random}
565 port = $${instance-parameter:configuration.plain_http_port}
566
567 [promise-apache-frontend-v6-https]
568 recipe = slapos.cookbook:check_port_listening
569 path = $${directory:promise}/apache_frontend_ipv6_https
570 hostname = $${instance-parameter:ipv6-random}
571 port = $${instance-parameter:configuration.port}
572
573 [promise-apache-frontend-v6-http]
574 recipe = slapos.cookbook:check_port_listening
575 path = $${directory:promise}/apache_frontend_ipv6_http
576 hostname = $${instance-parameter:ipv6-random}
577 port = $${instance-parameter:configuration.plain_http_port}
578
579 [promise-apache-cached]
580 recipe = slapos.cookbook:check_port_listening
581 path = $${directory:promise}/apache_cached
582 hostname = $${instance-parameter:ipv4-random}
583 port = $${apache-configuration:cache-through-port}
584
585 [slap_connection]
586 # Kept for backward compatiblity
587 computer_id = $${slap-connection:computer-id}
588 partition_id = $${slap-connection:partition-id}
589 server_url = $${slap-connection:server-url}
590 software_release_url = $${slap-connection:software-release-url}
591 key_file = $${slap-connection:key-file}
592 cert_file = $${slap-connection:cert-file}
593
594 [slap-parameter]
595 # Define default parameter(s) that will be used later, in case user didn't
596 # specify it
597 # All parameters are available through the configuration.XX syntax.
598 # All possible parameters should have a default.
599 domain = example.org
600 public-ipv4 =
601 port = 4443
602 plain_http_port = 8080
603 server-admin = admin@example.com
604 apache_custom_https = ""
605 apache_custom_http = ""
606 apache-key =
607 apache-certificate =
608 open-port = 80 443
609 extra_slave_instance_list =
610 frontend-name =
611
612
613 #######
614 # Monitoring sections
615 #
616
617 [monitor-current-log-access]
618 < = monitor-directory-access
619 source = $${directory:log}
620
621 [monitor-backup-log-access]
622 < = monitor-directory-access
623 source = $${directory:logrotate-backup}
624
625 # Produce ATS Cache stats
626 [monitor-ats-cache-stats-wrapper]
627 < = jinja2-template-base
628 template = ${template-wrapper:output}
629 rendered = $${monitor-directory:monitoring-cgi}/ats-cache-stats
630 mode = 0700
631 command = export TS_ROOT=$${buildout:directory} && echo "<pre>$(${trafficserver:location}/bin/traffic_shell $${monitor-ats-cache-stats-config:rendered})</pre>"
632 extra-context =
633   key content monitor-ats-cache-stats-wrapper:command
634
635 [monitor-ats-cache-stats-config]
636 < = jinja2-template-base
637 template = ${template-empty:target}
638 rendered = $${trafficserver-configuration-directory:target}/cache-config.stats
639 mode = 644
640 context =
641     raw content show:cache-stats
642
643 # Display result of apache configuration check
644 [monitor-apache-configuration-verification]
645 < = jinja2-template-base
646 template = ${template-wrapper:output}
647 rendered = $${monitor-directory:monitoring-cgi}/front-httpd-configuration
648 mode = 0700
649 command = echo "<pre>$($${apache-configuration:frontend-configuration-verification})</pre>"
650 extra-context =
651   key content :command
652
653 [monitor-verify-re6st-connectivity]
654 recipe = slapos.cookbook:check_url_available
655 path = $${monitor-directory:monitor-custom-scripts}/re6st-connectivity
656 url = $${public:re6st-verification-url}
657 dash_path = ${dash:location}/bin/dash
658 curl_path = ${curl:location}/bin/curl
659
660 [public]
661 re6st-verification-url = http://[2001:67c:1254:4::1]/index.html