# \[Network modules\] Managed nodes requirements about python

**URL:** <https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308>\
**Category:** Ansible Project\
**Created:** [August 10, 2018, 10:50am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308 "2018-08-10T10:50:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Niko](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Niko](https://forum.ansible.com/u/Niko)\
**Post date:** [August 10, 2018, 10:50am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/1 "2018-08-10T10:50:09Z")

</div>

## Question

- Could we use network modules(such a ios\_command) on the network nodes that cannot execute python?

## Purpose

- I want to manage the network nodes(cisco) that do not have python by ansible playbook.

ex. “ios\_command: show version”,  
“using NAPALM[https://github.com/napalm-automation/napalm](https://github.com/napalm-automation/napalm)”,  
…etc

## Details

- In the official documents say we need python2 or python3 as follows.  
[https://docs.ansible.com/ansible/latest/installation\_guide/intro\_installation.html#managed-node-requirements](https://docs.ansible.com/ansible/latest/installation_guide/intro_installation.html#managed-node-requirements)

- On the otherhand, following “Execution on the Control Node” chapter supposed to mentioned we don’t need python for managed nodes in case of using network modules.  
[https://docs.ansible.com/ansible/latest/network/getting\_started/network\_differences.html](https://docs.ansible.com/ansible/latest/network/getting_started/network_differences.html)

- I wonder which documentation is correct. So I want to understand accurate requirements of managed node especially python execution.

Thanks,  
Niko.

---

<div class="post-metadata">

**Author:** ![Jonathan\_Lozada\_De\_L](https://avatars.discourse-cdn.com/v4/letter/j/eb8c5e/32.png) [@Jonathan\_Lozada\_De\_L](https://forum.ansible.com/u/Jonathan_Lozada_De_L)\
**Post date:** [August 10, 2018, 10:53am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/2 "2018-08-10T10:53:06Z")

</div>

checkout this blog [https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5](https://www.ansible.com/blog/coming-soon-networking-features-in-ansible-2.5) and [https://docs.ansible.com/ansible/latest/network/index.html](https://docs.ansible.com/ansible/latest/network/index.html)

They are all correct. Its just done different for networking.

---

<div class="post-metadata">

**Author:** ![Niko](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Niko](https://forum.ansible.com/u/Niko)\
**Post date:** [August 10, 2018, 11:22am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/3 "2018-08-10T11:22:32Z")

</div>

Thanks a lot. I understood the differences and we don’t need python for managed nodes when we user network modules.

Just my curiosity, in case of Linux, what is the benefits of copying and executing python codes on Linux hosts?  
It supposed that ansible can manage non-network nodes such a Linux hosts like network nodes(local execution), but is this reasonable idea?

2018年8月10日金曜日 19時53分27秒 UTC+9 Jonathan Lozada De La Matta:

---

<div class="post-metadata">

**Author:** ![Jonathan\_Lozada\_De\_L](https://avatars.discourse-cdn.com/v4/letter/j/eb8c5e/32.png) [@Jonathan\_Lozada\_De\_L](https://forum.ansible.com/u/Jonathan_Lozada_De_L)\
**Post date:** [August 10, 2018, 11:29am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/4 "2018-08-10T11:29:49Z")

</div>

as far as I know is to speed up the process instead of doing the work from another location, it copies the files locally and runs the scripts.

---

<div class="post-metadata">

**Author:** ![Niko](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Niko](https://forum.ansible.com/u/Niko)\
**Post date:** [August 10, 2018, 11:37am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/5 "2018-08-10T11:37:48Z")

</div>

thanks again!  
I appreciated your swift answer.

---

<div class="post-metadata">

**Author:** ![callmeshawn](https://avatars.discourse-cdn.com/v4/letter/c/cab0a1/32.png) [@callmeshawn](https://forum.ansible.com/u/callmeshawn)\
**Post date:** [August 12, 2018, 2:29am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/6 "2018-08-12T02:29:36Z")

</div>

I would also add that the raw module works great for devices on which you don’t get a full environment.  
For example, in my environment we have a EMC Data Domain.  
When logged in, I don’t have a traditional shell, and the shell I use doesn’t expose Python to me… if it is present at all.

I use the ‘raw’ module to execute commands on it.

---

<div class="post-metadata">

**Author:** ![Niko](https://avatars.discourse-cdn.com/v4/letter/n/91b2a8/32.png) [@Niko](https://forum.ansible.com/u/Niko)\
**Post date:** [August 15, 2018, 1:37am UTC](https://forum.ansible.com/t/network-modules-managed-nodes-requirements-about-python/28308/7 "2018-08-15T01:37:41Z")

</div>

Thank you for your additional information.

I want to use return values of network modules to verify its status.

At first I planed to use raw module, but I find that return values of raw module is difficult to be parsed.  
So I plan to use network modules mainly instead of raw module now.

2018年8月12日日曜日 11時29分36秒 UTC+9 Shawn Singh:
