First of all, I will say that this is probably a sledgehammer approach
to accomplishing your goal. Many modern platforms have, in their
default /etc/profile, support for /etc/profile.d/ that works like a
run-parts for building the environment. The Puppet Agent package
installs its own $PATH entry in this way on both CentOS and Ubuntu.
So you're probably better off managing a file in that location so that
it gets auto-included by /etc/profile.
Secondly, your problem is variable interpolation. Because you're using
double quotes around the command and onlyif statments, Puppet is
interpolating $PATH to be (probably) an empty string, rather than a
literal "$PATH". You need to either change to single quotes (and then
adjust the quoting around your grep match string) or escape the $ with \$.
Finally, if you were to use the above solution, it's still a bit of a
sledgehammer because you're not really modeling state. The best
solution would actually be to use something like Augeas to examine the
file and modify as necessary. "exec / onlyif" and "exec / unless" are
kind of measures-of-last-resort in the Puppet world (now, having said
that, I must admit that I'm completely guilty of using it myself on
occasion :p ).
On 2016-06-29 12:19 PM, Andrew Morgan wrote:
I want to check if pattern exist in a file and then if it doesn;t echo
the pattern in the file.
class environment {
exec{'one_run':
path=>'/usr/bin',
command => "echo 'PATH=$PATH:/opt/logstash/bin' >>
/etc/profile",
onlyif => "grep -qFx 'PATH=$PATH:/opt/logstash/bin'
/etc/profile",
}
}
The above doesn't work,can anyone help with this please? I want to
check if PATH=$PATH:/opt/logstash/bin' exists in /etc/profile and if
not input it only once.
--
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
<mailto:puppet-users+unsubscr...@googlegroups.com>.
To view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/1b36ab52-29ee-455f-8efb-8d647fbd6c9c%40googlegroups.com
<https://groups.google.com/d/msgid/puppet-users/1b36ab52-29ee-455f-8efb-8d647fbd6c9c%40googlegroups.com?utm_medium=email&utm_source=footer>.
For more options, visit https://groups.google.com/d/optout.
--
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/5773F8D6.7080703%40alter3d.ca.
For more options, visit https://groups.google.com/d/optout.