From a76fb60fcf0f0e3b1ae03d18f002611b0879b1a3 Mon Sep 17 00:00:00 2001 From: Antoine Catton <acatton@tiolive.com> Date: Fri, 10 Aug 2012 17:02:10 +0900 Subject: [PATCH] Add shellinabox to lxc recipe --- software/lxc/instance-lxc.cfg | 79 +++++++++++++++++++++++++++++++++++ software/lxc/software.cfg | 6 ++- 2 files changed, 84 insertions(+), 1 deletion(-) diff --git a/software/lxc/instance-lxc.cfg b/software/lxc/instance-lxc.cfg index 7c4bd6d4c..6a3a9bba5 100644 --- a/software/lxc/instance-lxc.cfg +++ b/software/lxc/instance-lxc.cfg @@ -5,20 +5,47 @@ develop-eggs-directory = ${buildout:develop-eggs-directory} offline = true parts = + publish rootfs uuid lxc-conf + shellinabox + certificate-authority + ca-shellinabox [rootdirectory] recipe = slapos.cookbook:mkdirectory etc = $${buildout:directory}/etc tmp = $${buildout:directory}/tmp srv = $${buildout:directory}/srv +bin = $${buildout:directory}/bin [basedirectory] recipe = slapos.cookbook:mkdirectory services = $${rootdirectory:etc}/run +[directory] +recipe = slapos.cookbook:mkdirectory +shellinabox = $${rootdirectory:srv}/shellinabox/ +ca-dir = $${rootdirectory:srv}/ca/ + +[cadirectory] +recipe = slapos.cookbook:mkdirectory +requests = $${directory:ca-dir}/requests/ +private = $${directory:ca-dir}/private/ +certs = $${directory:ca-dir}/certs/ +newcerts = $${directory:ca-dir}/newcerts/ +crl = $${directory:ca-dir}/crl/ + +[cadirectory] +recipe = slapos.cookbook:mkdirectory +requests = $${directory:ca-dir}/requests/ +private = $${directory:ca-dir}/private/ +certs = $${directory:ca-dir}/certs/ +newcerts = $${directory:ca-dir}/newcerts/ +crl = $${directory:ca-dir}/crl/ + + [rootfs] recipe = slapos.cookbook:downloader url = $${slap-parameter:rootfs} @@ -38,9 +65,61 @@ name = $${uuid:uuid} rootfs = $${rootfs:downloaded-file} requested = $${slap-connection:requested} +[passwd] +recipe = slapos.cookbook:pwgen +file = $${buildout:directory}/.password +pwgen-binary = ${pwgen:location}/bin/pwgen + +[shellinabox] +recipe = slapos.cookbook:shellinabox +ipv6 = $${slap-network-information:global-ipv6} +port = 8080 +shell = ${lxc:location}/bin/lxc-console -n $${uuid:uuid} +wrapper = $${rootdirectory:bin}/shellinaboxd_raw +shellinabox-binary = ${shellinabox:location}/bin/shellinaboxd +password = $${passwd:password} +directory = $${buildout:directory}/ +login-shell = $${rootdirectory:bin}/login +certificate-directory = $${directory:shellinabox} +cert-file = $${directory:shellinabox}/public.crt +key-file = $${directory:shellinabox}/private.key + +[ca-shellinabox] +<= certificate-authority +recipe = slapos.cookbook:certificate_authority.request +executable = $${shellinabox:wrapper} +wrapper = $${rootdirectory:bin}/shellinaboxd +key-file = $${shellinabox:key-file} +cert-file = $${shellinabox:cert-file} + +[certificate-authority] +recipe = slapos.cookbook:certificate_authority +openssl-binary = ${openssl:location}/bin/openssl +ca-dir = $${directory:ca-dir} +requests-directory = $${cadirectory:requests} +wrapper = $${basedirectory:services}/ca +ca-private = $${cadirectory:private} +ca-certs = $${cadirectory:certs} +ca-newcerts = $${cadirectory:newcerts} +ca-crl = $${cadirectory:crl} + +[ca-shellinabox] +<= certificate-authority +recipe = slapos.cookbook:certificate_authority.request +executable = $${shellinabox:wrapper} +wrapper = $${rootdirectory:bin}/shellinaboxd +key-file = $${shellinabox:key-file} +cert-file = $${shellinabox:cert-file} + [uuid] recipe = slapos.cookbook:uuid cache-file = $${buildout:directory}/.slapcontainername +[publish] +recipe = slapos.cookbook:publish +url = http://[$${shellinabox:ipv6}]:$${shellinabox:port}/ +password = $${shellinabox:password} + + [slap-parameter] rootfs-md5sum = diff --git a/software/lxc/software.cfg b/software/lxc/software.cfg index c3e3e38df..c3091a2ca 100644 --- a/software/lxc/software.cfg +++ b/software/lxc/software.cfg @@ -9,6 +9,8 @@ extends = ../../component/gzip/buildout.cfg ../../component/bzip2/buildout.cfg ../../component/xz-utils/buildout.cfg + ../../component/shellinabox/buildout.cfg + ../../component/pwgen/buildout.cfg parts = lxml-python @@ -18,6 +20,8 @@ parts = slapos-cookbook slapos-toolbox lxc + shellinabox + pwgen [template] recipe = slapos.recipe.template @@ -29,7 +33,7 @@ mode = 0644 [template-lxc] recipe = slapos.recipe.template url = ${:_profile_base_location_}/instance-lxc.cfg -md5sum = 5ecbded7dacfa66964a2172bbfddfb5f +md5sum = ad1bd6fcab771e51a78b5b9446e47421 output = ${buildout:directory}/template-lxc.cfg mode = 0644 -- 2.30.9