Commit 6a2e7859 by Guillaume Hervier Committed by Thomas Gambier

logrotate: Use xz instead of gzip for log file compression

- Use `xz-utils` component for log file compression
- Fix some stacks and software releases to use the logrotate stack instead of re-creating it:
  - `software/caddy-frontend`
  - `stack/resilient`

/reviewed-on !508
2 parents ad4c0241 8d3ba8b8
Showing 42 changed files with 103 additions and 286 deletions
......@@ -22,7 +22,7 @@ md5sum = c801b7f9f11f0965677c22e6bbe9281b
[template-apache-frontend]
filename = instance-apache-frontend.cfg.in
md5sum = e5fa926695de04c5bff54cd8128227a3
md5sum = abbbc8f24cdef389b9b2859b0ef8dd0e
[template-apache-replicate]
filename = instance-apache-replicate.cfg.in
......@@ -30,7 +30,7 @@ md5sum = 81ad603fe0a1e29948bd81b457e8d7a4
[template-slave-list]
filename = templates/apache-custom-slave-list.cfg.in
md5sum = 8bed2dcba7904a765c29cf8349b7d5cc
md5sum = dfbe4378610aa42f2cbc2a55d386324e
[template-slave-configuration]
filename = templates/custom-virtualhost.conf.in
......@@ -122,4 +122,4 @@ md5sum = 38792c2dceae38ab411592ec36fff6a8
[template-kedifa]
filename = instance-kedifa.cfg.in
md5sum = 66de9edcd66447271424be3d92c2cb90
md5sum = 5597b2184b445af69ad6d517d0729ad6
......@@ -5,7 +5,6 @@ extends =
../../component/dash/buildout.cfg
../../component/caddy/buildout.cfg
../../component/gzip/buildout.cfg
../../component/dcron/buildout.cfg
../../component/logrotate/buildout.cfg
../../component/rdiff-backup/buildout.cfg
../../component/trafficserver/buildout.cfg
......@@ -22,7 +21,6 @@ parts +=
template-caddy-replicate
caddy
dcron
logrotate
rdiff-backup
npm-modules
......@@ -97,6 +95,7 @@ context =
[template-frontend-parameter-section]
common_profile = ${template-common:rendered}
logrotate_base_instance = ${template-logrotate-base:rendered}
bin_directory = ${buildout:bin-directory}
......@@ -105,7 +104,6 @@ caddy = ${caddy:output}
caddy_location = ${caddy:location}
curl = ${curl:location}
dash = ${dash:location}
dcron = ${dcron:location}
gzip = ${gzip:location}
logrotate = ${logrotate:location}
openssl = ${openssl:location}/bin/openssl
......
......@@ -5,13 +5,11 @@
extends =
{{ parameter_dict['common_profile'] }}
{{ parameter_dict['monitor_template'] }}
{{ parameter_dict['logrotate_base_instance'] }}
parts =
directory
configtest
logrotate
cron
cron-entry-logrotate
logrotate-entry-caddy
logrotate-entry-nginx
caddy-frontend
......@@ -78,12 +76,6 @@ etc-run = ${:etc}/run
promise = ${:etc}/promise
plugin = ${:etc}/plugin
logrotate-backup = ${:backup}/logrotate
logrotate-entries = ${:etc}/logrotate.d
cron-entries = ${:etc}/cron.d
crontabs = ${:etc}/crontabs
cronstamps = ${:etc}/cronstamps
ca-dir = ${:srv}/ssl
# BBB: SlapOS Master non-zero knowledge BEGIN
bbb-ssl-dir = ${:srv}/bbb-ssl
......@@ -148,6 +140,7 @@ context =
import json_module json
import os_module os
raw common_profile {{ parameter_dict['common_profile'] }}
raw logrotate_base_instance {{ parameter_dict['logrotate_base_instance'] }}
key slap_software_type :slap_software_type
key slapparameter_dict :slapparameter_dict
section directory directory
......@@ -266,7 +259,6 @@ extra-context =
key template_notebook_slave_configuration software-release-path:template-nginx-notebook-slave-virtualhost
key software_type :software_type
key frontend_lazy_graceful_reload frontend-caddy-lazy-graceful:rendered
section logrotate_dict logrotate
section frontend_configuration frontend-configuration
section caddy_configuration caddy-configuration
section nginx_configuration nginx-configuration
......@@ -418,64 +410,19 @@ extra-context =
key content :content
# BBB: SlapOS Master non-zero knowledge END
[cron]
recipe = slapos.cookbook:cron
dcrond-binary = {{ parameter_dict['dcron'] }}/sbin/crond
cron-entries = ${directory:cron-entries}
crontabs = ${directory:crontabs}
cronstamps = ${directory:cronstamps}
catcher = ${cron-simplelogger:wrapper}
binary = ${directory:service}/crond
[cron-simplelogger]
recipe = slapos.cookbook:simplelogger
wrapper = ${directory:bin}/cron_simplelogger
log = ${directory:log}/cron.log
[cron-entry-logrotate]
<= cron
recipe = slapos.cookbook:cron.d
name = logrotate
frequency = 0 0 * * *
command = ${logrotate:wrapper}
# Deploy Logrotate
[logrotate]
recipe = slapos.cookbook:logrotate
# Binaries
logrotate-binary = {{ parameter_dict['logrotate'] }}/sbin/logrotate
gzip-binary = {{ parameter_dict['gzip'] }}/bin/gzip
gunzip-binary = {{ parameter_dict['gzip'] }}/bin/gunzip
# Directories
wrapper = ${directory:bin}/logrotate
conf = ${directory:etc}/logrotate.conf
logrotate-entries = ${directory:logrotate-entries}
backup = ${directory:logrotate-backup}
state-file = ${directory:srv}/logrotate.status
[logrotate-entry-caddy]
<= logrotate
recipe = slapos.cookbook:logrotate.d
<= logrotate-entry-base
name = caddy
log = ${caddy-configuration:error-log} ${caddy-configuration:access-log}
frequency = daily
rotatep-num = 30
rotate-num = 30
post = ${frontend-caddy-lazy-graceful:rendered} &
sharedscripts = true
notifempty = true
create = true
[logrotate-entry-nginx]
<= logrotate
recipe = slapos.cookbook:logrotate.d
<= logrotate-entry-base
name = caddy-nginx
log = ${nginx-configuration:error_log} ${nginx-configuration:access_log}
frequency = daily
rotatep-num = 30
rotate-num = 30
post = ${nginx-configuration:nginx-graceful-command}
sharedscripts = true
notifempty = true
create = true
#################
# Trafficserver
......@@ -740,7 +687,7 @@ monitor-httpd-port = {{ monitor_httpd_port | int }}
[monitor-conf-parameters]
private-path-list +=
${directory:logrotate-backup}
${logrotate-directory:logrotate-backup}
[monitor-traffic-summary-last-stats-wrapper]
......
......@@ -51,13 +51,6 @@ service = ${:etc}/service
etc-run = ${:etc}/run
promise = ${:etc}/promise
logrotate-backup = ${:backup}/logrotate
logrotate-entries = ${:etc}/logrotate.d
cron-entries = ${:etc}/cron.d
crontabs = ${:etc}/crontabs
cronstamps = ${:etc}/cronstamps
# KeDiFa directories
kedifa = ${:srv}/kedifa
etc-kedifa = ${:etc}/kedifa
......
......@@ -24,12 +24,6 @@ context =
raw common_profile {{ common_profile }}
${:extra-context}
{% do logrotate_dict.pop('recipe') %}
[logrotate]
{% for key, value in logrotate_dict.iteritems() %}
{{ key }} = {{ value }}
{% endfor %}
post = {{ frontend_lazy_graceful_reload }} &
frequency = daily
rotatep-num = 30
......@@ -82,7 +76,7 @@ output = {{ plugin_directory }}/${:name}
{% do part_list.extend([slave_ln_section]) %}
{% do part_list.extend([slave_logrotate_section, slave_section_title]) %}
{% set slave_log_folder = logrotate_dict.get('backup') + '/' + slave_reference + "-logs" %}
{% set slave_log_folder = '${logrotate-directory:logrotate-backup}/' + slave_reference + "-logs" %}
{# Pass HTTP2 switch #}
{% do slave_instance.__setitem__('enable_http2_by_default', enable_http2_by_default) %}
......@@ -161,8 +155,7 @@ extra-context =
{# Set slave logrotate entry #}
[{{slave_logrotate_section}}]
<= logrotate
recipe = slapos.cookbook:logrotate.d
<= logrotate-entry-base
name = ${:_buildout_section_name_}
log = {{slave_parameter_dict.get('access_log')}} {{slave_parameter_dict.get('error_log')}}
backup = {{ slave_log_folder }}
......@@ -501,7 +494,10 @@ csr_id-url = https://[${expose-csr_id-configuration:ip}]:${expose-csr_id-configu
csr_id-certificate = ${get-csr_id-certificate:certificate}
[buildout]
extends = {{ common_profile }}
extends =
{{ common_profile }}
{{ logrotate_base_instance }}
parts +=
{% for part in part_list %}
{{ ' %s' % part }}
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch EXITED
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch STOPPED
T-2:6tunnel-26012-{hash}-on-watch STOPPED
T-2:bootstrap-monitor STOPPED
T-2:certificate_authority-{hash}-on-watch STOPPED
T-2:crond-{hash} STOPPED
T-2:crond-on-watch STOPPED
T-2:crond-{hash}-on-watch STOPPED
T-2:expose-csr_id-{hash}-on-watch STOPPED
T-2:frontend-caddy-safe-graceful STOPPED
T-2:frontend-nginx-safe-graceful STOPPED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......@@ -36,8 +35,7 @@ T-3:6tunnel-26011-{hash}-on-watch STOPPED
T-3:6tunnel-26012-{hash}-on-watch STOPPED
T-3:bootstrap-monitor STOPPED
T-3:certificate_authority-{hash}-on-watch STOPPED
T-3:crond-{hash} STOPPED
T-3:crond-on-watch STOPPED
T-3:crond-{hash}-on-watch STOPPED
T-3:expose-csr_id-{hash}-on-watch STOPPED
T-3:frontend-caddy-safe-graceful STOPPED
T-3:frontend-nginx-safe-graceful STOPPED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
T-0:bootstrap-monitor EXITED
T-0:certificate_authority-{hash}-on-watch RUNNING
T-0:crond-{hash} RUNNING
T-0:crond-{hash}-on-watch RUNNING
T-0:monitor-httpd-{hash}-on-watch RUNNING
T-0:monitor-httpd-graceful EXITED
T-1:caucase-updater-on-watch RUNNING
......@@ -16,8 +16,7 @@ T-2:6tunnel-26011-{hash}-on-watch RUNNING
T-2:6tunnel-26012-{hash}-on-watch RUNNING
T-2:bootstrap-monitor EXITED
T-2:certificate_authority-{hash}-on-watch RUNNING
T-2:crond-{hash} RUNNING
T-2:crond-on-watch RUNNING
T-2:crond-{hash}-on-watch RUNNING
T-2:expose-csr_id-{hash}-on-watch RUNNING
T-2:frontend-caddy-safe-graceful EXITED
T-2:frontend-nginx-safe-graceful EXITED
......
......@@ -51,7 +51,7 @@ md5sum = f634a5249b773658b7a7bc9fa9bb0368
[template-frontend]
filename = instance-frontend.cfg.in
md5sum = cdb690495e9eb007d2b7d2f8e12f5c59
md5sum = 57a4be74e5afb00e378bc726cd7771f8
[template-ansible-promise]
filename = template/ansible-promise.in
......
......@@ -5,10 +5,6 @@
#############################
[buildout]
parts =
logrotate
# logrotate-entry-frontend
cron
cron-entry-logrotate
ca-frontend
certificate-authority
frontend-promise-ipv6
......@@ -37,12 +33,7 @@ backup = $${rootdirectory:srv}/backup
[directory]
recipe = slapos.cookbook:mkdirectory
cron-entries = $${rootdirectory:etc}/cron.d
crontabs = $${rootdirectory:etc}/crontabs
cronstamps = $${rootdirectory:etc}/cronstamps
ca-dir = $${rootdirectory:srv}/ssl
logrotate-backup = $${basedirectory:backup}/logrotate
logrotate-entries = $${rootdirectory:etc}/logrotate.d
[frontend-instance]
recipe = slapos.cookbook:kvm.frontend
......@@ -103,49 +94,8 @@ wrapper = $${basedirectory:services}/nodejs
# Put domain name
name = $${slap-parameter:domain}
[cron]
recipe = slapos.cookbook:cron
dcrond-binary = ${dcron:location}/sbin/crond
cron-entries = $${directory:cron-entries}
crontabs = $${directory:crontabs}
cronstamps = $${directory:cronstamps}
catcher = $${cron-simplelogger:wrapper}
binary = $${basedirectory:services}/crond
[cron-simplelogger]
recipe = slapos.cookbook:simplelogger
wrapper = $${rootdirectory:bin}/cron_simplelogger
log = $${basedirectory:log}/cron.log
[cron-entry-logrotate]
<= cron
recipe = slapos.cookbook:cron.d
name = logrotate
frequency = 0 0 * * *
command = $${logrotate:wrapper}
[logrotate]
recipe = slapos.cookbook:logrotate
# Binaries
logrotate-binary = ${logrotate:location}/usr/sbin/logrotate
gzip-binary = ${gzip:location}/bin/gzip
gunzip-binary = ${gzip:location}/bin/gunzip
# Directories
wrapper = $${rootdirectory:bin}/logrotate
conf = $${rootdirectory:etc}/logrotate.conf
logrotate-entries = $${directory:logrotate-entries}
backup = $${directory:logrotate-backup}
state-file = $${rootdirectory:srv}/logrotate.status
[slap-parameter]
# Default value if no port is specified
port = 4443
http-redirection = 0
slave_instance_list =
# [logrotate-entry-frontend]
# <= logrotate
# recipe = slapos.cookbook:logrotate.d
# name = frontend
# log = $${mariadb-instance:error-log} $${mariadb-instance:slow-query-log}
# post = $${mariadb-instance:mysql-binary} --no-defaults -B --socket=$${mariadb-instance:socket} -e "FLUSH LOGS"
......@@ -9,6 +9,7 @@ extends =
../../component/openssl/buildout.cfg
../../component/netcat/buildout.cfg
../../component/pycurl/buildout.cfg
../../component/gzip/buildout.cfg
../../stack/slapos.cfg
../../component/nodejs/buildout.cfg
../../stack/resilient/buildout.cfg
......
......@@ -72,7 +72,7 @@ class ServicesTestCase(InstanceTestCase):
]
expected_process_names = [
'monitor-httpd-{hash}-on-watch',
'crond-{hash}',
'crond-{hash}-on-watch',
]
supervisor = self.getSupervisorRPCServer().supervisor
......
......@@ -14,11 +14,11 @@
# not need these here).
[template]
filename = instance.cfg
md5sum = f0cab61c7b8478afb8b676fc725d50d5
md5sum = c44a7481bb85e3258128afe3fcf23f44
[template-runner]
filename = instance-runner.cfg
md5sum = 7c48c89f33ad243f0dffb3eeef8c56e8
md5sum = 8882bc63d615d8a2cd6de3d32b1013e0
[template-runner-import-script]
filename = template/runner-import.sh.jinja2
......@@ -26,11 +26,11 @@ md5sum = ed6dc50713c14e2527b9958d98674eed
[instance-runner-import]
filename = instance-runner-import.cfg.in
md5sum = 1ed9526a6e5ac9a80e5b3add2d0a88fe
md5sum = 238466e8045096c09534e1d01b1befd6
[instance-runner-export]
filename = instance-runner-export.cfg.in
md5sum = 4b19026c50af55c8b7387aeaf624b47c
md5sum = b992bb3391de9d6d422bfa8011d8ffc4
[template-resilient]
filename = instance-resilient.cfg.jinja2
......
......@@ -76,6 +76,10 @@ instance-configuration =
httpdcors cors-domain ${slaprunner-httpd-cors:location} ${httpd-graceful-wrapper:output}
configuration-file-path = ${buildout:directory}/knowledge0.cfg
[monitor-conf-parameters]
private-path-list +=
$${logrotate-directory:logrotate-backup}
# Extends publish section with resilient parameters
[publish-connection-information]
<= resilient-publish-connection-parameter
......
......@@ -189,11 +189,11 @@ configuration-file-path = ${buildout:directory}/knowledge0.cfg
[monitor-conf-parameters]
private-path-list +=
${directory:logrotate-backup}
$${logrotate-directory:logrotate-backup}
[post-notification-run]
recipe = slapos.cookbook:wrapper
command-line = {{ software_release_bin }}/runner-importer-post-notification-run --diff-file ${:diff-file} --proof-signature-file ${:proof-signature-file} --srv-path ${directory:srv} --backup-path ${directory:backup}
wrapper-path = ${rootdirectory:bin}/post-notification-run
output = ${:wrapper-path}
mode = 0700
\ No newline at end of file
mode = 0700
......@@ -51,7 +51,9 @@ common-runner-parts =
template-slapuser-script
parts = $${:common-runner-parts}
extends = ${monitor2-template:rendered}
extends =
${monitor2-template:rendered}
${template-logrotate-base:rendered}
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
......@@ -882,6 +884,10 @@ instance-configuration =
httpdcors cors-domain $${slaprunner-httpd-cors:location} $${httpd-graceful-wrapper:output}
configuration-file-path = $${buildout:directory}/knowledge0.cfg
[monitor-conf-parameters]
private-path-list +=
$${logrotate-directory:logrotate-backup}
[monitor-check-webrunner-internal-instance]
recipe = slapos.recipe.template:jinja2
template = ${monitor-check-webrunner-internal-instance:location}/${monitor-check-webrunner-internal-instance:filename}
......
......@@ -5,7 +5,8 @@ parts =
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
extends = ${template-resilient-templates:output}
extends =
${template-resilient-templates:output}
[switch_softwaretype]
recipe = slapos.cookbook:softwaretype
......
......@@ -24,6 +24,7 @@ extends =
../../stack/slapos.cfg
../../stack/flask.cfg
../../stack/resilient/buildout.cfg
../../stack/logrotate/buildout.cfg
../../stack/monitor/buildout.cfg
# stacks are listed from most generic to most specific,
......
......@@ -2,7 +2,7 @@
extends =
buildout.hash.cfg
../../component/dcron/buildout.cfg
../../component/gzip/buildout.cfg
../../component/xz-utils/buildout.cfg
../../component/logrotate/buildout.cfg
parts =
template-logrotate-base
......@@ -25,7 +25,7 @@ template = ${:_profile_base_location_}/${:filename}
rendered = ${buildout:directory}/instance-logrotate-base.cfg
context =
key dcron_location dcron:location
key gzip_location gzip:location
key xz_location xz-utils:location
key logrotate_location logrotate:location
key logrotate_conf_template logrotate-conf-template:target
key logrotate_entry_template logrotate-entry-template:target
......@@ -14,7 +14,7 @@
# not need these here).
[logrotate-conf-template]
filename = logrotate.conf.in
md5sum = 67954c82a8030e5dcac3a8c5d115f624
md5sum = 2fc0ea335969ffab7d8c4f98e3d04ae7
[logrotate-entry-template]
filename = logrotate_entry.in
......@@ -22,4 +22,4 @@ md5sum = 117e46af6d9d31c09eeb86089d11407e
[template-logrotate-base]
filename = instance-logrotate-base.cfg.in
md5sum = f56b86a0742afff931a5e972114566e4
md5sum = 338be3ee006c08b26abcc023f398247e
......@@ -28,8 +28,8 @@ wrapper = ${logrotate-directory:bin}/cron_simplelogger
log = ${logrotate-directory:log}/cron.log
[logrotate-conf-parameter]
gzip-binary = {{ gzip_location }}/bin/gzip
gunzip-binary = {{ gzip_location }}/bin/gunzip
compress-binary = {{ xz_location }}/bin/xz
uncompress-binary = {{ xz_location }}/bin/unxz
logrotate-entries = ${logrotate-directory:logrotate-entries}
[logrotate-conf]
......@@ -46,11 +46,12 @@ context =
# User may override keys:
# - "post" with commands to execute after rotation
# - "pre" with commands to execute before rotation
# - "backup" with directory where to store logs
recipe = slapos.recipe.template:jinja2
template = {{ logrotate_entry_template }}
rendered = ${logrotate-conf-parameter:logrotate-entries}/${:name}
context =
key backup logrotate-directory:logrotate-backup
key backup :backup
key log :log
key post :post
key pre :pre
......@@ -61,6 +62,7 @@ post =
pre =
frequency = daily
rotate-num = 3650
backup = ${logrotate-directory:logrotate-backup}
nocompress =
[logrotate]
......@@ -91,5 +93,5 @@ bin = ${buildout:directory}/bin
srv = ${buildout:directory}/srv
backup = ${:srv}/backup
etc = ${buildout:directory}/etc
services = ${:etc}/run
services = ${:etc}/service
log = ${buildout:directory}/var/log
compresscmd {{ parameter_dict['gzip-binary'] }}
compresscmd {{ parameter_dict['compress-binary'] }}
compressoptions -9
uncompresscmd {{ parameter_dict['gunzip-binary'] }}
uncompresscmd {{ parameter_dict['uncompress-binary'] }}
include {{ parameter_dict['logrotate-entries'] }}
......@@ -93,7 +93,6 @@ template = ${:_profile_base_location_}/instance-monitor.cfg.jinja2.in
rendered = ${buildout:directory}/template-monitor.cfg
context =
key apache_location apache:location
key gzip_location gzip:location
key template_logrotate_base template-logrotate-base:rendered
raw monitor_bin ${buildout:directory}/bin/monitor.bootstrap
raw monitor_collect ${buildout:directory}/bin/monitor.collect
......
......@@ -14,7 +14,7 @@
# not need these here).
[pbsready]
filename = pbsready.cfg.in
md5sum = 367f8b8a09c3098844739f9b2856b912
md5sum = 516482f89d7a3ebe4458a404eb4a575b
[pbsready-import]
filename = pbsready-import.cfg.in
......@@ -26,7 +26,7 @@ md5sum = c6c11db5372150019debb1ce519b907d
[template-pull-backup]
filename = instance-pull-backup.cfg.in
md5sum = 4cff5dc82428256929ecbf21cd918c00
md5sum = 57b9b421d233402e6d5177c69cf9567e