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 puppet-users+unsubscr...@googlegroups.com. 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.