{
    "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."
        }
    ]
}
