mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
99 lines
2.9 KiB
Puppet
99 lines
2.9 KiB
Puppet
class virtualbox {
|
|
Package { ensure => "installed" }
|
|
|
|
# remove some files from the base vagrant image because they're old
|
|
file { "/home/vagrant/docker-master":
|
|
ensure => absent,
|
|
recurse => true,
|
|
force => true,
|
|
purge => true,
|
|
}
|
|
file { "/usr/local/bin/dockerd":
|
|
ensure => absent,
|
|
}
|
|
file { "/usr/local/bin/docker":
|
|
ensure => absent,
|
|
}
|
|
|
|
# Set up VirtualBox guest utils
|
|
package { "virtualbox-guest-utils": }
|
|
exec { "vbox-add" :
|
|
command => "/etc/init.d/vboxadd setup",
|
|
require => [
|
|
Package["virtualbox-guest-utils"],
|
|
Package["linux-headers-3.5.0-25-generic"], ],
|
|
}
|
|
}
|
|
|
|
class docker {
|
|
# update this with latest go binary dist
|
|
$go_url = "http://go.googlecode.com/files/go1.0.3.linux-amd64.tar.gz"
|
|
|
|
Package { ensure => "installed" }
|
|
|
|
package { ["lxc", "debootstrap", "wget", "bsdtar", "git",
|
|
"linux-image-3.5.0-25-generic",
|
|
"linux-image-extra-3.5.0-25-generic",
|
|
"linux-headers-3.5.0-25-generic"]: }
|
|
|
|
$ec2_version = file("/etc/ec2_version", "/dev/null")
|
|
$rax_version = inline_template("<%= %x{/usr/bin/xenstore-read vm-data/provider_data/provider} %>")
|
|
|
|
if ($ec2_version) {
|
|
$vagrant_user = "ubuntu"
|
|
$vagrant_home = "/home/ubuntu"
|
|
} elsif ($rax_version) {
|
|
$vagrant_user = "root"
|
|
$vagrant_home = "/root"
|
|
} else {
|
|
# virtualbox is the vagrant default, so it should be safe to assume
|
|
$vagrant_user = "vagrant"
|
|
$vagrant_home = "/home/vagrant"
|
|
include virtualbox
|
|
}
|
|
|
|
exec { "fetch-go":
|
|
require => Package["wget"],
|
|
command => "/usr/bin/wget -O - $go_url | /bin/tar xz -C /usr/local",
|
|
creates => "/usr/local/go/bin/go",
|
|
}
|
|
|
|
file { "/etc/init/dockerd.conf":
|
|
mode => 600,
|
|
owner => "root",
|
|
group => "root",
|
|
content => template("docker/dockerd.conf"),
|
|
}
|
|
|
|
file { "/opt/go":
|
|
owner => $vagrant_user,
|
|
group => $vagrant_user,
|
|
recurse => true,
|
|
}
|
|
|
|
file { "${vagrant_home}/.profile":
|
|
mode => 644,
|
|
owner => $vagrant_user,
|
|
group => $vagrant_user,
|
|
content => template("docker/profile"),
|
|
}
|
|
|
|
exec { "build-docker" :
|
|
cwd => "/opt/go/src/github.com/dotcloud/docker",
|
|
user => $vagrant_user,
|
|
environment => "GOPATH=/opt/go",
|
|
command => "/usr/local/go/bin/go get -v ./... && /usr/local/go/bin/go install ./docker",
|
|
creates => "/opt/go/bin/docker",
|
|
logoutput => "on_failure",
|
|
require => [ Exec["fetch-go"], File["/opt/go"] ],
|
|
}
|
|
|
|
service { "dockerd" :
|
|
ensure => "running",
|
|
start => "/sbin/initctl start dockerd",
|
|
stop => "/sbin/initctl stop dockerd",
|
|
require => [ Exec["build-docker"], File["/etc/init/dockerd.conf"] ],
|
|
name => "dockerd",
|
|
provider => "base"
|
|
}
|
|
}
|