[buildout] parts = publish-mariadb-url mariadb-instance logrotate logrotate-entry-mariadb cron cron-entry-logrotate cron-entry-mariadb-backup eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [publish-mariadb-url] recipe = slapos.cookbook:publishurl url = mysqls://$${mariadb:user}:$${mariadb:password}@$${mariadb:ip}:$${mariadb:port}/$${mariadb:database} [cron-entry-mariadb-backup] <= cron recipe = slapos.cookbook:cron.d name = mariadb-backup frequency = 0 0 * * * command = $${mariadb:innobackupex-controller} [mariadb-instance] recipe = slapos.cookbook:generic.mysql # Options user = user port = 45678 ip = $${slap-network-information:local-ipv4} database = db # Paths wrapper = $${basedirectory:services}/mariadb update-wrapper = $${basedirectory:services}/mariadb_update backup-directory = $${directory:mariadb-backup} data-directory = $${directory:mariadb-data} pid-file = $${basedirectory:run}/mariadb.pid socket = $${basedirectory:run}/mariadb.sock error-log = $${basedirectory:log}/mariadb_error.log slow-query-log = $${basedirectory:log}/mariadb_slowquery.log conf-file = $${rootdirectory:etc}/mariadb.cnf backup-pending-directory = $${directory:mariadb-backup-pending} dumpname = dump.sql.gz # Binary information innobackupex-binary = ${xtrabackup:location}/bin/innobackupex mysql-binary = ${mariadb:location}/bin/mysql mysql-install-binary = ${mariadb:location}/bin/mysql_install_db mysql-upgrade-binary = ${mariadb:location}/bin/mysql_upgrade mysqld-binary = ${mariadb:location}/libexec/mysqld mk-variable-advisor_binary = ${perl:siteprefix}/bin/mk-variable-advisor mk-table-usage_binary = ${perl:siteprefix}/bin/mk-table-usage mk-visual-explain_binary = ${perl:siteprefix}/bin/mk-visual-explain mk-config-diff_binary = ${perl:siteprefix}/bin/mk-config-diff mk-deadlock-logger_binary = ${perl:siteprefix}/bin/mk-deadlock-logger mk-error-log_binary = ${perl:siteprefix}/bin/mk-error-log mk-index-usage_binary = ${perl:siteprefix}/bin/mk-index-usage mk-query-advisor_binary = ${perl:siteprefix}/bin/mk-query-advisor xtrabackup-binary = ${xtrabackup:location}/bin/xtrabackup_51 [logrotate] recipe = slapos.cookbook:logrotate # Binaries logrotate-binary = ${logrotate:location}/usr/sbin/logrotate gzip-binary = $${buildout:gzip-binary} 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 [logrotate-entry-mariadb] <= logrotate recipe = slapos.cookbook:logrotate.d name = mariadb log = $${mariadb:error-log} $${mariadb:slow-query-log} frequency = daily rotate-num = 30 post = $${mariadb:mysql-binary} --no-defaults -B --socket=$${mariadb:socket} -e "FLUSH LOGS" sharedscripts = true notifempty = true create = true [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:binary} binary = $${basedirectory:services}/crond [cron-simplelogger] recipe = slapos.cookbook:simplelogger binary = $${rootdirectory:bin}/cron_simplelogger output = $${directory:cronoutput} [cron-entry-logrotate] <= cron recipe = slapos.cookbook:cron.d name = logrotate frequency = 0 0 * * * command = $${logrotate:wrapper} [cron-entry-mariadb-backup] <= cron recipe = slapos.cookbook:cron.d name = mariadb-backup frequency = 0 0 * * * command = $${mariadb:backup-script} [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc/ var = $${buildout:directory}/var/ srv = $${buildout:directory}/srv/ bin = $${buildout:directory}/bin/ [basedirectory] recipe = slapos.cookbook:mkdirectory log = $${rootdirectory:var}/log/ services = $${rootdirectory:etc}/run/ run = $${rootdirectory:var}/run/ backup = $${rootdirectory:srv}/backup/ [directory] recipe = slapos.cookbook:mkdirectory cron-entries = $${rootdirectory:etc}/cron.d/ crontabs = $${rootdirectory:etc}/crontabs/ cronstamps = $${rootdirectory:etc}/cronstamps/ cronoutput = $${basedirectory:log}/cron/ ca-dir = $${rootdirectory:srv}/ssl/ mariadb-backup = $${basedirectory:backup}/mariadb/ mariadb-backup-pending = $${basedirectory:backup}/mariadb-pending/ mariadb-data = $${rootdirectory:srv}/mariadb/ logrotate-backup = $${basedirectory:backup}/logrotate/ logrotate-entries = $${rootdirectory:etc}/logrotate.d/