[buildout] parts = postgres-urlparse # apacheperl-promise mioga-instance cron-entry-crawler sshkeys-dropbear dropbear-server-add-authorized-key sshkeys-authority publish-connection-information eggs-directory = ${buildout:eggs-directory} develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true [rootdirectory] recipe = slapos.cookbook:mkdirectory bin = $${buildout:directory}/bin etc = $${buildout:directory}/etc srv = $${buildout:directory}/srv log = $${buildout:directory}/log var = $${buildout:directory}/var buildinst = $${buildout:directory}/buildinst [basedirectory] recipe = slapos.cookbook:mkdirectory services = $${rootdirectory:etc}/run promises = $${rootdirectory:etc}/promise htdocs = $${rootdirectory:srv}/htdocs cronstamps = $${rootdirectory:etc}/cronstamps/ cron-entries = $${rootdirectory:etc}/cron.d/ crontabs = $${rootdirectory:etc}/crontabs/ sshkeys = $${rootdirectory:srv}/sshkeys ssh = $${rootdirectory:etc}/ssh [cron-simplelogger] recipe = slapos.cookbook:simplelogger wrapper = $${rootdirectory:bin}/cron_simplelogger log = $${rootdirectory:log}/crond.log [cron] recipe = slapos.cookbook:cron dcrond-binary = ${dcron:location}/sbin/crond cronstamps = $${basedirectory:cronstamps} cron-entries = $${basedirectory:cron-entries} crontabs = $${basedirectory:crontabs} catcher = $${cron-simplelogger:wrapper} binary = $${basedirectory:services}/crond [cron-entry-crawler] <= cron recipe = slapos.cookbook:cron.d name = logrotate frequency = 23 50 * * * command = $${mioga-instance:bin_dir}/crawl.sh [apacheperl-promise] recipe = slapos.cookbook:check_port_listening path = $${basedirectory:promises}/httpd_promise hostname = $${apacheperl-instance:ip} port = $${apacheperl-instance:port} [publish-connection-information] recipe = slapos.cookbook:publish direct_url = $${mioga-url:direct_url} ssh_command = ssh $${dropbear-server:host} -p $${dropbear-server:port} url = $${request-frontend:connection-site_url} # Request POSTGRES INSTANCE and parse its URL [request-postgres] <= slap-connection recipe = slapos.cookbook:request name = Postgres software-url = $${slap-connection:software-release-url} software-type = postgres return = url sla = computer_guid sla-computer_guid = $${slap-connection:computer-id} [postgres-urlparse] recipe = slapos.cookbook:urlparse url = $${request-postgres:connection-url} [symlinks] recipe = cns.recipe.symlink symlink_target = $${rootdirectory:bin} symlink_base = ${postgresql:location}/bin # SSH SERVER [sshkeys-directory] recipe = slapos.cookbook:mkdirectory requests = $${basedirectory:sshkeys}/requests/ keys = $${basedirectory: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 [dropbear-server] recipe = slapos.cookbook:dropbear host = $${slap-network-information:global-ipv6} port = 2222 home = $${basedirectory:ssh} wrapper = $${rootdirectory:bin}/raw_sshd shell = /bin/bash rsa-keyfile = $${basedirectory:ssh}/server_key.rsa dropbear-binary = ${dropbear:location}/sbin/dropbear [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-add-authorized-key] <= dropbear-server recipe = slapos.cookbook:dropbear.add_authorized_key key = $${slap-parameter:authorized-key} [slap-parameter] # Default value if no ssh key is specified authorized-key = # IPv4 AND PORT 80 FRONTEND [request-frontend] <= slap-connection recipe = slapos.cookbook:requestoptional name = Frontend # XXX We have hardcoded SR URL here. software-url = http://git.erp5.org/gitweb/slapos.git/blob_plain/HEAD:/software/apache-frontend/software.cfg slave = true config = url config-url = $${mioga-url:direct_url} return = site_url # MIOGA INSTANCE [mioga-instance] recipe = slapos.cookbook:mioga.instantiate # mioga_compile_dir = ${template-apacheperl:compile-directory} # Pity that the following line does not work. Or does it? # mioga_compile_env = ${mioga:environment} mioga_location = ${mioga:location} mioga_buildinst = ${mioga:buildinst} libxslt_bin = ${libxslt:location}/bin libxml2_bin = ${libxml2:location}/bin rsync_bin = ${rsync:location}/bin var_directory = $${rootdirectory:var} buildinst_directory = $${rootdirectory:buildinst} instance_root = $${buildout:directory} perl_bin = ${perl:location}/bin postgres_bin = ${postgresql:location}/bin htdocs = $${apacheperl-instance:htdocs} db_host = $${postgres-urlparse:host} db_port = $${postgres-urlparse:port} db_dbname = $${postgres-urlparse:path} db_username = $${postgres-urlparse:username} db_password = $${postgres-urlparse:password} public_ipv6 = $${slap-network-information:global-ipv6} public_ipv6_port = 8080 private_ipv4 = $${slap-network-information:local-ipv4} httpd_binary = ${apache-2.2:location}/bin/httpd path = $${basedirectory:services}/apacheperl htdocs = $${basedirectory:htdocs} httpd_conf = $${rootdirectory:etc}/httpd.conf pid_file = $${basedirectory:services}/apache.pid lock_file = $${basedirectory:services}/apache.lock dav_locks = $${buildout:directory}/var/dav_locks services_dir = $${basedirectory:services} error_log = $${rootdirectory:log}/error.log access_log = $${rootdirectory:log}/access.log bin_dir = $${rootdirectory:bin} log_dir = $${rootdirectory:log} site_perl = ${perl:siteprefix} [mioga-url] direct_url = http://[$${slap-network-information:global-ipv6}]:$${mioga-instance:public_ipv6_port}