summaryrefslogtreecommitdiff
path: root/provisioning/modules
diff options
context:
space:
mode:
authorvarac <varacanero@zeromail.org>2015-02-10 09:31:02 +0100
committerDuda Dornelles <ddornell@thoughtworks.com>2015-02-12 11:31:03 -0200
commit6750381bbf99ce1cbe837eacac55a8e2801e7394 (patch)
treeb1c6dd4d20adb94fb66f5686a4bf5dfe4af3d488 /provisioning/modules
parentd22425a6679d9ec793af7e9a89733484a0f9be2b (diff)
Use wheezy for vagrant source box #272
Diffstat (limited to 'provisioning/modules')
-rw-r--r--provisioning/modules/pixelated/manifests/source.pp17
-rw-r--r--provisioning/modules/pixelated/manifests/source/install_useragent.pp30
-rw-r--r--provisioning/modules/pixelated/manifests/source/npm.pp9
3 files changed, 42 insertions, 14 deletions
diff --git a/provisioning/modules/pixelated/manifests/source.pp b/provisioning/modules/pixelated/manifests/source.pp
index 3d0fa390..d4e9754a 100644
--- a/provisioning/modules/pixelated/manifests/source.pp
+++ b/provisioning/modules/pixelated/manifests/source.pp
@@ -4,7 +4,6 @@ class pixelated::source {
package { [
'git',
'nodejs-legacy',
- 'npm',
'python-dev',
'python-virtualenv',
'libffi-dev',
@@ -15,6 +14,8 @@ class pixelated::source {
ensure => latest
}
+ include pixelated::source::npm
+
package { 'compass':
ensure => installed,
provider => 'gem'
@@ -22,21 +23,9 @@ class pixelated::source {
stage { 'install_pixelated': }
- class { 'install_pixelated' :
+ class { 'pixelated::source::install_useragent' :
stage => install_pixelated
}
- class install_pixelated {
- $virtualenv_path = '/home/vagrant/user-agent-venv'
-
- exec { 'install-pixelated':
- environment => 'USERNAME=vagrant',
- command => "/vagrant/install-pixelated.sh -v \"${virtualenv_path}\" -n /home/vagrant/boxed_node_modules",
- cwd => '/vagrant',
- user => 'vagrant',
- timeout => 0
- }
- }
-
Stage['main'] -> Stage['install_pixelated']
}
diff --git a/provisioning/modules/pixelated/manifests/source/install_useragent.pp b/provisioning/modules/pixelated/manifests/source/install_useragent.pp
new file mode 100644
index 00000000..8661f655
--- /dev/null
+++ b/provisioning/modules/pixelated/manifests/source/install_useragent.pp
@@ -0,0 +1,30 @@
+class pixelated::source::install_useragent {
+
+ $virtualenv_path = '/home/vagrant/user-agent-venv'
+
+ exec { 'install-pixelated':
+ # use of "user" parameter doesn't set env variables right,
+ # see https://projects.puppetlabs.com/issues/23053
+ # therefore we need to explicitily set them here
+ environment => [ 'USERNAME=vagrant', 'HOME=/home/vagrant' ],
+ command => "/vagrant/install-pixelated.sh -v \"${virtualenv_path}\" -n /home/vagrant/boxed_node_modules",
+ cwd => '/vagrant',
+ user => 'vagrant',
+ # to debug use this
+ # logoutput => true,
+ timeout => 0
+ }
+
+ file { '/home/vagrant/.activate_custom_node_modules.sh':
+ owner => 'vagrant',
+ mode => '0600',
+ source => 'puppet:///modules/pixelated/activate_custom_node_modules.sh',
+ }
+
+ exec { 'add_custom_node_modules_to_bashrc':
+ command => "/bin/bash -c 'echo \"source /home/vagrant/.activate_custom_node_modules.sh\" >> /home/vagrant/.bashrc'",
+ unless => "/bin/grep \"source /home/vagrant/.activate_custom_node_modules.sh\" /home/vagrant/.bashrc",
+ user => 'vagrant',
+ require => [Exec['install-pixelated'], File['/home/vagrant/.activate_custom_node_modules.sh']]
+ }
+}
diff --git a/provisioning/modules/pixelated/manifests/source/npm.pp b/provisioning/modules/pixelated/manifests/source/npm.pp
new file mode 100644
index 00000000..8926d6fd
--- /dev/null
+++ b/provisioning/modules/pixelated/manifests/source/npm.pp
@@ -0,0 +1,9 @@
+# installs npm from source
+class pixelated::source::npm {
+
+ exec { 'install_npm':
+ command => '/usr/bin/curl -s -L https://npmjs.org/install.sh | /bin/sh',
+ unless => '/usr/bin/test -e /usr/bin/npm',
+ require => Package['nodejs-legacy'];
+ }
+}