Skip to content

Getting Started

Allen Robel edited this page May 20, 2022 · 3 revisions

What do I need to get started?

Nexus Dashboard (formerly DCNM) Controller

First, you'll need a Nexus Dashboard (formerly DCNM) controller. With that installed, you'll click on the Services tab and, under the Actions menu, select "Upload Service." In the popup, you'll click on the link where it says "Go to the CISCO DC App Center to view and download more services". In the DC App Center, search for "Fabric Controller" and download the app named Nexus Dashboard Fabric Controller. You can save it locally, or to an http server (it's about 2GB). Once saved, go back to the Actions menu, select Upload Service, and then select Remote (if saved to an http server) or Local (if saved to your local host). When the app is installed, click on Open. If the app launches, your controller is ready.

Library dependencies

Next, there are a couple library dependencies that ndfc-roles relies on.

cisco.dcnm Ansible Collection

The Ansible Roles in this repo require that the cisco.dcnm Collection be installed. A requirements.yml file is included in the top-level directory which will install this collection. Or you may do so explicitly. It's recommended to use requirements.yml as this file may be updated with other dependencies later.

Example using requirements.yml
ansible-galaxy collection install --requirements-file /path/to/this/repo/top-level/requirements.yml
Example using explicit Collection
ansible-galaxy collection install cisco.dcnm

jmespath

The Ansible Roles in this repo make extensive use of json_query() which requires that jmespath be installed. To install (preferably, you're running Ansible within a python virtual environment):

pip install jmespath

Ansible Custom Configuration

DCNM/NDFC requires increasing the default timeout for persistent connections from the default of 30 seconds to >= 1000 seconds. We have provided an ansible.cfg file with the requisite changes in this repo's top-level directory. If you would rather edit your existing ansible.cfg file (where ever it is), the changes are shown below.

[persistent_connection]
command_timeout=1800
connect_timeout=1800