A domain-specific language (DSL) is a computer language specialized for a particular application domain or purpose. Its specialization can express complex domain tasks with less effort than a general-purpose language, but requires learning an additional language. section 25.2.2
Terraform uses HashiCorp Configuration Language (HCL), a DSL for defining and provisioning infrastructure. Terraform configuration files declare the desired end state; Terraform Core compares it with the state file and takes the required steps. section 25.2.2 section 25.3
Key distinctions include:
- HCL is specialized for Terraform infrastructure provisioning, unlike general-purpose languages such as Python and Go. section 25.2.2
- Puppet uses a declarative DSL to define infrastructure state, while Chef uses a procedural approach. section 25.3
Infrastructure provisioning
Terraform can use HCL configuration to provision and manage resources through providers, including Cisco Catalyst Center, ACI, and IOS XE integrations. section 25.2.2
Figure 25.6 Provisioning resources with Terraform. Configuration files are processed byTerraform Core to interact with various providers (i.e., public cloud providers) and manage infrastructure resources while maintaining state information in the state file.
Trace how Terraform configuration files pass through Terraform Core to providers while infrastructure state is maintained. section 25.2.2









