Terraform in a Week #Day3
WHAT IS TERRAFORM IN DEVOPS
Terraform is a platform-agnostic tool that allows you to build, change, and version infrastructure securely and efficiently. Terraform is an open-source tool and a Hashicorp-developed multi- cloud, infrastructure-as-code solution that uses the declarative Hashicorp Configuration Language. It aids in the management of established, well-known service providers such as GCP and AWS and specialized in-house solutions.
In addition, it collaborates with "providers" to manage external resources (public cloud infrastructure, private cloud infrastructure, software as a service, network appliances, and platform). Terraform - An Infrastructure as Code
Tool or IAC Tool Since its release, terraform has grown in popularity as the first multi-cloud "Infrastructure as Code" technology. Another reason for its widespread use is the straightforward syntax for ensuring modularity.
Terraform, classified as an IAC tool, works by treating and managing infrastructure in the same way that software code is treated and managed.
How does Terraform work?
Users may define their whole infrastructure using only configuration files. Terraform parses the code and transforms it into an application programming interface or API call to the resource provider.
In addition, as terraform is open source, developers can add to its functionality by writing new plugins or compiling different versions of existing ones.
Terraform Core and Terraform Plugins are the two most significant components of Terraform.
The reading and interpolation of resource plan implementations, resource graphs, state management features, and configuration files are handled by Terraform Core. Compiled binaries built in the Go programming language make up Core. Every compiled binary serves as a command-line interface CLI for interacting with plugins via remote procedure calls (RPC).
Terraform Plugins are in charge of determining resources for certain Terraform services. This includes establishing trust with infrastructure providers and setting up the libraries used to make API requests.
Provisioned plugins are used to run commands against a specific resource.
Features of Terraform
Importance of Terraform
Important concepts about Terraform
Providers- Providers are in charge of developing and managing resources. Terraform is built on a plugin architecture. The provider binary will be downloaded and installed using the 'init' command.
Resources- These are small building pieces with one or more infrastructure components.
Modules- Modules are used as containers for many resources that may be utilized to organize configuration code and make it reusable. At least one module,
Recommended by LinkedIn
known as the 'root' module, is present in every Terraform configuration.
Input variables- The input variables are used to define your infrastructure's configuration values. If it needs to be modified, these values can be utilized frequently without recalling every occurrence.
Output Variables- After the infrastructure has been deployed, the output
variables are utilized to obtain information about it. These can be used for providing information to the server, such as IP addresses.
Important Terraform Commands
Terraform Remote- You can run Terraform in a remote environment with shared access to the state to share infrastructure responsibility. The remote backend' is the name for this capability.
Terraform version-This displays the Terraform version currently installed on the system. This might be useful for identifying problems or new methods to work with the current version.
Terraform plan- Generates a plan for executing Terraform. To ensure that the Terraform state is up-to-date, it reads the current state of any pre-existing remote objects. Then, the current state is compared to the previous state, and the differences are calculated.
Terraform fmt- This converts Terraform configuration files to a standard format. Because the canonical format may differ slightly between Terraform versions, this command should be executed on modules after upgraded Terraform.
Terraform providers- These display information about the configuration provider needs in the current working directory.
Terraform validate-This command verifies that a configuration is internally consistent and syntactically correct.
Terraform apply-The actions specified in a Terraform plan are carried out using this command.
Terraform destroy-This command destroys all remote objects handled by a Terraform setup.
Terraform import- Terraform may import infrastructure that already exists. This command enables us to put resources developed through other means under Terraform's control.
Terraform show- Converts a state or plan file into a human-readable format. This can be used to check a plan to see if the planned operations are as expected or to check the present condition.
Terraform output-The value of an output variable is extracted from the state file by Terraform output. The result will show all of the root module's outcomes with no further arguments.