api: YAML JSON TOON Database
version: 1.0.0
format: json
dataset:
  slug: infrastructure-as-code-tools
  title: Infrastructure as Code Tools
  description: Tools for managing infrastructure through code.
  summary: "Tools for describing infrastructure as code: provisioning tools such as Terraform, CloudFormation and Pulumi, and configuration-management tools such as Ansible, Puppet and Chef, plus newer and adjacent entries such as OpenTofu, the AWS CDK, Crossplane, Packer and Bicep."
  use_when:
    - You are choosing between provisioning and configuration-management tools.
    - You need the category of an unfamiliar IaC tool.
  caveats:
    - Provisioning (creating resources) and configuration management (setting up what runs on them) overlap but are different jobs.
    - Licenses and project governance of some tools have changed; check current terms when standardizing.
  related:
    - cicd-pipeline-stages
    - virtualization-concepts
    - cloud-service-models
    - container-orchestration
  category: DevOps
  category_slug: devops
  tags: devops,iac,terraform
  view_count: 0
  entry_count: 12
  fields:
    - section: data
      field: tool
      type: string
      example: Terraform
    - section: data
      field: type
      type: string
      example: Declarative
    - section: data
      field: description
      type: string
      example: Open-source tool for provisioning cloud resourc…
data:
  - tool: Terraform
    type: Declarative
    description: Open-source tool for provisioning cloud resources with HCL.
  - tool: CloudFormation
    type: Declarative
    description: AWS service for modeling and provisioning resources.
  - tool: Ansible
    type: Procedural
    description: Agentless configuration management and orchestration.
  - tool: Puppet
    type: Declarative
    description: Configuration management using a domain-specific language.
  - tool: Chef
    type: Procedural
    description: Infrastructure automation using Ruby-based cookbooks.
  - tool: Pulumi
    type: Declarative
    description: Infrastructure as code using general-purpose programming languages.
  - tool: OpenTofu
    type: Provisioning
    description: Open-source fork of Terraform maintained under the Linux Foundation, using the same configuration language.
  - tool: AWS CDK
    type: Provisioning
    description: Defines AWS infrastructure in general-purpose languages and synthesizes CloudFormation templates.
  - tool: Crossplane
    type: Provisioning
    description: Manages cloud resources through Kubernetes custom resources and controllers.
  - tool: Bicep
    type: Provisioning
    description: A declarative language for Azure resources that compiles to ARM templates.
  - tool: Packer
    type: Image building
    description: Builds identical machine images for multiple platforms from one configuration.
  - tool: SaltStack
    type: Configuration management
    description: Remote execution and configuration management using a master-minion or agentless model.
