The user attribute just gets passed through to mixlib-shellout which sets Process.{euid,uid} to the user (most likely just setreuid(2) getting directly called by ruby). If chef-client itself is not running as root, this is unlikely to work -- it works going from root to other users because root can switch to anyone. The easiest solution is to run chef-client (or chef-solo) as root and to use sudo to invoke it: "sudo chef-client" If the client isn't running as root, then /etc/sudoers needs to be setup so that the user running chef-client can execute pip and fluentd as root with the NOPASSWD setting so that the user isn't prompted for a password. Trying to be this fine-grained is foolish, though, since once you've allowed 'pip install' you can probably backdoor python and get root on the box fairly easily. The user trying to do this install must, therefore, inherently be trusted, and so the easiest way to solve the problem is to run chef itself as root. On 5/26/13 2:36 PM, Cassiano Leal wrote: " type="cite"> |
Archive powered by MHonArc 2.6.16.