liveBook · Manning

Provisioning tool

As explained in Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform

Software that creates and prepares infrastructure resources and manages their infrastructure-level dependencies.

When a network change may affect a server, a provisioning tool reveals the dependency before applying it. It creates and manages infrastructure resources for a provider such as a public cloud, data center, or hosted monitoring service, and can preview expected changes through a dry run. section 1.5.2

Use provisioning tools to manage infrastructure relationships while keeping neighboring responsibilities distinct:

  • Select a provider-specific tool, such as AWS CloudFormation, or a multiprovider tool, such as Terraform or Pulumi. section 1.5.2
  • Keep configuration management focused on packages and server attributes; its integrations do not necessarily make it the best provisioning tool because dependency handling differs. section 1.5.3
  • Coordinate provisioning with image building: configure and test the server, capture a versioned image, then provision servers from that image. section 1.5.4

Previewing and refactoring infrastructure

A Terraform dry run can show that a network change may also change a dependent server. During refactoring, existing IAM resources can be imported, checked against separated configuration, and removed from the monolith’s state so one resource is not managed twice. section 1.5.2 section 10.2.1

Table 1.1 Examples of provisioning tools and providers (view table figure)

Tool

Provider

AWS CloudFormation

Amazon Web Services

Google Cloud Deployment Manager

Google Cloud Platform

Azure Resource Manager

Microsoft Azure

Bicep

Microsoft Azure

HashiCorp Terraform

Various (for a complete list, see www.terraform.io/docs/providers/index.html)

Pulumi

Various (for a complete list, see www.pulumi.com/docs/intro/cloud-providers/)

AWS Cloud Development Kit

Amazon Web Services

Kubernetes manifests

Kubernetes (container orchestrator)

Compare provisioning tools with their supported providers, including cloud-specific, multiprovider, and Kubernetes options. section 1.5.2

How Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform covers it

How deep it goes
Defines providers, resource dependencies, and dry runs, but does not detail tool-specific implementation design.
Examples
Uses network-server dependencies, provider tool tables, Terraform plans, and IAM resource import during refactoring.
What you can do after
Operate Terraform to preview changes, import existing resources, and verify configuration matches active infrastructure.
How it connects
Connects infrastructure as code with providers, infrastructure dependencies, configuration management, image building, and dry runs.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform. The section links point to the parts of the book it draws on.