use ubuntu 14.04 for remaining drivers

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett 2015-01-23 16:03:15 -05:00
parent 0613df5f70
commit 75f79ed25e
7 changed files with 99 additions and 75 deletions

View File

@ -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) {

View File

@ -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 {

View File

@ -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) {

View File

@ -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)

View File

@ -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(

View File

@ -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 {

View File

@ -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) {