NXOS 平台选项

Cisco NXOS 支持多种连接。此页面提供了有关 Ansible 中每种连接的工作原理以及如何使用它的详细信息。

可用连接

CLI

NX-API

协议

SSH

HTTP(S)

凭据

如果存在,则使用 SSH 密钥/SSH 代理

如果使用密码,则接受 -u myuser -k

如果存在,则使用 HTTPS 证书

间接访问

通过堡垒机(跳板主机)

通过 Web 代理

连接设置

ansible_connection

ansible.netcommon.network_cli

ansible_connection

ansible.netcommon.httpapi

启用模式
(权限提升)
自 2.5.3 版起支持

支持:使用 ansible_become: true 以及 ansible_become_method: enableansible_become_password:

NX-API 不支持

返回的数据格式

stdout[0].

stdout[0].messages[0].

ansible_connection: local 已弃用。请改用 ansible_connection: ansible.netcommon.network_cliansible_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 型号

另请参阅

设置超时选项