[buildout] extends = ${template-apache-php:output} parts = request-mariadb request-mariadb-pseudo-replicating request-apache-backup request-pull-backup-server request-pull-backup-server-mariadb request-pull-backup-server-mariadb-backup request-pull-backup-server-apache request-pull-backup-server-apache-backup url apache-php stunnel certificate-authority ca-stunnel logrotate logrotate-entry-apache logrotate-entry-stunnel cron cron-entry-logrotate dropbear-server sshkeys-authority dropbear-server-pbs-authorized-key [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} wrapper = $${basedirectory:services}/sshkeys_authority keygen-binary = ${dropbear:location}/bin/dropbearkey [sshkeys-dropbear] <= sshkeys-authority recipe = slapos.cookbook:sshkeys_authority.request name = dropbear type = rsa executable = $${dropbear-server:wrapper} public-key = $${dropbear-server:rsa-keyfile}.pub private-key = $${dropbear-server:rsa-keyfile} wrapper = $${basedirectory:services}/sshd [dropbear-server] recipe = slapos.cookbook:dropbear host = $${slap-network-information:global-ipv6} port = 2222 home = $${directory:ssh} wrapper = $${rootdirectory:bin}/raw_sshd shell = $${rdiff-backup-server:wrapper} rsa-keyfile = $${directory:ssh}/server_key.rsa dropbear-binary = ${dropbear:location}/sbin/dropbear [dropbear-server-pbs-authorized-key] <= dropbear-server recipe = slapos.cookbook:dropbear.add_authorized_key key = $${request-pull-backup-server:connection-ssh-key} [rdiff-backup-server] recipe = slapos.cookbook:pbs client = false path = $${directory:htdocs} wrapper = $${rootdirectory:bin}/rdiffbackup-server rdiffbackup-binary = ${buildout:bin-directory}/rdiff-backup [request-pull-backup-server] <= slap-connection recipe = slapos.cookbook:request name = PBS (Pull Backup Server) software-url = $${slap-connection:software-release-url} software-type = pull-backup return = ssh-key notification-url feeds-url slave = false [request-mariadb] software-type = mariadb-pbsready-export config = authorized-key notify config-authorized-key = $${request-pull-backup-server:connection-ssh-key} config-notify = $${request-pull-backup-server:connection-notification-url} return = url ssh-public-key ssh-url notification-id [request-mariadb-pseudo-replicating] <= slap-connection recipe = slapos.cookbook:request name = MariaDB Backup software-url = $${slap-connection:software-release-url} software-type = mariadb-pbsready-import return = url ssh-public-key ssh-url notification-url config = authorized-key on-notification config-authorized-key = $${request-pull-backup-server:connection-ssh-key} pbs-notification-id = $${slap-connection:computer-id}-$${slap-connection:partition-id}-mariadb-push config-on-notification = $${request-pull-backup-server:connection-feeds-url}$${:pbs-notification-id} [request-apache-backup] <= slap-connection recipe = slapos.cookbook:request name = Apache Backup software-url = $${slap-connection:software-release-url} software-type = apache-backup return = url ssh-url ssh-public-key config = authorized-key proxy-url config-authorized-key = $${request-pull-backup-server:connection-ssh-key} config-proxy-url = $${url:url} [request-pull-backup-server-apache] <= request-pull-backup-server slap-connection recipe = slapos.cookbook:request name = PBS pulling from Apache software-url = $${slap-connection:software-release-url} config = url name type server-key notify notification-id frequency config-url = ssh://nobody@[$${dropbear-server:host}]:$${dropbear-server:port}/$${rdiff-backup-server:path} config-name = $${slap-connection:computer-id}-$${slap-connection:partition-id}-apache config-type = pull config-server-key = $${sshkeys-dropbear:public-key-value} config-notify = $${request-pull-backup-server:connection-notification-url} config-notification-id = $${slap-connection:computer-id}-$${slap-connection:partition-id}-apache-pull config-frequency = 30 * * * * slave = true [request-pull-backup-server-apache-backup] <= request-pull-backup-server slap-connection recipe = slapos.cookbook:request name = PBS pushing to $${request-apache-backup:name} software-url = $${slap-connection:software-release-url} config = url name type server-key on-notification config-url = $${request-apache-backup:connection-ssh-url} config-name = $${request-pull-backup-server-apache:config-name} config-type = push config-server-key = $${request-apache-backup:connection-ssh-public-key} config-on-notification = $${request-pull-backup-server:connection-feeds-url}$${request-pull-backup-server-apache:config-notification-id} slave = true [request-pull-backup-server-mariadb] <= request-pull-backup-server slap-connection name = PBS pulling from $${request-mariadb:name} config = url name type server-key on-notification notify notification-id title config-url = $${request-mariadb:connection-ssh-url} config-name = $${slap-connection:computer-id}-$${slap-connection:partition-id}-mariadb config-type = pull config-server-key = $${request-mariadb:connection-ssh-public-key} config-on-notification = $${request-mariadb:connection-notification-id} config-notify = $${request-pull-backup-server:connection-notification-url} config-notification-id = $${slap-connection:computer-id}-$${slap-connection:partition-id}-mariadb-pull config-title = Pulling from MariaDB slave = true [request-pull-backup-server-mariadb-backup] <= request-pull-backup-server slap-connection name = PBS pushing on $${request-mariadb-pseudo-replicating:name} config = url name type server-key on-notification notify notification-id title config-url = $${request-mariadb-pseudo-replicating:connection-ssh-url} config-name = $${request-pull-backup-server-mariadb:config-name} config-type = push config-server-key = $${request-mariadb-pseudo-replicating:connection-ssh-public-key} config-on-notification = $${request-pull-backup-server:connection-feeds-url}$${request-pull-backup-server-mariadb:config-notification-id} config-notify = $${request-mariadb-pseudo-replicating:connection-notification-url} config-notification-id = $${request-mariadb-pseudo-replicating:pbs-notification-id} config-title = Pushing to MariaDB backup slave = true [directory] ssh = $${rootdirectory:etc}/ssh/ sshkeys = $${rootdirectory:srv}/sshkeys