Skip to content

netascode/terraform-nso-nac-nso

Terraform Network-as-Code Cisco NSO Module

A Terraform module to configure Cisco NSO devices.

Usage

This module supports an inventory driven approach, where a complete NSO configuration or parts of it are either modeled in one or more YAML files or natively using Terraform variables.

Examples

Configuring an NSO device-group configuration using YAML:

system.nac.yaml

nso:
  url: http://1.2.3.4:8080
  configuration:
    device_groups:
      - name: group1
        device_name:
          - xrv9k-01
        ned_id: "cisco-iosxr-cli-7.6.6:cisco-iosxr-cli-7.6.6"

main.tf

module "nso" {
  source  = "netascode/nac-nso/nso"
  version = ">= 0.2.1"

  yaml_files = ["system.nac.yaml"]
}

Requirements

Name Version
terraform >= 1.8.0
nso >= 0.2.1
utils 1.1.0-beta3

Inputs

Name Description Type Default Required
managed_device_groups List of device group names to be managed. By default all device groups will be managed. list(string) [] no
managed_devices List of device names to be managed. By default all devices will be managed. list(string) [] no
model As an alternative to YAML files, a native Terraform data structure can be provided as well. map(any) {} no
write_default_values_file Write all default values to a YAML file. Value is a path pointing to the file to be created. string "" no
write_model_file Write the full model including all resolved templates to a single YAML file. Value is a path pointing to the file to be created. string "" no
yaml_directories List of paths to YAML directories. list(string) [] no
yaml_files List of paths to YAML files. list(string) [] no

Outputs

Name Description
default_values All default values.
model Full model.

Resources

Name Type
nso_device.device resource
nso_device_group.device_group resource
nso_global_settings.global_settings resource

Modules

Name Source Version
model ./modules/model n/a

Releases

No releases published

Packages

 
 
 

Contributors

Languages