[buildout] parts = publish-mariadb-url mariadb-instance logrotate logrotate-entry-mariadb cron cron-entry-logrotate cron-entry-mariadb-backup binary-link promise eggs-directory = {{ eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }} offline = true [publish-mariadb-url] recipe = slapos.cookbook:publishurl url = mysql://${mariadb-instance:user}:${mariadb-instance:password}@${mariadb-instance:ip}:${mariadb-instance:port}/${mariadb-instance:database} [cron-entry-mariadb-backup] <= cron recipe = slapos.cookbook:cron.d name = mariadb-backup frequency = 0 0 * * * command = ${mariadb-instance:backup-script} [mariadb-instance] recipe = slapos.cookbook:generic.mysql # Options user = user parallel-test-database-amount = ${slap-parameter:test-database-amount} port = 45678 ip = ${slap-network-information:local-ipv4} database = erp5 test-user = erp5_test test-database = erp5_test mysql-test-database-base = testdb mysql-test-user-base = testuser # Paths wrapper = ${basedirectory:services}/mariadb update-wrapper = ${basedirectory:services}/mariadb_update backup-script = ${rootdirectory:bin}/innobackupex-controller full-backup-directory = ${directory:mariadb-backup-full} incremental-backup-directory = ${directory:mariadb-backup-incremental} 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 bin-directory = ${rootdirectory:bin} innobackupex-incremental = ${rootdirectory:bin}/innobackupex-incremental innobackupex-full = ${rootdirectory:bin}/innobackupex-full # Binary information innobackupex-binary = {{ xtrabackup_location }}/bin/innobackupex mysql-base-directory = {{ mariadb_location }} mysql-binary = {{ mariadb_location }}/bin/mysql mysql-install-binary = {{ mariadb_location }}/scripts/mysql_install_db mysql-upgrade-binary = {{ mariadb_location }}/bin/mysql_upgrade mysqld-binary = {{ mariadb_location }}/bin/mysqld pt-archiver-binary = {{ perl_siteprefix }}/bin/pt-archiver pt-config-diff-binary = {{ perl_siteprefix }}/bin/pt-config-diff pt-deadlock-logger-binary = {{ perl_siteprefix }}/bin/pt-deadlock-logger pt-duplicate-key-checker-binary = {{ perl_siteprefix }}/bin/pt-duplicate-key-checker pt-fifo-split-binary = {{ perl_siteprefix }}/bin/pt-fifo-split pt-find-binary = {{ perl_siteprefix }}/bin/pt-find pt-fk-error-logger-binary = {{ perl_siteprefix }}/bin/pt-fk-error-logger pt-heartbeat-binary = {{ perl_siteprefix }}/bin/pt-heartbeat pt-index-usage-binary = {{ perl_siteprefix }}/bin/pt-index-usage pt-kill-binary = {{ perl_siteprefix }}/bin/pt-kill pt-log-player-binary = {{ perl_siteprefix }}/bin/pt-log-player pt-online-schema-change-binary = {{ perl_siteprefix }}/bin/pt-online-schema-change pt-query-advisor-binary = {{ perl_siteprefix }}/bin/pt-query-advisor pt-query-digest-binary = {{ perl_siteprefix }}/bin/pt-query-digest pt-show-grants-binary = {{ perl_siteprefix }}/bin/pt-show-grants pt-slave-delay-binary = {{ perl_siteprefix }}/bin/pt-slave-delay pt-slave-find-binary = {{ perl_siteprefix }}/bin/pt-slave-find pt-slave-restart-binary = {{ perl_siteprefix }}/bin/pt-slave-restart pt-table-checksum-binary = {{ perl_siteprefix }}/bin/pt-table-checksum pt-table-sync-binary = {{ perl_siteprefix }}/bin/pt-table-sync pt-tcp-model-binary = {{ perl_siteprefix }}/bin/pt-tcp-model pt-trend-binary = {{ perl_siteprefix }}/bin/pt-trend pt-upgrade-binary = {{ perl_siteprefix }}/bin/pt-upgrade pt-variable-advisor-binary = {{ perl_siteprefix }}/bin/pt-variable-advisor pt-visual-explain-binary = {{ perl_siteprefix }}/bin/pt-visual-explain xtrabackup-binary = {{ xtrabackup_location }}/bin/xtrabackup_51 perl-binary = {{ perl_location }}/bin/perl [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 [logrotate-entry-mariadb] <= logrotate recipe = slapos.cookbook:logrotate.d name = mariadb 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" [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} [binary-link] recipe = slapos.cookbook:symbolic.link target-directory = ${rootdirectory:bin} link-binary = {{ coreutils_location }}/bin/basename {{ coreutils_location }}/bin/cat {{ coreutils_location }}/bin/cp {{ coreutils_location }}/bin/ls {{ coreutils_location }}/bin/tr {{ coreutils_location }}/bin/uname {{ gettext_location }}/lib/gettext/hostname {{ grep_location }}/bin/grep {{ sed_location }}/bin/sed {{ mariadb_location }}/bin/mysql [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 promise = ${rootdirectory:etc}/promise 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 ca-dir = ${rootdirectory:srv}/ssl mariadb-backup-full = ${basedirectory:backup}/mariadb-full mariadb-backup-incremental = ${basedirectory:backup}/mariadb-incremental mariadb-data = ${rootdirectory:srv}/mariadb logrotate-backup = ${basedirectory:backup}/logrotate logrotate-entries = ${rootdirectory:etc}/logrotate.d [promise] recipe = slapos.cookbook:check_port_listening path = ${basedirectory:promise}/mariadb hostname = ${mariadb-instance:ip} port = ${mariadb-instance:port} [slap-parameter] test-database-amount = 100