Virtual machine creation is a standard task for a systems administrator or engineer, whether it's for development, production or to simply test out a new product. The issue with the standard virtual machine creation process is that it's extremely manual.
With manual deployments naturally comes the increased possibility for human error, but it is avoidable. With an automation tool such as Terraform, those human errors become less probable and help build Linux automation workflows.
Infrastructure-as-code, or software-defined infrastructure with a tool such as Terraform, enables you to create any type of infrastructure, including VMs, as code. You can then store the code in some sort of source control, such as GitHub. Once that code is stored in source control, it's the code that the infrastructure-as-code deployment always uses, so no real chance of configuration drift or human errors.
With the code in source control, you can work with peers and collaborate on functions and code changes that make the VM deployment faster and more consistent. It's a great tool for teams big and small. When teams collaborate using an infrastructure-as-code tool, it's proven that the reliability and stability of what infrastructure is being created goes up, primarily because that human error factor is mostly taken out.
Say you must create a new deployment to go out to a client, which has pretty standard deployment requirements: a Linux VM with 8 GB of RAM and 100 GB of hard disk space. This scenario, by itself, seems straightforward, but how about if you need to do this 10 or 20 times?
This is where these deployments start to be cumbersome. With a tool such as Terraform, you can automate those 10 or 20 VMs at the same time and deploy all of them. This video tutorial covers the basic functions to get started with Terraform and how to establish Linux automation workflows.