Ubuntu下用Ansible连接Cisco NX-OS交换机遇临时目录错误求助
解决Ansible连接Cisco NX-OS v9.x时的临时目录创建与语法错误问题
核心修复步骤
1. 修正连接类型配置
Cisco NX-OS不能使用默认的SSH连接类型,必须在inventory文件中指定专用连接方式:
[ nxos_devices ] your_switch ansible_host=192.168.x.x ansible_network_os=nxos ansible_connection=network_cli ansible_user=your_username ansible_password=your_password
- 必须设置
ansible_connection=network_cli或ansible_connection=nxapi,默认连接方式不支持NX-OS的文件系统操作,会直接导致临时目录创建失败。
2. 配置正确的remote_tmp路径
- 先在NX-OS设备上手动创建临时目录:
switch# mkdir bootflash:/ansible_tmp
- 执行
dir bootflash:/ansible_tmp验证该目录的读写权限。 - 修改
ansible.cfg:
[defaults] remote_tmp = bootflash:/ansible_tmp
NX-OS不支持自动创建目录,必须确保路径已存在且权限正常。
3. 替换为NX-OS专用ping模块
普通ping模块是为通用主机设计的,在NX-OS上会触发语法错误,改用nxos_ping模块测试连通性:
ansible all -m nxos_ping -a "dest=127.0.0.1"
4. 升级Ansible版本
Ansible 2.10.8对NX-OS v9.x的兼容性存在局限,建议升级到2.12及以上版本(兼容Python3.10.6),修复旧版本的模块语法解析bug。
5. 开启调试定位细节
执行命令时添加-vvv参数获取详细日志,排查具体语法错误:
ansible all -m ping -vvv
从日志中提取Ansible发送的命令,对比NX-OS的语法规范定位问题。
内容的提问来源于stack exchange,提问作者network
相关产品推荐
相关产品推荐

