NXOS 平台选项
思科 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 版本 | 
|---|---|
| 思科 Nexus N3k | 7.0(3)I2(5) 及更高版本 | 
| 思科 Nexus N9k | 7.0(3)I2(5) 及更高版本 | 
| 思科 Nexus N5k | 7.3(0)N1(1) 及更高版本 | 
| 思科 Nexus N6k | 7.3(0)N1(1) 及更高版本 | 
| 思科 Nexus N7k | 7.3(0)D1(1) 及更高版本 | 
| 思科 Nexus MDS | 8.4(1) 及更高版本(请参阅各个模块文档以了解兼容性) | 
| 平台 | 描述 | 
|---|---|
| N3k | 支持包括 N30xx、N31xx 和 N35xx 型号 | 
| N5k | 支持包括所有 N5xxx 型号 | 
| N6k | 支持包括所有 N6xxx 型号 | 
| N7k | 支持包括所有 N7xxx 型号 | 
| N9k | 支持包括所有 N9xxx 型号 | 
| MDS | 支持包括所有 MDS 9xxx 型号 | 
另请参阅
