Skip to content

netascode/terraform-iosxr-nac-iosxr

Terraform Network-as-Code Cisco IOS-XR Module

A Terraform module to configure Cisco IOS-XR devices.

Usage

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

Examples

Configuring an IOS-XR hostname configuration using YAML:

system.nac.yaml

iosxr:
  devices:
    - name: router-1
      host: 1.2.3.4
      configuration:
        hostname: router-1

main.tf

module "iosxr" {
  source  = "netascode/nac-iosxr/iosxr"
  version = ">= 0.1.0"

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

Requirements

Name Version
terraform >= 1.8.0
iosxr >= 0.5.3
local >= 2.3.0
utils >= 0.2.6

Inputs

Name Description Type Default Required
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
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
iosxr_hostname.hostname resource
iosxr_service_timestamps.service_timestamps resource
local_sensitive_file.defaults resource
terraform_data.validation resource

Modules

No modules.