已安装PyEZ运行Ansible Playbook仍报junos-eznc版本不足,求修复
解决Ansible Playbook的两个问题:PyEZ版本要求和弃用警告
一、解决junos-eznc(PyEZ)版本不足的问题
你遇到的错误提示说明当前安装的PyEZ版本不符合模块要求(需要>=2.1.7),或者Ansible没有找到正确安装的PyEZ包。可以按以下步骤排查解决:
第一步:检查当前PyEZ版本
在运行ansible-playbook的控制节点上执行命令,确认已安装版本:pip show junos-eznc # 若使用Python3环境,改用: pip3 show junos-eznc查看输出里的
Version字段,若小于2.1.7则需要升级。第二步:升级PyEZ到符合要求的版本
执行升级命令,直接指定最低版本要求:pip install --upgrade junos-eznc>=2.1.7 # Python3环境用: pip3 install --upgrade junos-eznc>=2.1.7第三步:确认Ansible使用的Python环境
有时候Ansible会调用系统默认Python,而你可能在虚拟环境或其他Python版本中安装了PyEZ。可以通过以下命令查看Ansible绑定的Python路径:ansible --version | grep python确保在该Python环境下已安装正确版本的PyEZ。如果是目标主机
cor-001需要安装PyEZ,可手动在目标主机执行上述pip命令,或者在playbook中添加安装PyEZ的任务。
二、解决hostfile选项的弃用警告
这个警告是因为Ansible 2.8版本后会移除[defaults]hostfile配置项,官方推荐改用inventory配置。有两种解决方式:
方法1:修改Ansible配置文件
- 找到你的Ansible配置文件,常见路径为
/etc/ansible/ansible.cfg或用户目录下的~/.ansible.cfg。 - 打开文件定位到
[defaults]区块,将原来的hostfile = /path/to/your/hosts替换为:
若没有该配置项,直接添加即可。inventory = /path/to/your/hosts
方法2:运行playbook时指定inventory文件
无需修改配置文件,每次运行playbook时通过-i参数指定inventory路径:
ansible-playbook -i /path/to/your/hosts simpletest.yml
(可选)临时屏蔽弃用警告
如果暂时不想调整配置,可在Ansible配置文件的[defaults]区块添加:
deprecation_warnings = False
但不推荐长期使用此方法,建议适配新版本配置规范,避免后续版本兼容问题。
内容的提问来源于stack exchange,提问作者farhad
相关产品推荐
相关产品推荐

