On 27.01.2016 15:28, jcbollinger wrote: > [...] > Puppet implements the "posix" provider by passing the command to > Ruby's Kernel.exec() > <http://ruby-doc.org/core-2.3.0/Kernel.html#method-i-exec>. > [...]
Thanks for the inside view John. This would explain the current behaviour. IIRC this behaves quite similar to perl's "system" command (single argument vs. array). I also just remembered about some old discussions on redmine but I could only dig up http://projects.puppetlabs.com/issues/4288#note-16 which all talk about feeding the exec with the "array form" but that does not work as expected either. # test.pp exec { 'Test03': command => [ "/bin/echo", "arg1", "arg2", "arg3" ], provider => posix, } $ puppet apply test.pp Error: Parameter command failed on Exec[Test03]: Command must be a String, got value of class Array at /home/stefan/test.pp:1 So without the help of the shellescape function (which I strangely never saw in the wild before) I basically give everyone with access to hiera data root-rights as a bonus (If I happen to use hiera data to generate command line arguments). I guess the sane approach would be to add a feature request to allow passing an array as a command parameter which in turn would run ruby's exec with an array as well, bypassing the shell. -- Stefan -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/56A964E2.7010203%40taunusstein.net. For more options, visit https://groups.google.com/d/optout.
