From 75f79ed25e74a9314f3597c12d009c4f28ddf7c4 Mon Sep 17 00:00:00 2001 From: Evan Hazlett Date: Fri, 23 Jan 2015 16:03:15 -0500 Subject: [PATCH] use ubuntu 14.04 for remaining drivers Signed-off-by: Evan Hazlett --- drivers/amazonec2/amazonec2.go | 18 +++++--- drivers/azure/azure.go | 16 ++++++- drivers/digitalocean/digitalocean.go | 19 ++++---- drivers/google/compute_util.go | 66 +++++++++++++--------------- drivers/openstack/openstack.go | 16 ++++++- drivers/softlayer/driver.go | 16 ++++--- drivers/vmwarevcloudair/vcloudair.go | 23 +++++----- 7 files changed, 99 insertions(+), 75 deletions(-) diff --git a/drivers/amazonec2/amazonec2.go b/drivers/amazonec2/amazonec2.go index fcb10107fc..14caa261d1 100644 --- a/drivers/amazonec2/amazonec2.go +++ b/drivers/amazonec2/amazonec2.go @@ -6,7 +6,6 @@ import ( "fmt" "io" "io/ioutil" - "os" "os/exec" "path" "time" @@ -262,7 +261,7 @@ func (d *Driver) Create() error { log.Debugf("Installing Docker") - cmd, err = d.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl get.docker.io | sudo sh -; fi") + cmd, err = d.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl -sL https://get.docker.com | sh -; fi") if err != nil { return err @@ -413,14 +412,19 @@ func (d *Driver) GetDockerConfigDir() string { } func (d *Driver) Upgrade() error { - sshCmd, err := d.GetSSHCommand("apt-get update && apt-get install -y lxc-docker") + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") if err != nil { return err + } - sshCmd.Stdin = os.Stdin - sshCmd.Stdout = os.Stdout - sshCmd.Stderr = os.Stderr - return sshCmd.Run() + if err := cmd.Run(); err != nil { + return err + + } + + return cmd.Run() } func (d *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) { diff --git a/drivers/azure/azure.go b/drivers/azure/azure.go index d9ec901324..4cdae637cb 100644 --- a/drivers/azure/azure.go +++ b/drivers/azure/azure.go @@ -210,7 +210,7 @@ func (driver *Driver) Create() error { return err } - cmd, err := driver.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl get.docker.io | sh -; fi") + cmd, err := driver.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl -sL https://get.docker.com | sh -; fi") if err != nil { return err } @@ -459,7 +459,19 @@ func (driver *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) { } func (driver *Driver) Upgrade() error { - return nil + log.Debugf("Upgrading Docker") + + cmd, err := driver.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") + if err != nil { + return err + + } + if err := cmd.Run(); err != nil { + return err + + } + + return cmd.Run() } func generateVMName() string { diff --git a/drivers/digitalocean/digitalocean.go b/drivers/digitalocean/digitalocean.go index efa45436e0..8e86ad03ca 100644 --- a/drivers/digitalocean/digitalocean.go +++ b/drivers/digitalocean/digitalocean.go @@ -3,7 +3,6 @@ package digitalocean import ( "fmt" "io/ioutil" - "os" "os/exec" "path/filepath" "time" @@ -170,7 +169,7 @@ func (d *Driver) Create() error { log.Debugf("Installing Docker") - cmd, err = d.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl get.docker.io | sudo sh -; fi") + cmd, err = d.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl -sL https://get.docker.com | sh -; fi") if err != nil { return err @@ -309,17 +308,19 @@ func (d *Driver) GetDockerConfigDir() string { } func (d *Driver) Upgrade() error { - sshCmd, err := d.GetSSHCommand("apt-get update && apt-get install lxc-docker") + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") if err != nil { return err + } - sshCmd.Stdin = os.Stdin - sshCmd.Stdout = os.Stdout - sshCmd.Stderr = os.Stderr - if err := sshCmd.Run(); err != nil { - return fmt.Errorf("%s", err) + if err := cmd.Run(); err != nil { + return err + } - return nil + + return cmd.Run() } func (d *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) { diff --git a/drivers/google/compute_util.go b/drivers/google/compute_util.go index 57ab7e60ae..6612737eb9 100644 --- a/drivers/google/compute_util.go +++ b/drivers/google/compute_util.go @@ -1,11 +1,8 @@ package google import ( - "bytes" "fmt" "io/ioutil" - "strings" - "text/template" "time" log "github.com/Sirupsen/logrus" @@ -28,7 +25,7 @@ type ComputeUtil struct { const ( apiURL = "https://www.googleapis.com/compute/v1/projects/" //imageName = "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/container-vm-v20141016" - imageName = "https://www.googleapis.com/compute/v1/projects/google-containers/global/images/ubuntu-1404" + imageName = "https://www.googleapis.com/compute/v1/projects/ubuntu-os-cloud/global/images/ubuntu-1404-trusty-v20141212" firewallRule = "docker-machines" port = "2376" firewallTargetTag = "docker-machine" @@ -36,15 +33,6 @@ const ( dockerStopCommand = "sudo service docker stop" ) -var ( - dockerUpgradeScriptTemplate = template.Must(template.New("upgrade-docker-script").Parse( - `sudo mkdir -p /.docker/authorized-keys.d/ -sudo chown -R {{ .UserName }} /.docker -while [ -e /var/run/docker.pid ]; do sleep 1; done -curl -sL https://get.docker.com | sh -`)) -) - const () // NewComputeUtil creates and initializes a ComputeUtil. @@ -221,7 +209,35 @@ func (c *ComputeUtil) createInstance(d *Driver) error { return err } - return c.updateDocker(d) + log.Debugf("Installing Docker") + + cmd, err = d.GetSSHCommand("if [ ! -e /usr/bin/docker ]; then curl -sL https://get.docker.com | sudo sh -; fi") + if err != nil { + return err + + } + if err := cmd.Run(); err != nil { + return err + + } + + return nil +} + +func (c *ComputeUtil) updateDocker(d *Driver) error { + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") + if err != nil { + return err + + } + if err := cmd.Run(); err != nil { + return err + + } + + return nil } // deleteInstance deletes the instance, leaving the persistent disk. @@ -235,28 +251,6 @@ func (c *ComputeUtil) deleteInstance() error { return c.waitForRegionalOp(op.Name) } -// updateDocker updates the docker daemon to the latest version. -func (c *ComputeUtil) updateDocker(d *Driver) error { - log.Infof("Updating docker.") - ip, err := d.GetIP() - if err != nil { - return fmt.Errorf("error retrieving ip: %v", err) - } - if c.executeCommands([]string{dockerStopCommand}, ip, d.sshKeyPath); err != nil { - return err - } - var scriptBuf bytes.Buffer - - if err := dockerUpgradeScriptTemplate.Execute(&scriptBuf, d); err != nil { - return fmt.Errorf("error expanding upgrade script template: %v", err) - } - commands := strings.Split(scriptBuf.String(), "\n") - if err := c.executeCommands(commands, ip, d.sshKeyPath); err != nil { - return err - } - return c.executeCommands([]string{dockerStartCommand}, ip, d.sshKeyPath) -} - func (c *ComputeUtil) executeCommands(commands []string, ip, sshKeyPath string) error { for _, command := range commands { cmd := ssh.GetSSHCommand(ip, 22, c.userName, sshKeyPath, command) diff --git a/drivers/openstack/openstack.go b/drivers/openstack/openstack.go index 949d2db631..cfe9efd937 100644 --- a/drivers/openstack/openstack.go +++ b/drivers/openstack/openstack.go @@ -404,7 +404,19 @@ func (d *Driver) Kill() error { } func (d *Driver) Upgrade() error { - return fmt.Errorf("unable to upgrade as we are using the custom docker binary with identity auth") + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") + if err != nil { + return err + + } + if err := cmd.Run(); err != nil { + return err + + } + + return cmd.Run() } func (d *Driver) StartDocker() error { @@ -740,7 +752,7 @@ func (d *Driver) installDocker() error { if err := d.sshExec([]string{ `apt-get install -y curl`, - `curl -sSL https://get.docker.com | /bin/sh >/var/log/docker-install.log 2>&1`, + `curl -sSL https://get.docker.com | sh`, }); err != nil { log.Error("The docker installation failed.") log.Error( diff --git a/drivers/softlayer/driver.go b/drivers/softlayer/driver.go index ede154805c..bcfee6d31b 100644 --- a/drivers/softlayer/driver.go +++ b/drivers/softlayer/driver.go @@ -423,17 +423,19 @@ func (d *Driver) Stop() error { } func (d *Driver) Upgrade() error { - sshCmd, err := d.GetSSHCommand("curl -sSL https://get.docker.com/builds/Linux/x86_64/docker-latest > /tmp/docker && chmod +x /tmp/docker && mv /tmp/docker $(which docker)") + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") if err != nil { return err + } - sshCmd.Stdin = os.Stdin - sshCmd.Stdout = os.Stdout - sshCmd.Stderr = os.Stderr - if err := sshCmd.Run(); err != nil { - return fmt.Errorf("%s", err) + if err := cmd.Run(); err != nil { + return err + } - return nil + + return cmd.Run() } func (d *Driver) setupHost() error { diff --git a/drivers/vmwarevcloudair/vcloudair.go b/drivers/vmwarevcloudair/vcloudair.go index f6d60f372f..b174fec156 100644 --- a/drivers/vmwarevcloudair/vcloudair.go +++ b/drivers/vmwarevcloudair/vcloudair.go @@ -7,7 +7,6 @@ package vmwarevcloudair import ( "fmt" "io/ioutil" - "os" "os/exec" "path" "strings" @@ -414,7 +413,7 @@ func (d *Driver) Create() error { } if d.Provision { - dockerInstall := "curl -sSL https://get.docker.com/ | sudo sh" + dockerInstall := "curl -sSL https://get.docker.com | sudo sh" log.Infof("Installing Docker...") @@ -742,19 +741,19 @@ func (d *Driver) GetDockerConfigDir() string { } func (d *Driver) Upgrade() error { - // Stolen from DigitalOcean ;-) - sshCmd, err := d.GetSSHCommand("apt-get update && apt-get install lxc-docker") + log.Debugf("Upgrading Docker") + + cmd, err := d.GetSSHCommand("sudo apt-get update && apt-get install --upgrade lxc-docker") if err != nil { return err - } - sshCmd.Stdin = os.Stdin - sshCmd.Stdout = os.Stdout - sshCmd.Stderr = os.Stderr - if err := sshCmd.Run(); err != nil { - return fmt.Errorf("%s", err) - } - return nil + } + if err := cmd.Run(); err != nil { + return err + + } + + return cmd.Run() } func (d *Driver) GetSSHCommand(args ...string) (*exec.Cmd, error) {