Hello Bernd, thanks for the answer, but when i trie to escape the quotes 
puppet print this error message:

err: 
/Stage[main]/Logger/Logger::Append_if_no_such_line7[modify.profile.redhat]/Exec[Line7]/returns:
 
change from notrun to 0 failed: /bin/echo 'PROMPT_COMMAND\='history' >> 
'/etc/profile' returned 1 instead of one of [0] at 
/etc/puppet/modules/logger/manifests/init.pp:69 

im going to read about augeas.

Em terça-feira, 11 de dezembro de 2012 14h18min29s UTC-2, badamowicz 
escreveu:
>
> First, put the whole line in single quotes in order to prevent Puppet from 
> trying to resolve all the dollar signs as variables. Then simply escape all 
> quotes within your string. I didn’t test it, but this should work:
>
>  
>
> line =>  ‘PROMPT_COMMAND=\'history -a >(tee -a ~/.bash_history | logger -t 
> \"USER: $USER[$$] SSH: $SSH_CONNECTION $PWD\")\'’ ,
>
>  
>
> As an alternative you might want to have a look at Puppet’s Augeas.
>
>  
>
> Bernd
>
>  
>
> *From:* [email protected] <javascript:> [mailto:
> [email protected] <javascript:>] *On Behalf Of *Javier Arduini
> *Sent:* Dienstag, 11. Dezember 2012 13:16
> *To:* [email protected] <javascript:>
> *Subject:* [Puppet Users] exec command
>
>  
>
> Hi all, im trying to make a module to add a line at the end of the 
> /etc/profile file to redirect all the loggins to a remote server. It´s 
> something like this:
>
>  
>
> class syslog {
>
>  
>
> define append_if_no_such_line ($file, $line) {
>
>              exec { "Line1" :
>
>              command => "/bin/echo '$line' >> '$file'",
>
>              unless => "/bin/grep -Fx '$line' '$file'",
>
>              alias => "Line1",
>
>              }
>
> }
>
>  
>
> append_if_no_such_line {
>
>          "modify.profile.redhat" :
>
>           file => "/etc/profile",
>
>           line =>  " PROMPT_COMMAND='history -a >(tee -a ~/.bash_history | 
> logger -t "USER: $USER[$$] SSH: $SSH_CONNECTION $PWD")'  ",
>
>          }
>
>  
>
> }
>
>  
>
> The problem is that the line i want to add have a lot of " " and ' ' and 
> puppet cut the line and give me an error of execution. 
>
> Anyone know how to pass this line: PROMPT_COMMAND='history -a >(tee -a 
> ~/.bash_history | logger -t "USER: $USER[$$] SSH: $SSH_CONNECTION $PWD")'  
> as a single line in puppet? 
>
> Thanks a lot, sorry about my english
>
> Javier Arduini
>
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To view this discussion on the web visit 
> https://groups.google.com/d/msg/puppet-users/-/q6R6cMcysRIJ.
> To post to this group, send email to [email protected]<javascript:>
> .
> To unsubscribe from this group, send email to 
> [email protected] <javascript:>.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/puppet-users/-/U_CLzTGH0jIJ.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to