Merge pull request #111 from ehazlett/persist-b2d-keys

fixes #108: persist identity keys in b2d
This commit is contained in:
Ben Firshman 2014-12-30 14:35:03 +00:00
commit ba213b9042
1 changed files with 33 additions and 2 deletions

View File

@ -320,11 +320,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
}