{"id":26764,"date":"2022-02-15T06:44:13","date_gmt":"2022-02-15T06:44:13","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=26764"},"modified":"2022-04-13T16:57:10","modified_gmt":"2022-04-13T16:57:10","slug":"top-50-terraform-interview-questions-and-answers","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/top-50-terraform-interview-questions-and-answers\/","title":{"rendered":"Top 50 Terraform interview questions and answers"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"266\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo-1024x266.png\" alt=\"\" class=\"wp-image-26765\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo-1024x266.png 1024w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo-300x78.png 300w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo-768x200.png 768w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo-1536x400.png 1536w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2022\/02\/blog-hashicorp-terraform-logo.png 1714w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption><em><strong>Terraform<\/strong><\/em><\/figcaption><\/figure><\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"q1-are-callbacks-possible-with-terraform-on-azure\">Q1. Are callbacks possible with Terraform on Azure?<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">By using the Azure Event Hubs, callbacks are probable on Azure. Terraform\u2019s Azure supplier provides effortless functionality to users. Microsoft Azure Cloud Shell provides an already installed Terraform occurrence.<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q2-what-is-terraform-init\">Q2. What is Terraform init?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Terraform init is a control to initialize an operational index that contains Terraform pattern files. This control can be looped multiple times. It is the first command that should be run after writing the <span class=\"hljs-keyword\">new<\/span> Terraform design.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q3-what-is-terraform-d\">Q3. What is Terraform D?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Terraform D is a plugin used on most <span class=\"hljs-keyword\">in<\/span>-service systems and Windows. Terraform init by <span class=\"hljs-keyword\">default<\/span> searches next directories <span class=\"hljs-keyword\">for<\/span> plugins.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q4-what-do-you-understand-about-terraform-in-aws\">Q4. What do you understand about Terraform in AWS?<\/h2>\n\n\n\n<p>Ans:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Terraform is an infrastructure <span class=\"hljs-keyword\">as<\/span> code tool that permits us to store our Amazon Web Services infrastructure and produce an update. It is comparable to AWS Cloud Formation. <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q5-is-history-the-same-as-it-is-on-the-web-while-using-tfs-api-to-provide-resources\">Q5. Is history the same as it is on the web while using TFS API to provide resources?<\/h2>\n\n\n\n<p>Ans:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">Yes, the narration is similar to on the web because UI keeps API <span class=\"hljs-keyword\">as<\/span> the base. The whole thing that is on the UI is availed during other methods and the API <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q6-why-is-terraform-used-for-devops\">Q6. Why is Terraform used for DevOps?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">This is because Terraform manages infrastructure <span class=\"hljs-keyword\">as<\/span> code. Infrastructure <span class=\"hljs-keyword\">as<\/span> code is the foundation <span class=\"hljs-keyword\">for<\/span> DevOps practices such <span class=\"hljs-keyword\">as<\/span> continuous integration, version control, continuous deployment, and code review.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q7-define-null-resource-in-terraform\">Q7. Define null resource in Terraform.<\/h2>\n\n\n\n<p>Ans:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">null_resource implements standard resource library, but no further action is taken. The triggers argument allows an arbitrary <span class=\"hljs-keyword\">set<\/span> of values that will cause the replacement of resources when changed.<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q8-explain-oracle-cloud-infrastructure\">Q8. Explain Oracle Cloud Infrastructure.<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Oracle cloud offered by Oracle Corporation is a cloud computing service providing storage, servers, applications, services, <span class=\"hljs-keyword\">and<\/span> network through a <span class=\"hljs-keyword\">global<\/span> network of managed data centers by Oracle Corporation. These services are provisioned on-demand over the Internet by the company. <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q9-what-do-you-understand-about-terraform-backend\">Q9. What do you understand about Terraform backend?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">backend <span class=\"hljs-keyword\">in<\/span> Terraform is used to determine how an operation is executed and how the state is loaded. Terraform uses the \u2018local\u2019 backend by <span class=\"hljs-keyword\">default<\/span>. The abstraction enables remote execution, non-local file state storage, etc. <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q10-what-are-the-version-controls-supported-by-terraform-besides-github\">Q10. What are the version controls supported by Terraform besides GitHub?<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">The version controls supported GitLab EE, GitLab CE, and Bucket cloud.<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q11-what-are-modules-in-terraform\">Q11. What are modules in Terraform?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">A jug <span class=\"hljs-keyword\">for<\/span> numerous resources that are used jointly is known <span class=\"hljs-keyword\">as<\/span> a <span class=\"hljs-built_in\">module<\/span> <span class=\"hljs-keyword\">in<\/span> Terraform. The root <span class=\"hljs-built_in\">module<\/span> includes resources mentioned <span class=\"hljs-keyword\">in<\/span> the .tf files and is required <span class=\"hljs-keyword\">for<\/span> every Terraform. <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q12-is-terraform-usable-for-an-on-prem-infrastructure\">Q12. Is Terraform usable for an on-prem infrastructure<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Yes, Terraform can be used <span class=\"hljs-keyword\">for<\/span> on-prem infrastructure. <span class=\"hljs-keyword\">As<\/span> there are a lot of obtainable providers, we can decide which suits us the best. All that we need is an API. <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q13-does-terraform-support-multi-provider-deployments\">Q13. Does Terraform support multi-provider deployments?<\/h2>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">Yes, multi-provider deployments are supported by Terraform, which includes on-prem like Openstack, VMware, and we can manage SDN even using Terram too.<\/code><\/span><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q14-how-is-duplicate-resource-error-ignored-during-terraform-apply\">Q14. How is duplicate resource error ignored during Terraform apply?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"JavaScript\" data-shcb-language-slug=\"javascript\"><span><code class=\"hljs language-javascript\">We can <span class=\"hljs-keyword\">try<\/span> the following options:\nDelete those resources <span class=\"hljs-keyword\">from<\/span> the cloud provider(API) and recreate them using Terraform\nDelete those resources <span class=\"hljs-keyword\">from<\/span> Terraform code to stop its management <span class=\"hljs-keyword\">with<\/span> it\nCarry out a Terraform <span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-keyword\">of<\/span> the resource and remove the code that is trying to recreate them<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">JavaScript<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">javascript<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q15-name-all-version-controls-supported-by-terraform\">Q15. Name all version controls supported by Terraform<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">The<\/span> <span class=\"hljs-selector-tag\">supported<\/span> <span class=\"hljs-selector-tag\">version<\/span> <span class=\"hljs-selector-tag\">controls<\/span> <span class=\"hljs-selector-tag\">are<\/span>:\n<span class=\"hljs-selector-tag\">Azure<\/span> <span class=\"hljs-selector-tag\">DevOps<\/span> <span class=\"hljs-selector-tag\">Services<\/span>\n<span class=\"hljs-selector-tag\">Azure<\/span> <span class=\"hljs-selector-tag\">DevOps<\/span> <span class=\"hljs-selector-tag\">Server<\/span>\n<span class=\"hljs-selector-tag\">Bitbucket<\/span> <span class=\"hljs-selector-tag\">Server<\/span>\n<span class=\"hljs-selector-tag\">Bitbucket<\/span> <span class=\"hljs-selector-tag\">Cloud<\/span>\n<span class=\"hljs-selector-tag\">Gitlab<\/span> <span class=\"hljs-selector-tag\">EE<\/span> <span class=\"hljs-selector-tag\">and<\/span> <span class=\"hljs-selector-tag\">CE<\/span>\n<span class=\"hljs-selector-tag\">Gitlab<\/span><span class=\"hljs-selector-class\">.com<\/span>\n<span class=\"hljs-selector-tag\">GitHub<\/span> <span class=\"hljs-selector-tag\">Enterprise<\/span>\n<span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.com<\/span> (<span class=\"hljs-selector-tag\">OAuth<\/span>)\n<span class=\"hljs-selector-tag\">GitHub<\/span><span class=\"hljs-selector-class\">.com<\/span> <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q16-what-are-some-of-the-built-in-provisioners-available-in-terraform\">Q16. What are some of the built-in provisioners available in Terraform?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">Here is the <span class=\"hljs-keyword\">list<\/span> of built-in provisioners in Terraform:\nSalt-masterless Provisioner\nRemote-exec Provisioner\nPuppet Provisioner\nLocal-exec Provisioner\nHabitat Provisioner\nFile Provisioner\nChef Provisioner<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q17-which-command-destroys-terraform-managed-infrastructure\">Q17. Which command destroys Terraform managed infrastructure?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"CSS\" data-shcb-language-slug=\"css\"><span><code class=\"hljs language-css\"><span class=\"hljs-selector-tag\">The<\/span> <span class=\"hljs-selector-tag\">given<\/span> <span class=\"hljs-selector-tag\">command<\/span> <span class=\"hljs-selector-tag\">is<\/span> <span class=\"hljs-selector-tag\">used<\/span> <span class=\"hljs-selector-tag\">for<\/span> <span class=\"hljs-selector-tag\">this<\/span> <span class=\"hljs-selector-tag\">purpose<\/span>:\n    <span class=\"hljs-selector-tag\">Terraform<\/span> <span class=\"hljs-selector-tag\">destroy<\/span> <span class=\"hljs-selector-attr\">&#91;options]<\/span> <span class=\"hljs-selector-attr\">&#91;dir]<\/span> <\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">CSS<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">css<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q18-tell-us-about-some-notable-terraform-applications\">Q18. Tell us about some notable Terraform applications<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">The applications of Terraform are pretty broad due to its facility of extending its abilities <span class=\"hljs-keyword\">for<\/span> resource manipulation. Some of the unique applications are:\nSoftware demos development\nResource schedulers\nMulti-cloud deployment\nDisposable environment creations\nMulti-tier applications development\n<span class=\"hljs-keyword\">Self<\/span>-service clusters\nSetup of Heroku App<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q19-what-are-the-components-of-terraform-architecture\">Q19. What are the components of Terraform architecture?<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"PHP\" data-shcb-language-slug=\"php\"><span><code class=\"hljs language-php\">The Terraform architecture includes the following features:\nSub-graphs\nExpression Evaluation\nVertex Evaluation\nGraph Walk\nGraph Builder\nState Manager\nConfiguration Loader\nCLI (Command Line <span class=\"hljs-class\"><span class=\"hljs-keyword\">interface<\/span>)\n<span class=\"hljs-title\">Backend<\/span><\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">PHP<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">php<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\" id=\"q20-define-resource-graph-in-terraform\">Q20. Define Resource Graph in Terraform.<\/h2>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"HTML, XML\" data-shcb-language-slug=\"xml\"><span><code class=\"hljs language-xml\">resource graph is a visual representation of the resources. It helps modify and create independent resources simultaneously. Terraform establishes a plan for the configuration of the graph to generate plans and refresh the state. It creates structure most efficiently and effectively to help us understand the drawbacks.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q21: What do you mean by Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n Terraform is open-source communication as a system software tool created by HashiCorp. It is an instrument for building, altering, and versioning transportation safely and professionally. Terraform can direct existing and accepted service providers as well as convention in-house solutions.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q22: What are the reasons for choosing Terraform for DevOps?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\n Below are the reasons for choosing Terraform for DevOps:\n\n    It can do complete orchestration and not just configuration management (like Ansible and Puppet).\n    Has amazing support of almost all the popular cloud providers like AWS, Azure, GCP, DigitalOcean etc.\n    Easily manages the configuration of an immutable (dynamic) infrastructure.\n    Provide immutable infrastructure where configuration changes smoothly.\n    Works on HCL (HashiCorp configuration language), which is very easy to learn and understand.\n    Easily portable from one provider to another.\n    Easy Installation.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q23.Define Terraform init?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform initializes the code using the command terraform init. This command is used to initialize the working directory containing Terraform configuration files. It is safe to run this command multiple times.\n\nYou can use the init command for:\n\n    Plugin Installation\n    Child Module Installation\n    Backend Initialization\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q24. Name some major competitors of Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\n Some of them are:\n\n    Packer\n    Cloud Foundry\n    Ansible\n    Kubernetes\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q25.Define Terraform provider?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform is used to manage and inform infrastructure resources such as bodily machines, VMs, network switches, containers, and more. A provider is accountable for thoughtful API interactions and revealing resources. Terraform supports a large number of cloud providers.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q26. How does Terraform work?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform creates an implementation plan, define what it will do to attain the preferred state, and then executes it to construct the described infrastructure. As the configuration changes, Terraform is talented to decide what changed and generate incremental execution plans which can be practical.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q27. Name some major features of Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nSome of them are:\n\n    Execution Plan\n    Change Automation\n    Resource Graph\n    Infrastructure as code\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q28. Define IAC?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nIaC is a short form to the term \u201cInfrastructure as Code\u201d. IaC refers to a scheme whereby developers can run and provision the computer data center\u2019s mechanically instead of getting into a physical process. Terraform, for example, is a case tool of IaC.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q29.How to check the installed version of Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nWe can use terraform -version of the command to identify the version which we are running.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q30.Describe the working of Terraform core?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nThe terraform core looks at the configuration monitoring and creates analysis and evaluation based on the configuration. It keeps track and compare the versions (current and previous) and then display the output through the terminal.\nTerraform core mainly takes two inputs:\n\n    Terraform Configuration \u2013 It keeps track of the infrastructure detail\n    Terraform state \u2013 It keeps track of the infrastructure status.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q31. How does Terraform help in discovering plugins?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nThe authority \u201cTerraform init\u201d helps Terraform interpret configuration files in the operational directory. Then, Terraform finds out the essential plugins and searches for installed plugins in diverse locations. In addition, Terraform also downloads extra plugins at times. Then, it decides the plugin versions to use and writes a security device file for ensuring that Terraform will employ the identical plugin versions.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q32.Can I add policies to the open-source or pro version of Terraform enterprise?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nYou cannot insert policies to the open-source description of Terraform Enterprise. The equal also goes for the Enterprise Pro version. The finest version of Terraform Enterprise only could contact the lookout policie.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q33. Define Modules in Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: A module in Terraform is a jug for numerous resources that are used jointly. The root module is required for every Terraform that includes resources mentioned in the .tf files.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q34. What are the ways to lock Terraform module versions?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: You can use the terraform module registry as a source and provide the attribute as \u2018version\u2019 in the module in a terraform configuration file. If you are using the GitHub repository as a source, then you need to specify the branch, version and query string with \u2018? ref\u2019.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q35. What do you mean by Terraform cloud?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: Terraform Cloud is an application that helps teams use Terraform together. It manages Terraform runs in a consistent and reliable environment, and includes easy access to shared state and secret data, access controls for approving changes to infrastructure, a private registry for sharing Terraform modules, detailed policy controls for governing the contents of Terraform configurations, and more.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q36. Define null resource in Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: The null resource implements the average resource lifecycle but takes no extra action. The trigger argument permits specifying a subjective set of values that, when misrepresented will source the reserve to be replaced.\n\nThe primary use-case for the null resource is as a do-nothing container for arbitrary actions taken by a provisioner.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q37<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>. <span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Can Terraform be used for on-prem infrastructure?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: Yes, Terraform can be utilized for on-prem infrastructure. There are a lot of obtainable providers. You can decide any one of them which suits you most excellent. Many also build client Terraform providers for themselves; all wanted is just an API.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q38. What does the following command do?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer:\n\n    Terraform -version \u2013 to check the installed version of terraform\n    Terraform fmt\u2013 it is used to rewrite configuration files in canonical styles and format\n    Terraform providers \u2013 it gives information of providers working in the current configuration.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q39. List all the Terraform supported versions<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\nAnswer:\n\n    GitHub.com\n    GitLab.com\n    GitHub Enterprise\n    GitLab CE and EE\n    Bitbucket Cloud and Server\n    Azure DevOps Server and Services\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q40. Explain the command terraform validate in the context of Terraform.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nAnswer: The terraform validate command checks the configuration files in a directory, focusing purely on the configuration and omitting any external services like remote state, provider APIs, and so on. Validate examines a configuration to verify if it is syntactically correct and internally consistent, regardless of variables or current state. As a result, it\u2019s best for general reusable module verification, such as confirming that attribute names and value types are valid. This command can be run automatically, for example, as a post-save check in a text editor or as a test step in a continuous integration system for a reusable module.\nSyntax: terraform validate &#91;options]\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q41. Mention some of the version control tools supported by Terraform.<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\nAnswer: Version control tools supported by Terraform are:\n\n    GitHub\n    GitLab CE\n    GitLab EE\n    Bucket Cloud\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q42. What are the modules in Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nA Terraform module is a set of numerous resources used jointly. It is a single directory containing Terraform configuration files. A simple arrangement with a single directory having one or more files can be referred to as a module. The directory is called the root module when Terraform commands are run directly, and the files have the extension .tf. A module that is called by another configuration is called configuration's \"child module.\"\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q43. What are the main reasons for choosing Terraform for DevOps?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nFollowing are the main reasons for choosing Terraform for DevOps:\n\nFollowing are the reasons for choosing Terraform for DevOps:\n\n    Terraform is preferred for DevOps because it can do complete orchestration and not just configuration management such as Ansible and Puppet.\n    It provides amazing support to almost all the popular cloud providers like AWS, Azure, GCP, DigitalOcean, etc.\n    It can easily manage the configuration of an immutable (dynamic) infrastructure.\n    It provides an immutable infrastructure where configuration changes smoothly.\n    It works on HCL (HashiCorp Configuration Language), which is very easy to learn and understand.\n    It is easily portable from one provider to another.\n    The installation of Terraform for DevOps is easy.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q44. What do you understand by Terraform init?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform init is a control used to initialize an operational index containing Terraform pattern files. This control is the first command that should be run after writing the new Terraform design and can be looped multiple times.\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q45. What is the null resource in Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nThe null_resource is used to implement a standard resource library, but no further action is taken. The triggers argument allows an arbitrary set of values that will cause the replacement of resources when changed.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">a<\/span> <span class=\"hljs-attr\">href<\/span>=<span class=\"hljs-string\">\"https:\/\/youtu.be\/vOV74gevFgs\"<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">a<\/span>&gt;<\/span><span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>46. What is Terraform D?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform D is a plugin used on most in-service systems and Windows. Terraform init by default searches next directories for plugins.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q47. What do you understand by Terraform backend?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nThe Terraform backend is used to specify how an operation is executed and how the state is loaded. It uses the 'local' backend by default. The abstraction enables remote execution, non-local file state storage, etc.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q48. What is \".terraform\" directory?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nThe \".terraform\" directory is a local cache where Terraform retains some files required for subsequent operations against this configuration. Its contents are not intended to be included in version control.\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q49. What are some major competitors of Terraform?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nFollowing are some major competitors of Terraform:\n\n    Packer\n    Cloud Foundry\n    Ansible\n    Kubernetes\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>Q50. What is the usage of Terraform init?<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\nTerraform init is a command used to initialize the Terraform code. Let's see the all usage of Terraform init command:\n\n    Terraform init command is used to initialize the working directory containing Terraform configuration files.\n    It is used for Plugin Installation.\n    It is also used for Child Module Installation.\n    It is used for Backend Initialization.\n    You can safely run this command multiple times.\n\n<span class=\"hljs-tag\">&lt;<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n<span class=\"hljs-tag\">&lt;\/<span class=\"hljs-name\">strong<\/span>&gt;<\/span>\n\n\n\n\n\n\n<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">HTML, XML<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">xml<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h4 class=\"wp-block-heading\" id=\"related-video\">Related video:<\/h4>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\"  id=\"_ytid_52089\"  width=\"760\" height=\"427\"  data-origwidth=\"760\" data-origheight=\"427\" src=\"https:\/\/www.youtube.com\/embed\/BkudL0bzvgQ?enablejsapi=1&#038;autoplay=0&#038;cc_load_policy=0&#038;cc_lang_pref=&#038;iv_load_policy=1&#038;loop=0&#038;rel=1&#038;fs=1&#038;playsinline=0&#038;autohide=2&#038;theme=dark&#038;color=red&#038;controls=1&#038;disablekb=0&#038;\" class=\"__youtube_prefs__  epyt-is-override  no-lazyload\" title=\"YouTube player\"  allow=\"fullscreen; accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen data-no-lazy=\"1\" data-skipgform_ajax_framebjll=\"\"><\/iframe>\n<\/div><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Q1. Are callbacks possible with Terraform on Azure? Q2. What is Terraform init? Q3. What is Terraform D? Q4. What do you understand about Terraform in AWS? Ans: Q5. Is history the same as it is on the web while using TFS API to provide resources? Ans: Q6. Why is Terraform used for DevOps? Q7&#8230;.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","_joinchat":[],"footnotes":""},"categories":[5129,52],"tags":[162,5197,3477,5660,95,405,404,3347,6164,599,5130,637,381],"class_list":["post-26764","post","type-post","status-publish","format-standard","hentry","category-terraform","category-interview-questions-answers","tag-aws","tag-azure","tag-cloud-infrastructure","tag-deployments","tag-devops","tag-github","tag-gitlab","tag-interview-questions-answers","tag-null","tag-oracle","tag-terraform","tag-top","tag-version"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26764","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=26764"}],"version-history":[{"count":2,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26764\/revisions"}],"predecessor-version":[{"id":26807,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/26764\/revisions\/26807"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=26764"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=26764"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=26764"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}