You can write a custom module and send the "output_cardTable" to it. Have
your business logic in that custom module. You can read more about module
development here -
https://docs.ansible.com/ansible/latest/dev_guide/developing_modules_general.html#developing-modules-general

On Thu, Jun 11, 2020 at 9:42 PM Srinivas Naram <[email protected]>
wrote:

> Did you try to initiate Ansible playbook from Python code and capture
> Ansible output directly in the Python code ?
>
> You can use os module for it. Try using os.system('ansible-playbook
> <playbookname')
>
> in the playbook add another play
>
> debug:
>    var: output_cardTable
>
> HTH
>
> On Thu, Jun 11, 2020 at 9:22 PM 'Douglas R Christensen' via Ansible
> Project <[email protected]> wrote:
>
>> Hello,
>>
>> I have posted the following at
>> https://stackoverflow.com/questions/62309274/how-to-have-ansible-send-output-to-a-python-function-in-a-custom-library,
>> but I wanted to share here to get some more insight.
>>
>> I am a newbie at working with Ansible and Python and I am attempting to
>> develop an Ansible playbook that will query several Cisco ASR5500's running
>> current iOS software for CLI output of various show commands. I would like
>> to take that output and send it to a python function in a custom library
>> which will apply logic to see if the response from the ASR shows that it is
>> healthy or not. Currently, I am sending the Ansible output to a file with
>> the thought of having Python read the file and analyze each line. Here is a
>> snippet from my playbook:
>>
>> - name: show card table         # run "show card table" on node
>>   ios_command:
>>     commands:
>>       - show card table
>>   register: output_cardTable- name: send output_cardTable to file         # 
>> send "show card table" to file
>>   lineinfile:
>>     dest: /home/**my_user**/testoutput/{{ inventory_hostname }}_{{ my_time }}
>>     line: "{{ output_cardTable.stdout_lines }}"
>>     insertafter: EOF
>>
>> This snippet takes the output of "show card table" and sends it to a
>> timestamped file as a multi-dimensional array (not sure why it's formatted
>> like that, but that's another question for later). My first thought was to
>> have Ansible run the checks and then have Python read the generated files
>> for each node and apply its logic to determine the node's health.
>>
>>
>> However, I would like to know if there is a way for Ansible to send the
>> output of the task directly to a function in a imported Python library,
>> similar to how RobotFramework can invoke a Python function from a library
>> that has been declared. I do not know if such syntax exists, but Ansible is
>> better at maintaining connections to multiple nodes concurrently, and
>> RobotFramework is not the tool of choice for my organization.
>>
>>
>> So, how would I write the task that sends the "output_cardTable" content
>> to a python function, and how would I declare that function library in the
>> header of the playbook so Ansible can see and use it?
>>
>>
>> Any insight would be appreciated. Thank you.
>>
>> --
>> 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/6df3edc0-ac47-4c4d-92de-1ca1eadcd722o%40googlegroups.com
>> <https://groups.google.com/d/msgid/ansible-project/6df3edc0-ac47-4c4d-92de-1ca1eadcd722o%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
> --
> 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/CAG-N3P7tCdat2ordierVDh6DOzbRdUPZUEPnNKVMXMbrPGUkYw%40mail.gmail.com
> <https://groups.google.com/d/msgid/ansible-project/CAG-N3P7tCdat2ordierVDh6DOzbRdUPZUEPnNKVMXMbrPGUkYw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>


-- 
Thanks,
Abhijeet Kasurde

-- 
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/CAFwWkHr_jSXWhUHgc5SBk30j7YJ%3D4yHkPq27GEuxTEdX5gUw3w%40mail.gmail.com.

Reply via email to