An open API service indexing awesome lists of open source software.

https://github.com/netascode/terraform-nso-nac-nso

Terraform Cisco NSO Network-as-Code Module
https://github.com/netascode/terraform-nso-nac-nso

cisco iac nac netascode network-as-code nso terraform terraform-module

Last synced: 4 months ago
JSON representation

Terraform Cisco NSO Network-as-Code Module

Awesome Lists containing this project

README

          

# 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`

```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`

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

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

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.8.0 |
| [nso](#requirement\_nso) | >= 0.2.1 |
| [utils](#requirement\_utils) | 1.1.0-beta3 |
## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [managed\_device\_groups](#input\_managed\_device\_groups) | List of device group names to be managed. By default all device groups will be managed. | `list(string)` | `[]` | no |
| [managed\_devices](#input\_managed\_devices) | List of device names to be managed. By default all devices will be managed. | `list(string)` | `[]` | no |
| [model](#input\_model) | As an alternative to YAML files, a native Terraform data structure can be provided as well. | `map(any)` | `{}` | no |
| [write\_default\_values\_file](#input\_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](#input\_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](#input\_yaml\_directories) | List of paths to YAML directories. | `list(string)` | `[]` | no |
| [yaml\_files](#input\_yaml\_files) | List of paths to YAML files. | `list(string)` | `[]` | no |
## Outputs

| Name | Description |
|------|-------------|
| [default\_values](#output\_default\_values) | All default values. |
| [model](#output\_model) | Full model. |
## Resources

| Name | Type |
|------|------|
| [nso_device.device](https://registry.terraform.io/providers/CiscoDevNet/nso/latest/docs/resources/device) | resource |
| [nso_device_group.device_group](https://registry.terraform.io/providers/CiscoDevNet/nso/latest/docs/resources/device_group) | resource |
| [nso_global_settings.global_settings](https://registry.terraform.io/providers/CiscoDevNet/nso/latest/docs/resources/global_settings) | resource |
## Modules

| Name | Source | Version |
|------|--------|---------|
| [model](#module\_model) | ./modules/model | n/a |