|
@@ -1,12 +1,26 @@
|
|
|
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"],
|
|
|
+ }
|
|
|
+
|
|
|
# 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,
|
|
@@ -23,9 +37,33 @@ class virtualbox {
|
|
|
}
|
|
|
|
|
|
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 {
|
|
@@ -49,43 +87,17 @@ class docker {
|
|
|
$rax_version = inline_template("<%= %x{/usr/bin/xenstore-read vm-data/provider_data/provider} %>")
|
|
|
|
|
|
if ($ec2_version) {
|
|
|
- include ec2
|
|
|
+ $vagrant_user = "ubuntu"
|
|
|
+ include ec2
|
|
|
} elsif ($rax_version) {
|
|
|
+ $vagrant_user = "vagrant"
|
|
|
include rax
|
|
|
} else {
|
|
|
# virtualbox is the vagrant default, so it should be safe to assume
|
|
|
+ $vagrant_user = "vagrant"
|
|
|
include virtualbox
|
|
|
}
|
|
|
|
|
|
- user { "vagrant":
|
|
|
- ensure => present,
|
|
|
- comment => "Vagrant User",
|
|
|
- shell => "/bin/bash",
|
|
|
- home => "/home/vagrant",
|
|
|
- groups => [
|
|
|
- "sudo",
|
|
|
- "vagrant",
|
|
|
- "ubuntu",
|
|
|
- ],
|
|
|
- require => [
|
|
|
- Group["sudo"],
|
|
|
- Group["vagrant"],
|
|
|
- Group["ubuntu"],
|
|
|
- ],
|
|
|
- }
|
|
|
-
|
|
|
- group { "ubuntu":
|
|
|
- ensure => present,
|
|
|
- }
|
|
|
-
|
|
|
- group { "vagrant":
|
|
|
- ensure => present,
|
|
|
- }
|
|
|
-
|
|
|
- group { "sudo":
|
|
|
- ensure => present,
|
|
|
- }
|
|
|
-
|
|
|
file { "/usr/local/bin":
|
|
|
ensure => directory,
|
|
|
owner => root,
|
|
@@ -112,16 +124,10 @@ class docker {
|
|
|
require => Exec["copy-docker-bin"],
|
|
|
}
|
|
|
|
|
|
- file { "/home/vagrant":
|
|
|
- ensure => directory,
|
|
|
- mode => 644,
|
|
|
- require => User["vagrant"],
|
|
|
- }
|
|
|
-
|
|
|
file { "/home/vagrant/.profile":
|
|
|
mode => 644,
|
|
|
- owner => "vagrant",
|
|
|
- group => "vagrant",
|
|
|
+ owner => $vagrant_user,
|
|
|
+ group => "ubuntu",
|
|
|
content => template("docker/profile"),
|
|
|
require => File["/home/vagrant"],
|
|
|
}
|