Thank you!
This is also working:
/usr/sbin/nginx -V 2>&1 | /bin/grep -oP "http-proxy-temp-path=.*?\s" |
/usr/bin/awk -F\'=\' {\'print $2\'}
среда, 19 марта 2014 г., 17:31:45 UTC+4 пользователь jcbollinger написал:
>
>
>
> On Wednesday, March 19, 2014 4:03:26 AM UTC-5, Roman Alekseev wrote:
>>
>> Hi,
>>
>> I created fact but it doesn't work. What did I make wrong?
>>
>>
>>
>>
>>
>>
>>
>> *# nginx_arg.rbFacter.add("nginx_arg") do setcode do
>> Facter::Util::Resolution.exec("/usr/sbin/nginx -V 2> /etc/puppet/nginx.args
>> | /bin/cat /etc/puppet/nginx.args | /usr/bin/awk
>> -F'--http-proxy-temp-path=' {'print $2'} | /usr/bin/awk {'print $1'} |
>> /bin/grep '\/'") endend*
>>
>>
>
> There are a couple of weird things about that, but before that:
>
> - What does "doesn't work" mean, specifically?
> - Where is the file located on the master?
> - Do you have pluginsync enabled on the agents?
> - Is the fact value output by "facter -p" on agent nodes that have
> synced the fact?
>
> With respect to the command itself,
>
> - which output stream from /usr/sbin/nginx are you trying to use?
> (You are using stderr (via a temp file), but you are also piping stdout
> and
> ignoring it.)
> - the unquoted curly braces in the command will be parsed by the
> shell, not passed to awk.
> - Setting awk's field separator to '--http-proxy-temp-path=' will
> probably not do anything sensible if there are other options listed after
> than one in nginx's output.
> - If you need a temp file, you should put it in /tmp or /var/tmp and
> give it an unpredictable name. But you don't need one for what it looks
> like you're trying to do.
>
> Were I writing a command to do what I *think* yours is trying to do, it
> would look something like this:
>
> Facter::Util::Resolution.exec(
> "/usr/sbin/nginx -V 2>&1 1>/dev/null | /bin/sed -n
> 's,.*--http-proxy-temp-path=\(/\S\+\).*,\1,p'"
> )
>
> That pipes the stderr stream of the nginx command into sed, discarding the
> stdout. Sed then filters out everything except any strings of
> non-whitespace beginning with a slash character (/) and directly following
> the string "--http-proxy-temp-path=". The output does not include the
> "--http-proxy-temp-path=". If you need to allow for whitespace either
> before or after the '=' character then the pattern can be adjusted to
> achieve that.
>
>
> John
>
>
--
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/04d6b5ad-2c4b-4166-bebb-a2044fe85c4f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.