init.pp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. class docker {
  2. # update this with latest docker binary distro
  3. $docker_url = "https://dl.dropbox.com/u/20637798/docker.tar.gz"
  4. # update this with latest go binary distry
  5. $go_url = "http://go.googlecode.com/files/go1.0.3.linux-amd64.tar.gz"
  6. Package { ensure => "installed" }
  7. package { ["lxc", "debootstrap", "wget", "bsdtar"]: }
  8. exec { "debootstrap" :
  9. require => Package["debootstrap"],
  10. command => "/usr/sbin/debootstrap --arch=amd64 quantal /var/lib/docker/images/docker-ut",
  11. creates => "/var/lib/docker/images/docker-ut",
  12. timeout => 0
  13. }
  14. exec { "fetch-go":
  15. require => Package["wget"],
  16. command => "/usr/bin/wget -O - $go_url | /bin/tar xz -C /usr/local",
  17. creates => "/usr/local/go/bin/go",
  18. }
  19. exec { "fetch-docker" :
  20. require => Package["wget"],
  21. command => "/usr/bin/wget -O - $docker_url | /bin/tar xz -C /home/vagrant",
  22. creates => "/home/vagrant/docker/dockerd"
  23. }
  24. file { "/etc/init/dockerd.conf":
  25. mode => 600,
  26. owner => "root",
  27. group => "root",
  28. content => template("docker/dockerd.conf"),
  29. require => [Exec["fetch-docker"], Exec["debootstrap"]]
  30. }
  31. exec { "copy-docker-bin" :
  32. require => Exec["fetch-docker"],
  33. command => "/bin/cp /home/vagrant/docker/docker /usr/local/bin",
  34. creates => "/usr/local/bin/docker"
  35. }
  36. service { "dockerd" :
  37. ensure => "running",
  38. start => "/sbin/initctl start dockerd",
  39. stop => "/sbin/initctl stop dockerd",
  40. require => File["/etc/init/dockerd.conf"],
  41. name => "dockerd",
  42. provider => "base"
  43. }
  44. }