A Terraform module to configure Cisco IOS-XE devices.
This module supports an inventory driven approach, where a complete IOS-XE configuration or parts of it are either modeled in one or more YAML files or natively using Terraform variables.
Configuring an IOS-XE system configuration using YAML:
iosxe:
devices:
- name: Switch1
host: 1.2.3.4
configuration:
system:
hostname: Switch1
mtu: 9198module "iosxe" {
source = "netascode/nac-iosxe/iosxe"
version = ">= 0.1.0"
yaml_files = ["system.nac.yaml"]
}| Name | Version |
|---|---|
| terraform | >= 1.8.0 |
| iosxe | = 0.10.2 |
| utils | = 1.1.0-beta3 |
| Name | Description | Type | Default | Required |
|---|---|---|---|---|
| device_transaction | Enable device transaction mode. This will group all changes into a single transaction. Only valid if NETCONF is used. | bool |
false |
no |
| 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 |
| save_config | Write changes to startup-config on all devices. | bool |
false |
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 |
| Name | Description |
|---|---|
| default_values | All default values. |
| model | Full model. |
| Name | Source | Version |
|---|---|---|
| model | ./modules/model | n/a |