That's working. 

But I guess here i have to hard code the command. Is there any way where i 
can pass any command at the run time to execute on the remote host. 

I saw the raw module and below are the behavior i got. 

working:

/usr/bin/ansible test -m raw -a netstat -tanpu | /bin/awk '{print $5}' | 
sort -n | uniq -cd | sort -n | awk '$1 > 3{printf ("%5s\t%s\n", $1, $2)}'

Not working

/usr/bin/ansible test -m raw -a netstat -an | grep :8080



On Wednesday, September 21, 2016 at 1:21:29 PM UTC+5:30, Kai Stian Olstad 
wrote:
>
> On 20.09.2016 10:00, DHAVAL JAISWAL wrote: 
> > Ansible version: ansible 1.9.2 
> > 
> > I am unable to execute following command from shell module neither 
> > through 
> > playbook. It could be any command at the run time. While reading found 
> > $,% 
> > need the escape string. Tried but not working. Is there any way/module 
> > through which i can run any command on the remote host and no need to 
> > explicitly define any escape string. 
> > 
> > 
> > netstat -tanpu | awk '{{print $5}}' | sort -n | uniq -cd | sort -n | 
> > awk 
> > '$1 > 3{{printf ("%5s\t%s\n", $1, $2)}}' 
> > 
> > With shell module: 
> > 
> > /usr/bin/ansible remote_host -m shell -a 'netstat -tanpu | awk '{{print 
> > $5}}' | sort -n | uniq -cd | sort -n | awk '$1 > 3{{printf 
> > ("%5s\t%s\n", 
> > $1, $2)}}'' 
> > -bash: syntax error near unexpected token `(' 
> > 
> > 
> > With playbook. 
> > 
> > - hosts: "{{ip}}" 
> >   gather_facts: no 
> >   remote_user: remote 
> >   connection: local 
> > 
> >   tasks: 
> >    - name: Running command 
> >      shell: netstat -tanpu | awk '{{print $5}}' | sort -n | uniq -cd | 
> > sort 
> > -n | awk '$1 > 3{{printf ("%5s\t%s\n", $1, $2)}}' 
> > 
> > fatal: [192.168.4.7] => Failed to template netstat -tanpu | awk 
> > '{{print 
> > $5}}' | sort -n | uniq -cd | sort -n | awk '$1 > 3{{printf 
> > ("%5s\t%s\n", 
> > $1, $2)}}': template error while templating string: unexpected char 
> > u'$' at 
> > 30 
>
> Ansible thinks {{ }} is a template, you need to just use { }, so this 
> should work: 
>
> - name: Running command 
>    shell: netstat -tanpu | awk '{print $5}' | sort -n | uniq -cd | sort 
> -n | awk '$1 > 3{printf ("%5s\t%s\n",$1, $2)}' 
>
> -- 
> Kai Stian Olstad 
>

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/f5a06c26-f449-40e5-ab82-85dec4e81d17%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to