NXOS 平台选项
Cisco NXOS 支持多种连接。此页面提供了有关 Ansible 中每种连接的工作原理以及如何使用它的详细信息。
可用连接
CLI |
NX-API |
|
---|---|---|
协议 |
SSH |
HTTP(S) |
凭据 |
如果存在,则使用 SSH 密钥/SSH 代理 如果使用密码,则接受 |
如果存在,则使用 HTTPS 证书 |
间接访问 |
通过堡垒机(跳板主机) |
通过 Web 代理 |
连接设置 |
|
|
启用模式 |
支持:使用 |
NX-API 不支持 |
返回的数据格式 |
|
|
ansible_connection: local
已弃用。请改用 ansible_connection: ansible.netcommon.network_cli
或 ansible_connection: ansible.netcommon.httpapi
。
在 Ansible 中使用 CLI
CLI 示例 group_vars/nxos.yml
ansible_connection: ansible.netcommon.network_cli
ansible_network_os: cisco.nxos.nxos
ansible_user: myuser
ansible_password: !vault...
ansible_become: true
ansible_become_method: enable
ansible_become_password: !vault...
ansible_ssh_common_args: '-o ProxyCommand="ssh -W %h:%p -q bastion01"'
如果您使用 SSH 密钥(包括 ssh 代理),则可以删除
ansible_password
配置。如果您直接访问主机(不通过堡垒机/跳板主机),则可以删除
ansible_ssh_common_args
配置。如果您通过堡垒机/跳板主机访问主机,则不能在
ProxyCommand
指令中包含 SSH 密码。为了防止机密泄露(例如在ps
输出中),SSH 不支持通过环境变量提供密码。
CLI 任务示例
- name: Backup current switch config (nxos)
cisco.nxos.nxos_config:
backup: yes
register: backup_nxos_location
when: ansible_network_os == 'cisco.nxos.nxos'
在 Ansible 中使用 NX-API
启用 NX-API
在您可以使用 NX-API 连接到交换机之前,必须启用 NX-API。要通过 Ansible 在新的交换机上启用 NX-API,请通过 CLI 连接使用 nxos_nxapi
模块。像上面 CLI 示例中一样设置 group_vars/nxos.yml,然后运行如下 playbook 任务
- name: Enable NX-API
cisco.nxos.nxos_nxapi:
enable_http: yes
enable_https: yes
when: ansible_network_os == 'cisco.nxos.nxos'
要详细了解启用 HTTP/HTTPS 和本地 http 的选项,请参阅 nxos_nxapi 模块文档。
启用 NX-API 后,更改您的 group_vars/nxos.yml
以使用 NX-API 连接。
NX-API 示例 group_vars/nxos.yml
ansible_connection: ansible.netcommon.httpapi
ansible_network_os: cisco.nxos.nxos
ansible_user: myuser
ansible_password: !vault...
proxy_env:
http_proxy: http://proxy.example.com:8080
如果您直接访问主机(不通过 Web 代理),则可以删除
proxy_env
配置。如果您通过使用
https
的 Web 代理访问主机,请将http_proxy
更改为https_proxy
。
NX-API 任务示例
- name: Backup current switch config (nxos)
cisco.nxos.nxos_config:
backup: yes
register: backup_nxos_location
environment: "{{ proxy_env }}"
when: ansible_network_os == 'cisco.nxos.nxos'
在此示例中,在 group_vars
中定义的 proxy_env
变量传递到任务中使用的模块的 environment
选项。
警告
切勿以纯文本形式存储密码。我们建议使用 SSH 密钥来验证 SSH 连接。Ansible 支持 ssh 代理来管理您的 SSH 密钥。如果您必须使用密码来验证 SSH 连接,我们建议使用 Ansible Vault 对其进行加密。
思科 Nexus 平台支持矩阵
以下平台和软件版本已通过思科认证,可与此版本的 Ansible 协同工作。
支持的平台 |
最低 NX-OS 版本 |
---|---|
Cisco Nexus N3k |
7.0(3)I2(5) 及更高版本 |
Cisco Nexus N9k |
7.0(3)I2(5) 及更高版本 |
Cisco Nexus N5k |
7.3(0)N1(1) 及更高版本 |
Cisco Nexus N6k |
7.3(0)N1(1) 及更高版本 |
Cisco Nexus N7k |
7.3(0)D1(1) 及更高版本 |
Cisco Nexus MDS |
8.4(1) 及更高版本(有关兼容性,请参阅各个模块文档) |
平台 |
描述 |
---|---|
N3k |
支持包括 N30xx、N31xx 和 N35xx 型号 |
N5k |
支持包括所有 N5xxx 型号 |
N6k |
支持包括所有 N6xxx 型号 |
N7k |
支持包括所有 N7xxx 型号 |
N9k |
支持包括所有 N9xxx 型号 |
MDS |
支持包括所有 MDS 9xxx 型号 |
另请参阅