diff options
author | R.I.Pienaar <rip@devco.net> | 2011-08-03 06:44:57 -0700 |
---|---|---|
committer | R.I.Pienaar <rip@devco.net> | 2011-08-03 06:44:57 -0700 |
commit | 0cd6bacfc92e581a988c2c82cc23472dff63a8b0 (patch) | |
tree | 19c3cdc42964dbb3c06edb8e99b607abdbf86ef3 | |
parent | 4a08cd40b5cace62afa1070311245e2379789cb8 (diff) | |
parent | 185adddae8cbba57891167cef05b94a8b3e25171 (diff) | |
download | puppet-concat-0cd6bacfc92e581a988c2c82cc23472dff63a8b0.tar.gz puppet-concat-0cd6bacfc92e581a988c2c82cc23472dff63a8b0.tar.bz2 |
Merge pull request #8 from duritong/master
use client's vardir - make module usable for unprivileged users
-rw-r--r-- | lib/facter/concat_basedir.rb | 5 | ||||
-rw-r--r-- | manifests/fragment.pp | 2 | ||||
-rw-r--r-- | manifests/init.pp | 24 | ||||
-rw-r--r-- | manifests/setup.pp | 15 |
4 files changed, 29 insertions, 17 deletions
diff --git a/lib/facter/concat_basedir.rb b/lib/facter/concat_basedir.rb new file mode 100644 index 0000000..02e9c5b --- /dev/null +++ b/lib/facter/concat_basedir.rb @@ -0,0 +1,5 @@ +Facter.add("concat_basedir") do + setcode do + File.join(Puppet[:vardir],"concat") + end +end diff --git a/manifests/fragment.pp b/manifests/fragment.pp index 7afc4c0..1fb4128 100644 --- a/manifests/fragment.pp +++ b/manifests/fragment.pp @@ -13,7 +13,7 @@ # - group Owner of the file # - backup Controls the filebucketing behavior of the final file and # see File type reference for its use. Defaults to 'puppet' -define concat::fragment($target, $content='', $source='', $order=10, $ensure = "present", $mode = 0644, $owner = root, $group = $concat::setup::root_group, $backup = "puppet") { +define concat::fragment($target, $content='', $source='', $order=10, $ensure = "present", $mode = 0644, $owner = $id, $group = $concat::setup::root_group, $backup = "puppet") { $safe_name = regsubst($name, '/', '_', 'G') $safe_target_name = regsubst($target, '/', '_', 'G') $concatdir = $concat::setup::concatdir diff --git a/manifests/init.pp b/manifests/init.pp index 3a17346..19d91a1 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -44,9 +44,9 @@ # # DETAIL: # We use a helper shell script called concatfragments.sh that gets placed -# in /usr/local/bin to do the concatenation. While this might seem more -# complex than some of the one-liner alternatives you might find on the net -# we do a lot of error checking and safety checks in the script to avoid +# in <Puppet[:vardir]>/concat/bin to do the concatenation. While this might +# seem more complex than some of the one-liner alternatives you might find on +# the net we do a lot of error checking and safety checks in the script to avoid # problems that might be caused by complex escaping errors etc. # # LICENSE: @@ -87,7 +87,7 @@ # ALIASES: # - The exec can notified using Exec["concat_/path/to/file"] or Exec["concat_/path/to/directory"] # - The final file can be referened as File["/path/to/file"] or File["concat_/path/to/file"] -define concat($mode = 0644, $owner = "root", $group = $concat::setup::root_group, $warn = "false", $force = "false", $backup = "puppet", $gnu = "true", $order="alpha") { +define concat($mode = 0644, $owner = $id, $group = $concat::setup::root_group, $warn = "false", $force = "false", $backup = "puppet", $gnu = "true", $order="alpha") { $safe_name = regsubst($name, '/', '_', 'G') $concatdir = $concat::setup::concatdir $version = $concat::setup::majorversion @@ -126,7 +126,7 @@ define concat($mode = 0644, $owner = "root", $group = $concat::setup::root_group } File{ - owner => root, + owner => $id, group => $group, mode => $mode, backup => $backup @@ -164,13 +164,17 @@ define concat($mode = 0644, $owner = "root", $group = $concat::setup::root_group } exec{"concat_${name}": - user => root, - group => $group, notify => File[$name], subscribe => File[$fragdir], alias => "concat_${fragdir}", - require => [ File["/usr/local/bin/concatfragments.sh"], File[$fragdir], File["${fragdir}/fragments"], File["${fragdir}/fragments.concat"] ], - unless => "/usr/local/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} -t ${warnflag} ${forceflag} ${orderflag} ${gnuflag}", - command => "/usr/local/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} ${warnflag} ${forceflag} ${orderflag} ${gnuflag}", + require => [ File[$fragdir], File["${fragdir}/fragments"], File["${fragdir}/fragments.concat"] ], + unless => "${concat::setup::concatdir}/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} -t ${warnflag} ${forceflag} ${orderflag} ${gnuflag}", + command => "${concat::setup::concatdir}/bin/concatfragments.sh -o ${fragdir}/${concat_name} -d ${fragdir} ${warnflag} ${forceflag} ${orderflag} ${gnuflag}", + } + if $id == 'root' { + Exec["concat_${name}"]{ + user => root, + group => $group, + } } } diff --git a/manifests/setup.pp b/manifests/setup.pp index fa8c7eb..53092ab 100644 --- a/manifests/setup.pp +++ b/manifests/setup.pp @@ -13,12 +13,15 @@ # # It also copies out the concatfragments.sh file to /usr/local/bin class concat::setup { - $root_group = 0 - $concatdir = "/var/lib/puppet/concat" + $root_group = $id ? { + root => 0, + default => $id + } + $concatdir = $concat_basedir $majorversion = regsubst($puppetversion, '^[0-9]+[.]([0-9]+)[.][0-9]+$', '\1') - file{"/usr/local/bin/concatfragments.sh": - owner => root, + file{"${concatdir}/bin/concatfragments.sh": + owner => $id, group => $root_group, mode => 755, source => $majorversion ? { @@ -26,9 +29,9 @@ class concat::setup { default => "puppet:///modules/concat/concatfragments.sh" }; - $concatdir: + [ $concatdir, "${concatdir}/bin" ]: ensure => directory, - owner => root, + owner => $id, group => $root_group, mode => '0750'; } |