- hosts: localhost


  - name: fact command
       fact_command: echo "ps -ef|grep data"|sed 's~[^[:alnum:]/]\+~~g'|sed 

  - name: run command
    shell: "{{ fact_command }}"

ansible-playbook test.yml -v
Using /etc/ansible/ansible.cfg as config file
 [WARNING]: provided hosts list is empty, only localhost is available


TASK [setup] 
ok: [localhost]

TASK [fact command] 
ok: [localhost] => {"ansible_facts": {"fact_command": "echo \"ps -ef|grep 
data\"|sed 's~[^[:alnum:]/]\\+~~g'|sed \"s/$/$(date 
+\"%d_%m_%Y_%H_%M_%S\")/\""}, "changed": false}

TASK [run command] 
changed: [localhost] => {"changed": true, "cmd": "echo \"ps -ef|grep 
data\"|sed 's~[^[:alnum:]/]\\+~~g'|sed \"s/$/$(date 
+\"%d_%m_%Y_%H_%M_%S\")/\"", "delta": "0:00:00.002489", "end": "2018-04-16 
00:47:44.957419", "rc": 0, "start": "2018-04-16 00:47:44.954930", "stderr": 
"", "stdout": "psefgrepdata16_04_2018_00_47_44", "stdout_lines": [
"psefgrepdata16_04_2018_00_47_44"], "warnings": []}

localhost                  : ok=3    changed=1    unreachable=0    failed=0 

On Monday, April 9, 2018 at 8:41:02 AM UTC+2, Akash Agarwal wrote:
> Hi All,
> I need to execute complex shell commands on remote or local hosts. What is 
> the best way to this?
> I tried multiple ways. Either it is not passing Ansible syntax, or shell 
> script syntax
> Example:
> Suppose I want to execute this command
> echo "ps -ef|grep data"|sed 's~[^[:alnum:]/]\+~~g'|sed "s/$/$(date 
> +"%d_%m_%Y_%H_%M_%S")/"
> It gives following output on shell : 
> psefgrepdata09_04_2018_12_08_55
> But somehow I am not able to execute. Urgent help please ?
> Thanks,
> Akash

You received this message because you are subscribed to the Google Groups 
"Ansible Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to ansible-devel+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to