"the python module napalm is required"
penguin02007 opened this issue · 5 comments
penguin02007 commented
Got "the python module napalm is required" when calling napalm_install_config, confirmed all the required python modules are installed along with the correct path in ansible.cfg.
$ pip freeze|grep -iE 'napalm|ansible'
ansible==2.6.3
napalm==2.3.2
napalm-ansible==0.10.0
$ grep -iE 'library|action_plugins' ansible.cfg
library = /usr/local/lib/python2.7/site-packages/napalm_ansible/modules
action_plugins = /usr/local/lib/python2.7/site-packages/napalm_ansible/plugins/action
The full traceback is:
File "/var/folders/hp/zbcbp7wd5zqgcph8b5bbr3f42vxdjf/T/ansible_Maungo/ansible_module_napalm_install_config.py", line 171, in <module>
from napalm_base import get_network_driver # noqa
fatal: [mgmtsw2-bos1]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"archive_file": null,
"candidate_file": null,
"commit_changes": false,
"config": null,
"config_file": "configs/mgmtsw2-bos1",
"dev_os": "ios",
"diff_file": "configs/mgmtsw2-bos1.diff",
"get_diffs": true,
"hostname": "mgmtsw2-bos1",
"optional_args": null,
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"provider": {
"hostname": "mgmtsw2-bos1",
"password": null,
"timeout": 60,
"username": "ansible"
},
"replace_config": false,
"timeout": 60,
"username": "labuser"
}
},
"msg": "the python module napalm is required"
}
ktbyers commented
Are you sure you are using the right Python?
Make sure you are setting the following:
ansible_connection=local
ansible_python_interpreter=/path/to/python
As shown here these are inventory variables.
penguin02007 commented
Yes, the path is /usr/local/bin/python
. I tried re-installing the napalm module but no luck
$ which python
/usr/local/bin/python
$ pip install napalm
Collecting napalm
Requirement already satisfied: pyeapi in /usr/local/lib/python2.7/site-packages (from napalm) (0.8.2)
Requirement already satisfied: pynxos==0.0.3 in /usr/local/lib/python2.7/site-packages (from napalm) (0.0.3)
Requirement already satisfied: pyIOSXR>=0.53 in /usr/local/lib/python2.7/site-packages (from napalm) (0.53)
Requirement already satisfied: jinja2 in /usr/local/lib/python2.7/site-packages (from napalm) (2.10)
Requirement already satisfied: junos-eznc>=2.1.5 in /usr/local/lib/python2.7/site-packages (from napalm) (2.2.0)
Requirement already satisfied: netaddr in /usr/local/lib/python2.7/site-packages (from napalm) (0.7.19)
Requirement already satisfied: textfsm in /usr/local/lib/python2.7/site-packages (from napalm) (0.4.1)
Requirement already satisfied: netmiko>=2.1.1 in /usr/local/lib/python2.7/site-packages (from napalm) (2.2.2)
Requirement already satisfied: future in /usr/local/lib/python2.7/site-packages (from napalm) (0.16.0)
Requirement already satisfied: pyYAML in /usr/local/lib/python2.7/site-packages (from napalm) (3.13)
Requirement already satisfied: scp in /usr/local/lib/python2.7/site-packages (from napalm) (0.11.0)
Requirement already satisfied: cffi>=1.11.3 in /usr/local/lib/python2.7/site-packages (from napalm) (1.11.5)
Requirement already satisfied: setuptools>=38.4.0 in /usr/local/lib/python2.7/site-packages (from napalm) (39.2.0)
Requirement already satisfied: requests>=2.7.0 in /usr/local/lib/python2.7/site-packages (from pynxos==0.0.3->napalm) (2.19.1)
Requirement already satisfied: lxml>=3.2.4 in /usr/local/lib/python2.7/site-packages (from pyIOSXR>=0.53->napalm) (4.2.4)
Requirement already satisfied: MarkupSafe>=0.23 in /usr/local/lib/python2.7/site-packages (from jinja2->napalm) (1.0)
Requirement already satisfied: paramiko>=1.15.2 in /usr/local/lib/python2.7/site-packages (from junos-eznc>=2.1.5->napalm) (2.4.1)
Requirement already satisfied: six in /usr/local/lib/python2.7/site-packages (from junos-eznc>=2.1.5->napalm) (1.11.0)
Requirement already satisfied: ncclient>=0.5.4 in /usr/local/lib/python2.7/site-packages (from junos-eznc>=2.1.5->napalm) (0.6.2)
Requirement already satisfied: pyserial in /usr/local/lib/python2.7/site-packages (from junos-eznc>=2.1.5->napalm) (3.4)
Requirement already satisfied: ipaddress in /usr/local/lib/python2.7/site-packages (from netmiko>=2.1.1->napalm) (1.0.22)
Requirement already satisfied: enum34 in /usr/local/lib/python2.7/site-packages (from netmiko>=2.1.1->napalm) (1.1.6)
Requirement already satisfied: pycparser in /usr/local/lib/python2.7/site-packages (from cffi>=1.11.3->napalm) (2.18)
Requirement already satisfied: idna<2.8,>=2.5 in /usr/local/lib/python2.7/site-packages (from requests>=2.7.0->pynxos==0.0.3->napalm) (2.7)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python2.7/site-packages (from requests>=2.7.0->pynxos==0.0.3->napalm) (2018.8.24)
Requirement already satisfied: urllib3<1.24,>=1.21.1 in /usr/local/lib/python2.7/site-packages (from requests>=2.7.0->pynxos==0.0.3->napalm) (1.23)
Requirement already satisfied: chardet<3.1.0,>=3.0.2 in /usr/local/lib/python2.7/site-packages (from requests>=2.7.0->pynxos==0.0.3->napalm) (3.0.4)
Requirement already satisfied: pynacl>=1.0.1 in /usr/local/lib/python2.7/site-packages (from paramiko>=1.15.2->junos-eznc>=2.1.5->napalm) (1.2.1)
Requirement already satisfied: cryptography>=1.5 in /usr/local/lib/python2.7/site-packages (from paramiko>=1.15.2->junos-eznc>=2.1.5->napalm) (2.3.1)
Requirement already satisfied: bcrypt>=3.1.3 in /usr/local/lib/python2.7/site-packages (from paramiko>=1.15.2->junos-eznc>=2.1.5->napalm) (3.1.4)
Requirement already satisfied: pyasn1>=0.1.7 in /usr/local/lib/python2.7/site-packages (from paramiko>=1.15.2->junos-eznc>=2.1.5->napalm) (0.4.4)
Requirement already satisfied: selectors2>=2.0.1 in /usr/local/lib/python2.7/site-packages (from ncclient>=0.5.4->junos-eznc>=2.1.5->napalm) (2.0.1)
Requirement already satisfied: asn1crypto>=0.21.0 in /usr/local/lib/python2.7/site-packages (from cryptography>=1.5->paramiko>=1.15.2->junos-eznc>=2.1.5->napalm) (0.24.0)
Installing collected packages: napalm
Successfully installed napalm-2.3.2
$ which napalm
/usr/local/bin/napalm
$ which napalm-ansible
/usr/local/bin/napalm-ansible
$ which python
/usr/local/bin/python
$ napalm
usage: napalm [-h] [--user USER] [--password PASSWORD] --vendor VENDOR
[--optional_args OPTIONAL_ARGS] [--debug]
hostname {configure,call,validate} ...
napalm: error: too few arguments
$ napalm-ansible
To ensure Ansible can use the NAPALM modules you will have
to add the following configurtion to your Ansible configuration
file (ansible.cfg):
[defaults]
library = /usr/local/lib/python2.7/site-packages/napalm_ansible/modules
action_plugins = /usr/local/lib/python2.7/site-packages/napalm_ansible/plugins/action
For more details on ansible's configuration file visit:
https://docs.ansible.com/ansible/latest/intro_configuration.html
$ ls -alh /usr/local/lib/python2.7/site-packages/napalm
total 32
drwxr-xr-x 13 foo admin 442B Sep 6 10:24 .
drwxr-xr-x 122 foo admin 4.1K Sep 6 10:12 ..
-rw-r--r-- 1 foo admin 112B Sep 6 10:12 _SUPPORTED_DRIVERS.py
-rw-r--r-- 1 foo admin 326B Sep 6 10:12 _SUPPORTED_DRIVERS.pyc
-rw-r--r-- 1 foo admin 661B Sep 6 10:12 __init__.py
-rw-r--r-- 1 foo admin 848B Sep 6 10:12 __init__.pyc
drwxr-xr-x 23 foo admin 782B Sep 6 10:12 base
drwxr-xr-x 8 foo admin 272B Sep 6 10:12 eos
drwxr-xr-x 8 foo admin 272B Sep 6 10:12 ios
drwxr-xr-x 9 foo admin 306B Sep 6 10:12 iosxr
drwxr-xr-x 10 foo admin 340B Sep 6 10:12 junos
drwxr-xr-x 8 foo admin 272B Sep 6 10:12 nxos
drwxr-xr-x 8 foo admin 272B Sep 6 10:12 nxos_ssh
ktbyers commented
In an Ansible context which python
is not particularly useful.
Can you post the output of ansible-playbook -vvv
(running on the playbook that is failing)?
penguin02007 commented
Yes -
$ ansible-playbook ios.yml -CD -vvv
ansible-playbook 2.6.3
config file = /Users/penguin02007/Documents/rgithub/autoraknet/ansible.cfg
configured module search path = [u'/usr/local/lib/python2.7/site-packages/napalm_ansible/modules']
ansible python module location = /usr/local/lib/python2.7/site-packages/ansible
executable location = /usr/local/bin/ansible-playbook
python version = 2.7.15 (default, Jun 17 2018, 13:05:56) [GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.39.2)]
Using /Users/penguin02007/Documents/rgithub/autoraknet/ansible.cfg as config file
Parsed /Users/penguin02007/Documents/rgithub/autoraknet/inventory/dev inventory source with ini plugin
___________________
< PLAYBOOK: ios.yml >
-------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
1 plays in ios.yml
_____________________________________
< PLAY [Generate configuration files] >
-------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
META: ran handlers
_______________________________
< TASK [ios : Generate configs] >
-------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
task path: /Users/penguin02007/Documents/rgithub/autoraknet/roles/ios/tasks/main.yml:3
<mgmtsw1-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw1-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185 `" && echo ansible-tmp-1536255495.23-151861826469185="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185 `" ) && sleep 0'
<mgmtsw2-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw2-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605 `" && echo ansible-tmp-1536255495.26-133269631076605="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605 `" ) && sleep 0'
<mgmtsw3-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw3-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542 `" && echo ansible-tmp-1536255495.3-149925628172542="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542 `" ) && sleep 0'
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/stat.py
<mgmtsw1-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpxNepzQ TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/stat.py
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/stat.py
<mgmtsw1-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/stat.py && sleep 0'
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/stat.py
<mgmtsw3-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpWRASoP TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/stat.py
<mgmtsw2-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpjWkYhX TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/stat.py
<mgmtsw3-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/stat.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/stat.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/stat.py && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/stat.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/stat.py && sleep 0'
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/file.py
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/file.py
Using module file /usr/local/lib/python2.7/site-packages/ansible/modules/files/file.py
<mgmtsw1-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpC7TnFq TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/file.py
<mgmtsw3-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpPWM6Jn TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/file.py
<mgmtsw2-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpMlnkd6 TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/file.py
<mgmtsw1-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/file.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/file.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/file.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/file.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/file.py && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/file.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.3-149925628172542/ > /dev/null 2>&1 && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.23-151861826469185/ > /dev/null 2>&1 && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255495.26-133269631076605/ > /dev/null 2>&1 && sleep 0'
ok: [mgmtsw3-pek1] => {
"changed": false,
"checksum": "8e8b21533d581c49d694afe191850472e5d3ee35",
"dest": "configs/mgmtsw3-pek1",
"diff": {
"after": {
"path": "configs/mgmtsw3-pek1"
},
"before": {
"path": "configs/mgmtsw3-pek1"
}
},
"gid": 679754705,
"group": "679754705",
"invocation": {
"module_args": {
"_diff_peek": null,
"_original_basename": "main.j2",
"attributes": null,
"backup": null,
"content": null,
"delimiter": null,
"dest": "configs/mgmtsw3-pek1",
"directory_mode": null,
"follow": false,
"force": false,
"group": null,
"mode": null,
"owner": null,
"path": "configs/mgmtsw3-pek1",
"recurse": false,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": null,
"state": "file",
"unsafe_writes": null
}
},
"mode": "0644",
"owner": "penguin02007",
"path": "configs/mgmtsw3-pek1",
"size": 2461,
"state": "file",
"uid": 96384558
}
ok: [mgmtsw1-pek1] => {
"changed": false,
"checksum": "731a620c6d62e28263e878414f4d4625ff1baa4d",
"dest": "configs/mgmtsw1-pek1",
"diff": {
"after": {
"path": "configs/mgmtsw1-pek1"
},
"before": {
"path": "configs/mgmtsw1-pek1"
}
},
"gid": 679754705,
"group": "679754705",
"invocation": {
"module_args": {
"_diff_peek": null,
"_original_basename": "main.j2",
"attributes": null,
"backup": null,
"content": null,
"delimiter": null,
"dest": "configs/mgmtsw1-pek1",
"directory_mode": null,
"follow": false,
"force": false,
"group": null,
"mode": null,
"owner": null,
"path": "configs/mgmtsw1-pek1",
"recurse": false,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": null,
"state": "file",
"unsafe_writes": null
}
},
"mode": "0644",
"owner": "penguin02007",
"path": "configs/mgmtsw1-pek1",
"size": 6038,
"state": "file",
"uid": 96384558
}
ok: [mgmtsw2-pek1] => {
"changed": false,
"checksum": "3fba788d9906d636dbbcabd19b5884bfd318261d",
"dest": "configs/mgmtsw2-pek1",
"diff": {
"after": {
"path": "configs/mgmtsw2-pek1"
},
"before": {
"path": "configs/mgmtsw2-pek1"
}
},
"gid": 679754705,
"group": "679754705",
"invocation": {
"module_args": {
"_diff_peek": null,
"_original_basename": "main.j2",
"attributes": null,
"backup": null,
"content": null,
"delimiter": null,
"dest": "configs/mgmtsw2-pek1",
"directory_mode": null,
"follow": false,
"force": false,
"group": null,
"mode": null,
"owner": null,
"path": "configs/mgmtsw2-pek1",
"recurse": false,
"regexp": null,
"remote_src": null,
"selevel": null,
"serole": null,
"setype": null,
"seuser": null,
"src": null,
"state": "file",
"unsafe_writes": null
}
},
"mode": "0644",
"owner": "penguin02007",
"path": "configs/mgmtsw2-pek1",
"size": 4533,
"state": "file",
"uid": 96384558
}
___________________________________________
< TASK [ios : Install Config and save diff] >
-------------------------------------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
task path: /Users/penguin02007/Documents/rgithub/autoraknet/roles/ios/tasks/main.yml:8
<mgmtsw1-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw1-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw2-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw2-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297 `" && echo ansible-tmp-1536255496.09-178733999876297="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297 `" ) && sleep 0'
<mgmtsw3-pek1> ESTABLISH LOCAL CONNECTION FOR USER: penguin02007
<mgmtsw3-pek1> EXEC /bin/sh -c 'echo ~penguin02007 && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021 `" && echo ansible-tmp-1536255496.1-87378251434021="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021 `" ) && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '( umask 77 && mkdir -p "` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026 `" && echo ansible-tmp-1536255496.12-268192579736026="` echo /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026 `" ) && sleep 0'
Using module file /usr/local/lib/python2.7/site-packages/napalm_ansible/modules/napalm_install_config.py
Using module file /usr/local/lib/python2.7/site-packages/napalm_ansible/modules/napalm_install_config.py
Using module file /usr/local/lib/python2.7/site-packages/napalm_ansible/modules/napalm_install_config.py
<mgmtsw1-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpbtwXgs TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/napalm_install_config.py
<mgmtsw1-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/napalm_install_config.py && sleep 0'
<mgmtsw2-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpcSQ4Q9 TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/napalm_install_config.py
<mgmtsw3-pek1> PUT /Users/penguin02007/.ansible/tmp/ansible-local-18946NscfNH/tmpkwReuk TO /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/napalm_install_config.py
<mgmtsw2-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/napalm_install_config.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c 'chmod u+x /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/ /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/napalm_install_config.py && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/napalm_install_config.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/napalm_install_config.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/napalm_install_config.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/ > /dev/null 2>&1 && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/ > /dev/null 2>&1 && sleep 0'
<mgmtsw1-pek1> EXEC /bin/sh -c 'rm -f -r /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/ > /dev/null 2>&1 && sleep 0'
The full traceback is:
File "/var/folders/hp/zbcbp7wd5zqgcph8b5bbr3f42vxdjf/T/ansible_pR9Pt7/ansible_module_napalm_install_config.py", line 171, in <module>
from napalm_base import get_network_driver # noqa
fatal: [mgmtsw3-pek1]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"archive_file": null,
"candidate_file": null,
"commit_changes": false,
"config": null,
"config_file": "configs/mgmtsw3-pek1",
"dev_os": "ios",
"diff_file": "configs/mgmtsw3-pek1.diff",
"get_diffs": true,
"hostname": "mgmtsw3-pek1",
"optional_args": null,
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"provider": {
"hostname": "mgmtsw3-pek1",
"password": null,
"timeout": 60,
"username": "ansible"
},
"replace_config": false,
"timeout": 60,
"username": "labuser"
}
},
"msg": "the python module napalm is required"
}
The full traceback is:
File "/var/folders/hp/zbcbp7wd5zqgcph8b5bbr3f42vxdjf/T/ansible_Izy8O4/ansible_module_napalm_install_config.py", line 171, in <module>
from napalm_base import get_network_driver # noqa
fatal: [mgmtsw1-pek1]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"archive_file": null,
"candidate_file": null,
"commit_changes": false,
"config": null,
"config_file": "configs/mgmtsw1-pek1",
"dev_os": "ios",
"diff_file": "configs/mgmtsw1-pek1.diff",
"get_diffs": true,
"hostname": "mgmtsw1-pek1",
"optional_args": null,
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"provider": {
"hostname": "mgmtsw1-pek1",
"password": null,
"timeout": 60,
"username": "ansible"
},
"replace_config": false,
"timeout": 60,
"username": "labuser"
}
},
"msg": "the python module napalm is required"
}
The full traceback is:
File "/var/folders/hp/zbcbp7wd5zqgcph8b5bbr3f42vxdjf/T/ansible_0gjWPN/ansible_module_napalm_install_config.py", line 171, in <module>
from napalm_base import get_network_driver # noqa
fatal: [mgmtsw2-pek1]: FAILED! => {
"changed": false,
"invocation": {
"module_args": {
"archive_file": null,
"candidate_file": null,
"commit_changes": false,
"config": null,
"config_file": "configs/mgmtsw2-pek1",
"dev_os": "ios",
"diff_file": "configs/mgmtsw2-pek1.diff",
"get_diffs": true,
"hostname": "mgmtsw2-pek1",
"optional_args": null,
"password": "VALUE_SPECIFIED_IN_NO_LOG_PARAMETER",
"provider": {
"hostname": "mgmtsw2-pek1",
"password": null,
"timeout": 60,
"username": "ansible"
},
"replace_config": false,
"timeout": 60,
"username": "labuser"
}
},
"msg": "the python module napalm is required"
}
to retry, use: --limit @/Users/penguin02007/Documents/rgithub/autoraknet/ios.retry
____________
< PLAY RECAP >
------------
\ ^__^
\ (oo)\_______
(__)\ )\/\
||----w |
|| ||
mgmtsw1-pek1 : ok=1 changed=0 unreachable=0 failed=1
mgmtsw2-pek1 : ok=1 changed=0 unreachable=0 failed=1
mgmtsw3-pek1 : ok=1 changed=0 unreachable=0 failed=1
ktbyers commented
Yes, you can see it is using /usr/bin/python:
<mgmtsw1-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.09-178733999876297/napalm_install_config.py && sleep 0'
<mgmtsw2-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.1-87378251434021/napalm_install_config.py && sleep 0'
<mgmtsw3-pek1> EXEC /bin/sh -c '/usr/bin/python /Users/penguin02007/.ansible/tmp/ansible-tmp-1536255496.12-268192579736026/napalm_install_config.py && sleep 0'