From 02c38dcda7cc43cbe61766931e89fad1acf9eefd Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Tue, 16 Dec 2014 12:05:11 -0500 Subject: [PATCH] fixes #108: persist identity keys in b2d Signed-off-by: Evan Hazlett --- drivers/virtualbox/virtualbox.go | 35 ++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/drivers/virtualbox/virtualbox.go b/drivers/virtualbox/virtualbox.go index e4ab774d0f..3d46f90116 100644 --- a/drivers/virtualbox/virtualbox.go +++ b/drivers/virtualbox/virtualbox.go @@ -281,11 +281,42 @@ func (d *Driver) Create() error { log.Debugf("Adding key to authorized-keys.d...") - if err := drivers.AddPublicKeyToAuthorizedHosts(d, "/root/.docker/authorized-keys.d"); err != nil { + cmd, err := d.GetSSHCommand("sudo mkdir -p /var/lib/boot2docker/.docker && sudo chown -R docker /var/lib/boot2docker/.docker") + if err != nil { + return err + } + if err := cmd.Run(); err != nil { return err } - cmd, err := d.GetSSHCommand("sudo /etc/init.d/docker restart") + if err := drivers.AddPublicKeyToAuthorizedHosts(d, "/var/lib/boot2docker/.docker/authorized-keys.d"); err != nil { + return err + } + + // HACK: configure docker to use persisted auth + cmd, err = d.GetSSHCommand("echo DOCKER_TLS=no | sudo tee -a /var/lib/boot2docker/profile") + if err != nil { + return err + } + if err := cmd.Run(); err != nil { + return err + } + + extraArgs := `EXTRA_ARGS='--auth=identity + --auth-authorized-dir=/var/lib/boot2docker/.docker/authorized-keys.d + --auth-known-hosts=/var/lib/boot2docker/.docker/known-hosts.json + --identity=/var/lib/boot2docker/.docker/key.json + -H tcp://0.0.0.0:2376'` + sshCmd := fmt.Sprintf("echo \"%s\" | sudo tee -a /var/lib/boot2docker/profile", extraArgs) + cmd, err = d.GetSSHCommand(sshCmd) + if err != nil { + return err + } + if err := cmd.Run(); err != nil { + return err + } + + cmd, err = d.GetSSHCommand("sudo /etc/init.d/docker restart") if err != nil { return err }