IBM Cloud Docs
Choosing your IaC tool

Choosing your IaC tool

The choice of IaC tool matters. Some tools are a better fit for the task in hand. Often the use of different tools for configuration management and provisioning is the most effective choice. The section Understanding Schematics features and IaC tools identifies the mapping of Ansible and Terraform, along with operators and Helm to related Schematics features.

But what is provisioning and configuration management?

What is Provisioning?

Provisioning is the process of setting up IT infrastructure. It can also refer to the steps needed to manage access to data and resources, and make them available to users and systems. If something is provisioned, the next step is configuration. Red Hat

Provisioning tools (including Terraform and Ansible) provision infrastructure such as servers (VMs), load balancers, databases, networking configuration, and so on. They leave configuration to configuration tools.

“Provisioning” often implies it is an initial task.

What is Configuration Management?

Configuration management is a systems engineering process for establishing and maintaining computer systems, servers, and software in a wanted, consistent performance state. Managing IT system configurations involves defining a system’s state like server configuration then building and maintaining those systems.

Config management tools install packages or software, manage software and configurations on existing provisioned servers, clusters, and infrastructure. Terraform and Ansible can be used for configuration management, along with Helm and Operators.

Config management usually happens repeatedly.

How to choose your IaC tool

Some tools are a better fit for the task in hand for provisioning or configuration management. The blog Infrastructure as Code: Chef, Ansible, Puppet, or Terraform? provides an overview of several popular open source IaC tools and summarizes their capabilities and relative strengths.

IBM Cloud uses Terraform and Ansible, and other open-source tools includes Red Hat OpenShift on IBM Cloud, Operators, and Helm to deliver IaC as a managed service. Rather than limiting you to a single tool, Schematics allow you to use the tool and approach that is best suited to the task. You declare the tasks that you want to run and Schematics run the tasks for you.

Understanding Schematics features and IaC tools

Review the tool descriptions to identify the Schematics feature that maps to the IaC capability you would like to use.

Open Source Projects
Logo Open-source project Actions Agents Workspaces IBM Catalog
Ansible Ansible is a configuration management and provisioning tool, similar to Chef and Puppet. It is designed to automate the configuration and management of environments, and deploy app workloads in the cloud. Check mark Check mark
Helm Helm is a Kubernetes package manager that uses Helm charts to define, install, and upgrade complex Kubernetes apps in an IBM Cloud Kubernetes Service cluster. Check mark
Operators Red Hat OpenShift on IBM Cloud are a convenient way to add and run community, Third party, and other services in a Red Hat OpenShift on IBM Cloud cluster. Check mark
Terraform Terraform is an open source project that specifies your cloud infrastructure resources and services by using a high-level scripting language. Check mark Check mark

Next steps

  • Learn more about the terminology used in Schematics.
  • Do you want to know how these open-source tools are used in Schematics? Explore these use cases.
  • Visit What is Infrastructure as Code? to understand more about Infrastructure as code and its best practices.