Mercurial > repos > other > Puppet
comparison modules/python/manifests/venv/isolate.pp @ 0:956e484adc12
Initial public release of Puppet configs
author | IBBoard <dev@ibboard.co.uk> |
---|---|
date | Sat, 16 Aug 2014 19:47:38 +0000 |
parents | |
children | 393acb5f672d |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:956e484adc12 |
---|---|
1 define python::venv::isolate($ensure=present, | |
2 $version=latest, | |
3 $requirements=undef) { | |
4 $root = $name | |
5 $owner = $python::venv::owner | |
6 $group = $python::venv::group | |
7 $python = $python::dev::python | |
8 | |
9 if $ensure == 'present' { | |
10 # Parent directory of root directory. /var/www for /var/www/blog | |
11 $root_parent = inline_template("<%= root.match(%r!(.+)/.+!)[1] %>") | |
12 | |
13 if !defined(File[$root_parent]) { | |
14 file { $root_parent: | |
15 ensure => directory, | |
16 owner => $owner, | |
17 group => $group, | |
18 } | |
19 } | |
20 | |
21 Exec { | |
22 user => $owner, | |
23 group => $group, | |
24 cwd => "/tmp", | |
25 } | |
26 | |
27 # Does not successfully run as www-data on Debian: | |
28 exec { "python::venv $root": | |
29 command => "virtualenv -p `which ${python}` ${root}", | |
30 creates => $root, | |
31 notify => Exec["update distribute and pip in $root"], | |
32 require => [File[$root_parent], | |
33 Package["python-virtualenv"]], | |
34 } | |
35 | |
36 # Some newer Python packages require an updated distribute | |
37 # from the one that is in repos on most systems: | |
38 exec { "update distribute and pip in $root": | |
39 command => "$root/bin/pip install -U pip distribute", | |
40 refreshonly => true, | |
41 } | |
42 | |
43 if $requirements { | |
44 python::pip::requirements { $requirements: | |
45 venv => $root, | |
46 owner => $owner, | |
47 group => $group, | |
48 require => Exec["python::venv $root"], | |
49 } | |
50 } | |
51 | |
52 } elsif $ensure == 'absent' { | |
53 | |
54 file { $root: | |
55 ensure => $ensure, | |
56 owner => $owner, | |
57 group => $group, | |
58 recurse => true, | |
59 purge => true, | |
60 force => true, | |
61 } | |
62 } | |
63 } |