[buildout] parts = instance sshkeys-authority sshkeys-dropbear dropbear-client eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} [instance] recipe = ${instance-recipe:egg}:${instance-recipe:module} slaprunner = ${buildout:directory}/bin/slaprunner slapgrid_sr = ${buildout:directory}/bin/slapgrid-sr slapgrid_cp = ${buildout:directory}/bin/slapgrid-cp slapproxy = ${buildout:directory}/bin/slapproxy supervisor = ${buildout:directory}/bin/slapgrid-supervisorctl git = ${git:location}/bin/git ssh_client = $${sshkeys-dropbear:wrapper} public_key = $${sshkeys-dropbear:public-key} private_key = $${sshkeys-dropbear:private-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 = $${directory: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-client:wrapper} public-key = $${dropbear-client:identity-file}.pub private-key = $${dropbear-client:identity-file} wrapper = $${rootdirectory:bin}/dbclient [dropbear-client] recipe = slapos.cookbook:dropbear.client dbclient-binary = ${dropbear:location}/bin/dbclient identity-file = $${directory:ssh}/id_rsa wrapper = $${rootdirectory:bin}/dbclient_raw home = $${rootdirectory:etc}/ssh/ force-host-key = True [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc/ var = $${buildout:directory}/var/ srv = $${buildout:directory}/srv/ bin = $${buildout:directory}/bin/ [directory] recipe = slapos.cookbook:mkdirectory sshkeys = $${rootdirectory:srv}/sshkeys services = $${rootdirectory:etc}/run/ ssh = $${rootdirectory:etc}/ssh/