- hosts: localhost

  tasks:

  - name: fact command
    set_fact:
       fact_command: echo "ps -ef|grep data"|sed 's~[^[:alnum:]/]\+~~g'|sed 
"s/$/$(date 
+"%d_%m_%Y_%H_%M_%S")/"

  - 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

PLAY 
***************************************************************************

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": []}

PLAY RECAP 
*********************************************************************
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