It looks like I need to use a template for the task. But saving the screen output for the playbook run should be a very common task. Hope someone can write a module for doing this.
>>You have an invalid character in your group name, by the way. Change the dash to an underscore (probably). Yeah, you're correct. Thanks. Frank On Tuesday, December 6, 2022 at 4:13:36 PM UTC-5 [email protected] wrote: > You could change your dest to > dest: "/tmp/file-{{ inventory_hostname }}.txt" > and concatenate them all, but then they won't contain the host names. > If you don't like that, then you could register the ping results and loop > through them with a template… > > You have an invalid character in your group name, by the way. Change the > dash to an underscore (probably). > > On Tuesday, December 6, 2022 at 3:34:47 PM UTC-5 [email protected] > wrote: > >> >>What makes it weird? >> I wanted to save the ansible ping results to /tmp/file.txt so I can email >> out the result. >> >> After running the playbook, I just got following saved in /tmp/file.txt: >> >> {"ping": "pong", "failed": false, "changed": false} >> >> >>What were you expecting instead? >> >> I added a few lines in the playbook as: >> >> --- >> - hosts: test-vms >> tasks: >> - name: Ping vms in test-vms >> ansible.builtin.ping: >> register: ping_pong >> ignore_errors: True >> >> - name: Ping result >> ansible.builtin.ping: >> register: ping_screen >> >> - name: Ping the result to the screen >> ansible.builtin.debug: >> var: ping_screen >> >> >> >> - name: Copy the output result to /tmp/file.txt >> ansible.builtin.copy: >> content: "{{ ping_pong }}" >> dest: /tmp/file.txt >> >> When I ran it, the ping result would show on the screen as following and >> I would like to save following result to /tmp/file.txt: >> >> ... >> >> TASK [Ping the result to the screen] >> *********************************************************************************** >> ok: [test-vm01] => { >> "ping_screen": { >> "changed": false, >> "failed": false, >> "ping": "pong" >> } >> } >> ok: [test-vm02] => { >> "ping_screen": { >> "changed": false, >> "failed": false, >> "ping": "pong" >> } >> } >> ok: [test-vm03] => { >> "ping_screen": { >> "changed": false, >> "failed": false, >> "ping": "pong" >> } >> } >> >> .... >> >> >> >> >> On Tuesday, December 6, 2022 at 3:21:44 PM UTC-5 Matt Martz wrote: >> >>> Also, it helps when you clarify what you want to see, instead of "I got >>> this weird result". >>> >>> What makes it weird? What were you expecting instead? >>> >>> On Tue, Dec 6, 2022 at 2:09 PM Frank Ling <[email protected]> wrote: >>> >>>> Thanks for the reply. >>>> >>>> >> You're saving the result for each host to the same file. >>>> Yeah, you're right. I am not sure how to save the output in Ansible to >>>> the output in a file like in shell >> /tmp/file >>>> >>>> >>And there is something weird with the inventory you use... >>>> I had the inventory in /etc/ansible/hosts with: >>>> >>>> [test-vms] >>>> test-vm01 >>>> test-vm02 >>>> test-vm03 >>>> Frank >>>> >>>> On Tuesday, December 6, 2022 at 3:00:48 PM UTC-5 [email protected] >>>> wrote: >>>> >>>>> Several things here. >>>>> You're saving the result for each host to the same file. So you will >>>>> end up with just one result, from the last host. >>>>> And there is something weird with the inventory you use. Follow the >>>>> suggestion made by the code (use increased verbosity). >>>>> >>>>> >>>>> >>>>> On Tue, 6 Dec 2022 at 20:54, Frank Ling <[email protected]> wrote: >>>>> >>>>>> I need some helps for fixing the bug of saving the Ansible ping >>>>>> results to a local file. >>>>>> >>>>>> Appreciate your help. >>>>>> >>>>>> Thanks in advance. >>>>>> >>>>>> Frank >>>>>> >>>>>> After running the playbook, I got this weird result: >>>>>> >>>>>> cat /tmp/file.txt >>>>>> >>>>>> {"ping": "pong", "failed": false, "changed": false} >>>>>> >>>>>> ============================================ >>>>>> >>>>>> Here is the playbook: >>>>>> >>>>>> --- >>>>>> - hosts: test-vms >>>>>> tasks: >>>>>> - name: Ping vms in test-vms >>>>>> ansible.builtin.ping: >>>>>> register: ping_pong >>>>>> ignore_errors: True >>>>>> >>>>>> - name: Copy the output result to /tmp/file.txt >>>>>> ansible.builtin.copy: >>>>>> content: "{{ ping_pong }}" >>>>>> dest: /tmp/file.txt >>>>>> >>>>>> =================================================== >>>>>> >>>>>> $ ansible-playbook ping_email.yml >>>>>> [WARNING]: Invalid characters were found in group names but not >>>>>> replaced, use -vvvv to see details >>>>>> [WARNING]: Found both group and host with same name: localhost >>>>>> >>>>>> PLAY [test-vms] >>>>>> ******************************************************************************************************** >>>>>> >>>>>> TASK [Gathering Facts] >>>>>> ************************************************************************************************* >>>>>> ok: [test-vm03] >>>>>> ok: [test-vm02] >>>>>> ok: [test-vm01] >>>>>> >>>>>> TASK [Ping vms in test-vms] >>>>>> ******************************************************************************************** >>>>>> ok: [test-vm03] >>>>>> ok: [test-vm02] >>>>>> ok: [test-vm01] >>>>>> >>>>>> TASK [Copy the output result to /tmp/file.txt] >>>>>> ************************************************************************* >>>>>> changed: [test-vm01] >>>>>> changed: [test-vm02] >>>>>> changed: [test-vm03] >>>>>> >>>>>> PLAY RECAP >>>>>> ************************************************************************************************************* >>>>>> test-vm01 : ok=3 changed=1 unreachable=0 >>>>>> failed=0 skipped=0 rescued=0 ignored=0 >>>>>> test-vm02 : ok=3 changed=1 unreachable=0 >>>>>> failed=0 skipped=0 rescued=0 ignored=0 >>>>>> test-vm03 : ok=3 changed=1 unreachable=0 >>>>>> failed=0 skipped=0 rescued=0 ignored=0 >>>>>> >>>>>> >>>>>> -- >>>>>> 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 view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/ansible-project/15123a9a-fc1c-4b8b-8a0a-2f24cf9a06a6n%40googlegroups.com >>>>>> >>>>>> <https://groups.google.com/d/msgid/ansible-project/15123a9a-fc1c-4b8b-8a0a-2f24cf9a06a6n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>> -- >>>>> Sent from Gmail Mobile >>>>> >>>> -- >>>> 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 view this discussion on the web visit >>>> https://groups.google.com/d/msgid/ansible-project/783f270f-bf70-4614-9c16-94ba281bd33an%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/ansible-project/783f270f-bf70-4614-9c16-94ba281bd33an%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> >>> >>> -- >>> Matt Martz >>> @sivel >>> sivel.net >>> >> -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/c327b598-6cff-46c5-8349-8a528f3fe924n%40googlegroups.com.
