Watch on-demand: Try IaC (Infrastructure as Code). Justin Mitchel, founder of Coding for Entrepreneurs, and Udemy instructor created a series focusing on five popular IaC tools to help you configure and manage your infrastructure.
Infrastructure as code, or IaC allows you to automate the provisioning of your cloud resources using simple configuration files. In this on-demand series, learn the fundamentals of the leading IaC tools by deploying a Docker-based Python web application using each one.
All Linode LIVE! series are self-paced, allowing you to watch the entire series end-to-end, or pick the sections that are most interesting to you and your project. This series is now available on-demand.
Terraform excels at handling what needs to be provisioned more than how it needs to be configured. In other words, Terraform connects to Cloud APIs (such as Linode) to provision the actual virtual machine(s) (as well as other services) your project may need. Terraform *can* then configure these provisioned resources, but the configuration is not its strength. Terraform can be combined to great effect with Ansible, Chef, Puppet Bolt, or Salt to manage & maintain provisioned resource internal configuration
Ansible excels at managing the configuration state of virtual machines through yaml configuration files. Ansible can be used to automate the configuration to as little as 1 machine which includes even your local machine. Ansible runs agentless and configures resources primarily through a secure shell (SSH).
Chef excels at managing the configuration state of virtual machines through ruby configuration files. Chef is one of the most mature IaC tools, but requires a significant amount of configuration and some familiarity with programming. Chef has a master-client architecture (aka not agenetless) and requires at least 3 different machines to run effectively: Infra Server, Workstation, and a Node.
Puppet Bolt is a modern approach to managing the state of virtual machines through yaml or puppet files. Bolt is the agentless version of Puppetlabs. Bolt configures resources through a secure shell (SSH) and leverages minimal bash scripts to handle configuration this approach resembles something closer to manual configuration and allows for a wide range of flexibility and speed.
Salt (SaltStack) is a modern approach to managing the state of virtual machines through yaml-based salt state files. Salt state files (sls) are mostly declarative yaml files that allow for inline commands through the Jinja templating engine. This approach allows for flexible configuration and rapid runtime context switching.