[buildout] parts = connection-dict pbs cron cron-entry-logrotate logrotate sshkeys-authority sshkeys-dropbear eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [connection-dict] recipe = slapos.cookbook:publish ssh-key = $${sshkeys-dropbear:public-key-value} notification-url = http://[$${notifier:host}]:$${notifier:port}/notify feeds-url = http://[$${notifier:host}]:$${notifier:port}/get/ [equeue] recipe = slapos.cookbook:equeue socket = $${basedirectory:run}/equeue.sock log = $${basedirectory:log}/equeue.log database = $${rootdirectory:srv}/equeue.db wrapper = $${basedirectory:services}/equeue equeue-binary = ${buildout:bin-directory}/equeue [notifier] recipe = slapos.cookbook:notifier feeds = $${directory:notifier-feeds} callbacks = $${directory:notifier-callbacks} id-file = $${rootdirectory:etc}/notifier.id equeue-socket = $${equeue:socket} host = $${slap-network-information:global-ipv6} port = 8080 wrapper = $${basedirectory:services}/notifier server-binary = ${buildout:bin-directory}/pubsubserver notifier-binary = ${buildout:bin-directory}/pubsubnotifier [dropbear-client] recipe = slapos.cookbook:dropbear.client dbclient-binary = ${dropbear:location}/bin/dbclient wrapper = $${rootdirectory:bin}/ssh home = $${basedirectory:ssh-home} identity-file = $${basedirectory:ssh-home}/id_rsa [sshkeys-directory] recipe = slapos.cookbook:mkdirectory requests = $${directory:sshkeys}/requests/ keys = $${directory:sshkeys}/keys/ [sshkeys-authority] recipe = slapos.cookbook:sshkeys_authority request-directory = $${sshkeys-directory:requests} keys-directory = $${sshkeys-directory:keys} keygen-binary = ${dropbear:location}/bin/dropbearkey wrapper = $${basedirectory:services}/sshkeys_authority [sshkeys-dropbear] <= sshkeys-authority recipe = slapos.cookbook:sshkeys_authority.request name = pbs type = rsa executable = $${dropbear-client:wrapper} public-key = $${dropbear-client:identity-file}.pub private-key = $${dropbear-client:identity-file} wrapper = $${rootdirectory:bin}/do_backup [pbs] <= notifier recipe = slapos.cookbook:pbs client = true rdiffbackup-binary = ${buildout:bin-directory}/rdiff-backup sshclient-binary = $${dropbear-client:wrapper} known-hosts = $${directory:dot-ssh}/known_hosts promises-directory = $${basedirectory:promises} directory = $${directory:pbs-backup} cron-entries = $${cron:cron-entries} wrappers-directory = $${directory:pbs-wrappers} notifier-url = http://[$${notifier:host}]:$${notifier:port}/ slave-instance-list = $${slap-parameter:slave_instance_list} [cron-simplelogger] recipe = slapos.cookbook:simplelogger wrapper = $${rootdirectory:bin}/cron_simplelogger log = $${basedirectory:log}/crond.log [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-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}/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-equeue] <= logrotate recipe = slapos.cookbook:logrotate.d name = equeue log = $${equeue:log} frequency = daily rotate-num = 30 [logrotate-entry-equeue] <= logrotate recipe = slapos.cookbook:logrotate.d name = cron log = $${cron-simplelogger:log} frequency = daily rotate-num = 30 [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc/ var = $${buildout:directory}/var/ srv = $${buildout:directory}/srv/ bin = $${buildout:directory}/bin/ tmp = $${buildout:directory}/tmp/ [basedirectory] recipe = slapos.cookbook:mkdirectory log = $${rootdirectory:var}/log/ services = $${rootdirectory:etc}/run/ run = $${rootdirectory:var}/run/ backup = $${rootdirectory:srv}/backup/ promises = $${rootdirectory:etc}/promise/ [directory] recipe = slapos.cookbook:mkdirectory cronstamps = $${rootdirectory:etc}/cronstamps/ cron-entries = $${rootdirectory:etc}/cron.d/ crontabs = $${rootdirectory:etc}/crontabs/ cronoutput = $${basedirectory:log}/cron-ouput/ pbs-backup = $${basedirectory:backup}/pbs/ logrotate-entries = $${rootdirectory:etc}/logrotate.d/ logrotate-backup = $${basedirectory:backup}/logrotate/ sshkeys = $${rootdirectory:srv}/sshkeys pbs-wrappers = $${rootdirectory:bin}/pbs/ dot-ssh = $${basedirectory:ssh-home}/.ssh/ notifier-feeds = $${basedirectory:notifier}/feeds/ notifier-callbacks = $${basedirectory:notifier}/callbacks/ [basedirectory] ssh-home = $${rootdirectory:home}/ssh notifier = $${rootdirectory:etc}/notifier/ [rootdirectory] home = $${buildout:directory}/home/