fedora: provisioner based off of redhat

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett
2015-05-12 12:18:23 -04:00
parent bf7a5f2f53
commit f17556b2fa
2 changed files with 47 additions and 2 deletions

View File

@@ -0,0 +1,42 @@
package provision
import (
"github.com/docker/machine/drivers"
)
const (
// TODO: eventually the RPM install process will be integrated
// into the get.docker.com install script; for now
// we install via vendored RPMs
dockerFedoraRPMPath = "https://docker-mcn.s3.amazonaws.com/public/fedora/rpms/docker-engine-1.6.1-0.0.20150511.171646.git1b47f9f.fc21.x86_64.rpm"
)
func init() {
Register("Fedora", &RegisteredProvisioner{
New: NewFedoraProvisioner,
})
}
func NewFedoraProvisioner(d drivers.Driver) Provisioner {
g := GenericProvisioner{
DockerOptionsDir: "/etc/docker",
DaemonOptionsFile: "/lib/systemd/system/docker.service",
OsReleaseId: "fedora",
Packages: []string{
"curl",
"yum-utils",
},
Driver: d,
}
p := &FedoraProvisioner{
RedHatProvisioner{
g,
dockerFedoraRPMPath,
},
}
return p
}
type FedoraProvisioner struct {
RedHatProvisioner
}

View File

@@ -18,7 +18,7 @@ const (
// TODO: eventually the RPM install process will be integrated
// into the get.docker.com install script; for now
// we install via vendored RPMs
dockerRPMPath = "https://docker-mcn.s3.amazonaws.com/public/redhat/rpms/docker-engine-1.6.1-0.0.20150511.171646.git1b47f9f.el7.centos.x86_64.rpm"
dockerRHELRPMPath = "https://docker-mcn.s3.amazonaws.com/public/redhat/rpms/docker-engine-1.6.1-0.0.20150511.171646.git1b47f9f.el7.centos.x86_64.rpm"
)
func init() {
@@ -38,11 +38,13 @@ func NewRedHatProvisioner(d drivers.Driver) Provisioner {
},
Driver: d,
},
dockerRHELRPMPath,
}
}
type RedHatProvisioner struct {
GenericProvisioner
DockerRPMPath string
}
func (provisioner *RedHatProvisioner) Service(name string, action pkgaction.ServiceAction) error {
@@ -110,7 +112,7 @@ func installDocker(provisioner *RedHatProvisioner) error {
func (provisioner *RedHatProvisioner) installOfficialDocker() error {
log.Debug("installing docker")
if _, err := provisioner.SSHCommand(fmt.Sprintf("sudo yum install -y --nogpgcheck %s", dockerRPMPath)); err != nil {
if _, err := provisioner.SSHCommand(fmt.Sprintf("sudo yum install -y --nogpgcheck %s", provisioner.DockerRPMPath)); err != nil {
return err
}
@@ -142,6 +144,7 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.SwarmOptions,
}
for _, pkg := range provisioner.Packages {
log.Debugf("installing base package: name=%s", pkg)
if err := provisioner.Package(pkg, pkgaction.Install); err != nil {
return err
}