https://github.com/netascode/terraform-fmc-nac-fmc
Terraform Cisco FMC Network-as-Code Module
https://github.com/netascode/terraform-fmc-nac-fmc
cisco fmc iac nac network-as-code security terraform terraform-module
Last synced: about 1 month ago
JSON representation
Terraform Cisco FMC Network-as-Code Module
- Host: GitHub
- URL: https://github.com/netascode/terraform-fmc-nac-fmc
- Owner: netascode
- License: apache-2.0
- Created: 2024-01-29T14:33:20.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-04-09T14:14:42.000Z (about 2 months ago)
- Last Synced: 2025-04-09T15:28:45.036Z (about 2 months ago)
- Topics: cisco, fmc, iac, nac, network-as-code, security, terraform, terraform-module
- Language: HCL
- Homepage: https://registry.terraform.io/modules/netascode/nac-fmc/fmc
- Size: 251 KB
- Stars: 1
- Watchers: 8
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Terraform Network-as-Code Cisco FMC Module
A Terraform module to configure Cisco FMC.
## Usage
This module supports an inventory driven approach, where a complete FMC configuration or parts of it are either modeled in one or more YAML files or natively using Terraform variables.
## Examples
Configuring a Network-group Object using YAML:
#### `data/existing.yaml`
```yaml
---
existing:
fmc:
domains:
- name: Global
objects:
networks:
- name: any-ipv4
```#### `data/fmc.yaml`
```yaml
---
fmc:
domains:
- name: Globalobjects:
hosts:
- name: MyHost1
ip: 10.10.10.10
- name: MyHost2
ip: 20.20.20.20network_groups:
- name: MyNetworkGroup1
objects:
- MyHost1
- any-ipv4
- name: MyNetworkGroup2
objects:
- MyNetworkGroup1
- MyHost2
```#### `main.tf`
```hcl
module "fmc" {
source = "netascode/nac-fmc/fmc"
version = ">=0.0.1"yaml_directories = ["data"]
}
```## Requirements
| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >=1.5.7 |
| [fmc](#requirement\_fmc) | 2.0.0-beta2 |
| [local](#requirement\_local) | >=2.3.0 |
| [utils](#requirement\_utils) | >=0.2.5 |
## Inputs| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [manage\_deployment](#input\_manage\_deployment) | Enables support for FTD deployments | `bool` | `true` | 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 |
| [yaml\_directories](#input\_yaml\_directories) | List of paths to YAML directories. | `list(string)` |[| no |
"data"
]
| [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. |
## Providers| Name | Version |
|------|---------|
| [fmc](#provider\_fmc) | 2.0.0-beta2 |
| [local](#provider\_local) | >=2.3.0 |
| [utils](#provider\_utils) | >=0.2.5 |
## Resources| Name | Type |
|------|------|
| [fmc_access_control_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/access_control_policy) | resource |
| [fmc_application_filters.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/application_filters) | resource |
| [fmc_bfd_template.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/bfd_template) | resource |
| [fmc_device.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device) | resource |
| [fmc_device_bfd.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_bfd) | resource |
| [fmc_device_bgp.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_bgp) | resource |
| [fmc_device_bgp_general_settings.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_bgp_general_settings) | resource |
| [fmc_device_cluster.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_cluster) | resource |
| [fmc_device_deploy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_deploy) | resource |
| [fmc_device_etherchannel_interface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_etherchannel_interface) | resource |
| [fmc_device_ha_pair.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_ha_pair) | resource |
| [fmc_device_ha_pair_monitoring.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_ha_pair_monitoring) | resource |
| [fmc_device_ipv4_static_route.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_ipv4_static_route) | resource |
| [fmc_device_physical_interface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_physical_interface) | resource |
| [fmc_device_subinterface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_subinterface) | resource |
| [fmc_device_vrf.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_vrf) | resource |
| [fmc_device_vrf_ipv4_static_route.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/device_vrf_ipv4_static_route) | resource |
| [fmc_dynamic_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/dynamic_objects) | resource |
| [fmc_extended_acl.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/extended_acl) | resource |
| [fmc_file_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/file_policy) | resource |
| [fmc_fqdn_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/fqdn_objects) | resource |
| [fmc_ftd_nat_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/ftd_nat_policy) | resource |
| [fmc_hosts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/hosts) | resource |
| [fmc_icmpv4_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/icmpv4_objects) | resource |
| [fmc_intrusion_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/intrusion_policy) | resource |
| [fmc_network_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/network_groups) | resource |
| [fmc_networks.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/networks) | resource |
| [fmc_policy_assignment.access_control_policy](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/policy_assignment) | resource |
| [fmc_port_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/port_groups) | resource |
| [fmc_ports.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/ports) | resource |
| [fmc_prefilter_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/prefilter_policy) | resource |
| [fmc_ranges.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/ranges) | resource |
| [fmc_security_zones.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/security_zones) | resource |
| [fmc_sgts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/sgts) | resource |
| [fmc_smart_license.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/smart_license) | resource |
| [fmc_standard_acl.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/standard_acl) | resource |
| [fmc_time_ranges.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/time_ranges) | resource |
| [fmc_tunnel_zones.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/tunnel_zones) | resource |
| [fmc_url_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/url_groups) | resource |
| [fmc_urls.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/urls) | resource |
| [fmc_vlan_tag_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/vlan_tag_groups) | resource |
| [fmc_vlan_tags.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/resources/vlan_tags) | resource |
| [local_sensitive_file.defaults](https://registry.terraform.io/providers/hashicorp/local/latest/docs/resources/sensitive_file) | resource |
| [fmc_access_control_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/access_control_policy) | data source |
| [fmc_application_business_relevances.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_business_relevances) | data source |
| [fmc_application_categories.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_categories) | data source |
| [fmc_application_filters.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_filters) | data source |
| [fmc_application_risks.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_risks) | data source |
| [fmc_application_tags.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_tags) | data source |
| [fmc_application_types.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/application_types) | data source |
| [fmc_applications.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/applications) | data source |
| [fmc_bfd_template.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/bfd_template) | data source |
| [fmc_device.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device) | data source |
| [fmc_device_bfd.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_bfd) | data source |
| [fmc_device_bgp_general_settings.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_bgp_general_settings) | data source |
| [fmc_device_cluster.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_cluster) | data source |
| [fmc_device_etherchannel_interface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_etherchannel_interface) | data source |
| [fmc_device_ha_pair.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_ha_pair) | data source |
| [fmc_device_physical_interface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_physical_interface) | data source |
| [fmc_device_subinterface.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_subinterface) | data source |
| [fmc_device_vrf.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/device_vrf) | data source |
| [fmc_dynamic_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/dynamic_objects) | data source |
| [fmc_extended_acl.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/extended_acl) | data source |
| [fmc_file_categories.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/file_categories) | data source |
| [fmc_file_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/file_policy) | data source |
| [fmc_file_types.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/file_types) | data source |
| [fmc_fqdn_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/fqdn_objects) | data source |
| [fmc_ftd_nat_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/ftd_nat_policy) | data source |
| [fmc_hosts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/hosts) | data source |
| [fmc_icmpv4_objects.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/icmpv4_objects) | data source |
| [fmc_intrusion_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/intrusion_policy) | data source |
| [fmc_networks.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/networks) | data source |
| [fmc_port_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/port_groups) | data source |
| [fmc_ports.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/ports) | data source |
| [fmc_prefilter_policy.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/prefilter_policy) | data source |
| [fmc_ranges.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/ranges) | data source |
| [fmc_security_zones.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/security_zones) | data source |
| [fmc_sgts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/sgts) | data source |
| [fmc_snmp_alerts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/snmp_alerts) | data source |
| [fmc_standard_acl.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/standard_acl) | data source |
| [fmc_syslog_alerts.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/syslog_alerts) | data source |
| [fmc_time_ranges.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/time_ranges) | data source |
| [fmc_tunnel_zones.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/tunnel_zones) | data source |
| [fmc_url_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/url_groups) | data source |
| [fmc_urls.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/urls) | data source |
| [fmc_variable_set.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/variable_set) | data source |
| [fmc_vlan_tag_groups.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/vlan_tag_groups) | data source |
| [fmc_vlan_tags.module](https://registry.terraform.io/providers/CiscoDevNet/fmc/2.0.0-beta2/docs/data-sources/vlan_tags) | data source |
| [utils_yaml_merge.defaults](https://registry.terraform.io/providers/netascode/utils/latest/docs/data-sources/yaml_merge) | data source |
| [utils_yaml_merge.model](https://registry.terraform.io/providers/netascode/utils/latest/docs/data-sources/yaml_merge) | data source |
## ModulesNo modules.