123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112 |
- 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,
- }
- # 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 ec2 {
- }
- 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
- $go_url = "http://go.googlecode.com/files/go1.0.3.linux-amd64.tar.gz"
- Package { ensure => "installed" }
- package { ["lxc", "debootstrap", "wget", "bsdtar", "git",
- "pkg-config", "libsqlite3-dev",
- "linux-image-3.5.0-25-generic",
- "linux-image-extra-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")
- if ($ec2_version) {
- include ec2
- } else {
- # virtualbox is the vagrant default, so it should be safe to assume
- include virtualbox
- }
- user { "vagrant":
- ensure => present,
- comment => "Vagrant User",
- shell => "/bin/bash",
- home => "/home/vagrant",
- }
- file { "/usr/local/bin":
- ensure => directory,
- owner => root,
- group => root,
- mode => 755,
- }
- 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",
- }
- exec { "fetch-docker" :
- command => "/usr/bin/wget -O - $docker_url | /bin/tar xz -C /tmp",
- require => Package["wget"],
- }
- file { "/etc/init/dockerd.conf":
- mode => 600,
- owner => "root",
- group => "root",
- content => template("docker/dockerd.conf"),
- require => Exec["fetch-docker"],
- }
- file { "/home/vagrant":
- mode => 644,
- require => User["vagrant"],
- }
- file { "/home/vagrant/.profile":
- mode => 644,
- owner => "vagrant",
- group => "ubuntu",
- 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"] ],
- }
- service { "dockerd" :
- ensure => "running",
- start => "/sbin/initctl start dockerd",
- stop => "/sbin/initctl stop dockerd",
- require => File["/etc/init/dockerd.conf"],
- name => "dockerd",
- provider => "base"
- }
- }
|