redhat: update before docker install; use simpler config in proper location

Signed-off-by: Evan Hazlett <ejhazlett@gmail.com>
This commit is contained in:
Evan Hazlett 2015-05-18 23:46:29 -04:00
parent 467cb605e5
commit d2ca73c4cc
1 changed files with 10 additions and 14 deletions

View File

@ -31,7 +31,7 @@ func NewRedHatProvisioner(d drivers.Driver) Provisioner {
return &RedHatProvisioner{ return &RedHatProvisioner{
GenericProvisioner{ GenericProvisioner{
DockerOptionsDir: "/etc/docker", DockerOptionsDir: "/etc/docker",
DaemonOptionsFile: "/lib/systemd/system/docker.service", DaemonOptionsFile: "/etc/systemd/system/docker.service",
OsReleaseId: "rhel", OsReleaseId: "rhel",
Packages: []string{ Packages: []string{
"curl", "curl",
@ -155,6 +155,11 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.SwarmOptions,
} }
} }
// update OS -- this is needed for libdevicemapper and the docker install
if _, err := provisioner.SSHCommand("sudo yum -y update"); err != nil {
return err
}
// install docker // install docker
if err := installDocker(provisioner); err != nil { if err := installDocker(provisioner); err != nil {
return err return err
@ -188,30 +193,21 @@ func (provisioner *RedHatProvisioner) GenerateDockerOptions(dockerPort int) (*Do
) )
// remove existing // remove existing
if _, err := provisioner.SSHCommand(fmt.Sprintf("sudo rm %s", configPath)); err != nil { //if _, err := provisioner.SSHCommand(fmt.Sprintf("sudo rm %s", configPath)); err != nil {
return nil, err // return nil, err
} //}
driverNameLabel := fmt.Sprintf("provider=%s", provisioner.Driver.DriverName()) driverNameLabel := fmt.Sprintf("provider=%s", provisioner.Driver.DriverName())
provisioner.EngineOptions.Labels = append(provisioner.EngineOptions.Labels, driverNameLabel) provisioner.EngineOptions.Labels = append(provisioner.EngineOptions.Labels, driverNameLabel)
// systemd / redhat will not load options if they are on newlines // systemd / redhat will not load options if they are on newlines
// instead, it just continues with a different set of options; yeah... // instead, it just continues with a different set of options; yeah...
engineConfigTmpl := `[Unit] engineConfigTmpl := `[Service]
Description=Docker Application Container Engine
Documentation=http://docs.docker.com
After=network.target docker.socket
Required=docker.socket
[Service]
ExecStart=/usr/bin/docker -d -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --storage-driver {{.EngineOptions.StorageDriver}} --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }} ExecStart=/usr/bin/docker -d -H tcp://0.0.0.0:{{.DockerPort}} -H unix:///var/run/docker.sock --storage-driver {{.EngineOptions.StorageDriver}} --tlsverify --tlscacert {{.AuthOptions.CaCertRemotePath}} --tlscert {{.AuthOptions.ServerCertRemotePath}} --tlskey {{.AuthOptions.ServerKeyRemotePath}} {{ range .EngineOptions.Labels }}--label {{.}} {{ end }}{{ range .EngineOptions.InsecureRegistry }}--insecure-registry {{.}} {{ end }}{{ range .EngineOptions.RegistryMirror }}--registry-mirror {{.}} {{ end }}{{ range .EngineOptions.ArbitraryFlags }}--{{.}} {{ end }}
MountFlags=slave MountFlags=slave
LimitNOFILE=1048576 LimitNOFILE=1048576
LimitNPROC=1048576 LimitNPROC=1048576
LimitCORE=infinity LimitCORE=infinity
[Install]
WantedBy=multi-user.target
` `
t, err := template.New("engineConfig").Parse(engineConfigTmpl) t, err := template.New("engineConfig").Parse(engineConfigTmpl)
if err != nil { if err != nil {