|
@@ -1,76 +1,29 @@
|
|
class virtualbox {
|
|
class virtualbox {
|
|
- Package { ensure => "installed" }
|
|
|
|
-
|
|
|
|
- user { "vagrant":
|
|
|
|
- name => "vagrant",
|
|
|
|
- ensure => present,
|
|
|
|
- comment => "Vagrant User",
|
|
|
|
- shell => "/bin/bash",
|
|
|
|
- home => "/home/vagrant",
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- file { "/home/vagrant":
|
|
|
|
- mode => 644,
|
|
|
|
- require => User["vagrant"],
|
|
|
|
- }
|
|
|
|
|
|
+ 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,
|
|
|
|
- require => File["/home/vagrant"],
|
|
|
|
- }
|
|
|
|
- file { "/usr/local/bin/dockerd":
|
|
|
|
- ensure => absent,
|
|
|
|
- }
|
|
|
|
|
|
+ # 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,
|
|
|
|
+ }
|
|
|
|
|
|
- # Set up VirtualBox guest utils
|
|
|
|
- package { "virtualbox-guest-utils": }
|
|
|
|
|
|
+ # Set up VirtualBox guest utils
|
|
|
|
+ package { "virtualbox-guest-utils": }
|
|
exec { "vbox-add" :
|
|
exec { "vbox-add" :
|
|
command => "/etc/init.d/vboxadd setup",
|
|
command => "/etc/init.d/vboxadd setup",
|
|
require => [
|
|
require => [
|
|
- Package["virtualbox-guest-utils"],
|
|
|
|
- Package["linux-headers-3.5.0-25-generic"], ],
|
|
|
|
|
|
+ Package["virtualbox-guest-utils"],
|
|
|
|
+ Package["linux-headers-3.5.0-25-generic"], ],
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-class ec2 {
|
|
|
|
- user { "vagrant":
|
|
|
|
- name => "ubuntu",
|
|
|
|
- ensure => present,
|
|
|
|
- comment => "Vagrant User",
|
|
|
|
- shell => "/bin/bash",
|
|
|
|
- home => "/home/ubuntu",
|
|
|
|
- }
|
|
|
|
- file { "/home/vagrant":
|
|
|
|
- ensure => link,
|
|
|
|
- target => "/home/ubuntu",
|
|
|
|
- require => User["vagrant"],
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-class rax {
|
|
|
|
- user { "vagrant":
|
|
|
|
- name => "ubuntu",
|
|
|
|
- ensure => present,
|
|
|
|
- comment => "Vagrant User",
|
|
|
|
- shell => "/bin/bash",
|
|
|
|
- home => "/home/ubuntu",
|
|
|
|
- }
|
|
|
|
- file { "/home/vagrant":
|
|
|
|
- ensure => link,
|
|
|
|
- target => "/home/ubuntu",
|
|
|
|
- require => User["vagrant"],
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
class docker {
|
|
class docker {
|
|
-
|
|
|
|
- # update this with latest docker binary distro
|
|
|
|
- $docker_url = "http://get.docker.io/builds/$kernel/$hardwaremodel/docker-master.tgz"
|
|
|
|
- # update this with latest go binary distry
|
|
|
|
|
|
+ # update this with latest go binary dist
|
|
$go_url = "http://go.googlecode.com/files/go1.0.3.linux-amd64.tar.gz"
|
|
$go_url = "http://go.googlecode.com/files/go1.0.3.linux-amd64.tar.gz"
|
|
|
|
|
|
Package { ensure => "installed" }
|
|
Package { ensure => "installed" }
|
|
@@ -81,67 +34,63 @@ class docker {
|
|
"linux-image-extra-3.5.0-25-generic",
|
|
"linux-image-extra-3.5.0-25-generic",
|
|
"linux-headers-3.5.0-25-generic"]: }
|
|
"linux-headers-3.5.0-25-generic"]: }
|
|
|
|
|
|
- notify { "docker_url = $docker_url": withpath => true }
|
|
|
|
-
|
|
|
|
$ec2_version = file("/etc/ec2_version", "/dev/null")
|
|
$ec2_version = file("/etc/ec2_version", "/dev/null")
|
|
$rax_version = inline_template("<%= %x{/usr/bin/xenstore-read vm-data/provider_data/provider} %>")
|
|
$rax_version = inline_template("<%= %x{/usr/bin/xenstore-read vm-data/provider_data/provider} %>")
|
|
|
|
|
|
if ($ec2_version) {
|
|
if ($ec2_version) {
|
|
- $vagrant_user = "ubuntu"
|
|
|
|
- include ec2
|
|
|
|
|
|
+ $vagrant_user = "ubuntu"
|
|
|
|
+ $vagrant_home = "/home/ubuntu"
|
|
} elsif ($rax_version) {
|
|
} elsif ($rax_version) {
|
|
- $vagrant_user = "vagrant"
|
|
|
|
- include rax
|
|
|
|
|
|
+ $vagrant_user = "root"
|
|
|
|
+ $vagrant_home = "/root"
|
|
} else {
|
|
} else {
|
|
- # virtualbox is the vagrant default, so it should be safe to assume
|
|
|
|
- $vagrant_user = "vagrant"
|
|
|
|
|
|
+ # virtualbox is the vagrant default, so it should be safe to assume
|
|
|
|
+ $vagrant_user = "vagrant"
|
|
|
|
+ $vagrant_home = "/home/vagrant"
|
|
include virtualbox
|
|
include virtualbox
|
|
}
|
|
}
|
|
|
|
|
|
- file { "/usr/local/bin":
|
|
|
|
- ensure => directory,
|
|
|
|
- owner => root,
|
|
|
|
- group => root,
|
|
|
|
- mode => 755,
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
exec { "fetch-go":
|
|
exec { "fetch-go":
|
|
require => Package["wget"],
|
|
require => Package["wget"],
|
|
command => "/usr/bin/wget -O - $go_url | /bin/tar xz -C /usr/local",
|
|
command => "/usr/bin/wget -O - $go_url | /bin/tar xz -C /usr/local",
|
|
creates => "/usr/local/go/bin/go",
|
|
creates => "/usr/local/go/bin/go",
|
|
}
|
|
}
|
|
|
|
|
|
- exec { "fetch-docker" :
|
|
|
|
- command => "/usr/bin/wget -O - $docker_url | /bin/tar xz -C /tmp",
|
|
|
|
- require => Package["wget"],
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
file { "/etc/init/dockerd.conf":
|
|
file { "/etc/init/dockerd.conf":
|
|
mode => 600,
|
|
mode => 600,
|
|
owner => "root",
|
|
owner => "root",
|
|
group => "root",
|
|
group => "root",
|
|
content => template("docker/dockerd.conf"),
|
|
content => template("docker/dockerd.conf"),
|
|
- require => Exec["copy-docker-bin"],
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- file { "/home/vagrant/.profile":
|
|
|
|
|
|
+ file { "/opt/go":
|
|
|
|
+ owner => $vagrant_user,
|
|
|
|
+ group => $vagrant_user,
|
|
|
|
+ recurse => true,
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ file { "${vagrant_home}/.profile":
|
|
mode => 644,
|
|
mode => 644,
|
|
owner => $vagrant_user,
|
|
owner => $vagrant_user,
|
|
- group => "ubuntu",
|
|
|
|
|
|
+ group => $vagrant_user,
|
|
content => template("docker/profile"),
|
|
content => template("docker/profile"),
|
|
- require => File["/home/vagrant"],
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- exec { "copy-docker-bin" :
|
|
|
|
- command => "/usr/bin/sudo /bin/cp -f /tmp/docker-master/docker /usr/local/bin/",
|
|
|
|
- require => [ Exec["fetch-docker"], File["/usr/local/bin"] ],
|
|
|
|
|
|
+ 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" :
|
|
service { "dockerd" :
|
|
ensure => "running",
|
|
ensure => "running",
|
|
start => "/sbin/initctl start dockerd",
|
|
start => "/sbin/initctl start dockerd",
|
|
stop => "/sbin/initctl stop dockerd",
|
|
stop => "/sbin/initctl stop dockerd",
|
|
- require => File["/etc/init/dockerd.conf"],
|
|
|
|
|
|
+ require => [ Exec["build-docker"], File["/etc/init/dockerd.conf"] ],
|
|
name => "dockerd",
|
|
name => "dockerd",
|
|
provider => "base"
|
|
provider => "base"
|
|
}
|
|
}
|