From 0edc4d1833d003a2dba7e15b17212354d05c4ab9 Mon Sep 17 00:00:00 2001 From: abregman Date: Sun, 20 Oct 2019 19:41:40 +0300 Subject: [PATCH] Add a couple of Terraform questions --- README.md | 60 ++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index a08897a..9ffd10d 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ :information_source:  This repository contains interview questions on various DevOps related topics -:bar_chart:  There are currently **264** questions +:bar_chart:  There are currently **271** questions :warning:  You don't need to know how to answer all the questions in this repo. DevOps is not about knowing all :) @@ -20,17 +20,17 @@ - - - + + + - + - + @@ -1178,12 +1178,31 @@ Read [here](https://www.terraform.io/intro/index.html#what-is-terraform-) A common *wrong* answer is to say that Ansible and Puppet are configuration management tools and Terraform is a provisioning tool. While technically true, it doesn't mean Ansible and Puppet can't -be used for provisioning infrastructure. Also, it doesn't explains why Terraform should be used over +be used for provisioning infrastructure. Also, it doesn't explain why Terraform should be used over CloudFormation if at all. The benefits of Terraform over the other tools: - * it follows the immutable infrastructure approach which has benefits like avoiding a configuration drift over time - * Ansible and Puppet are more procedural (you mention what to execute in each step) and Terraform is declartive since you describe the overall desired state and not per resource or task. You can give the example of going from 1 to 2 servers in each tool. In terrform you specify 2, in Ansible and puppet you have to only provision 1 additional server + + * It follows the immutable infrastructure approach which has benefits like avoiding a configuration drift over time + * Ansible and Puppet are more procedural (you mention what to execute in each step) and Terraform is declartive since you describe the overall desired state and not per resource or task. You can give the example of going from 1 to 2 servers in each tool. In terrform you specify 2, in Ansible and puppet you have to only provision 1 additional server so you need to explicitly make sure you provision only another one server. + + +
+Explain what is "Terraform configuration"
+
+ +
+Explain each of the following: + + * Provider + * Resource + * Provisioner +
+ +
+What terraform.tfstate file is used for?
+ +It keeps track of the IDs of created resources so that Terraform knows what it is managing.
@@ -1191,6 +1210,7 @@ The benefits of Terraform over the other tools: * terraform init * terraform plan + * terraform validate * terraform apply
@@ -1209,6 +1229,28 @@ You use it this way: variable “my_var” {} Give an example of several Terraform best practices
+
+Explain how implicit and explicit dependencies work in Terraform
+
+ +
+What is local-exec and remote-exec in the context of provisioners?
+
+ +
+What is "tainted resource"?
+
+ + +#### :star: Advanced + +
+Explain "remote state". When would you use it and how?
+
+ +
+Explain "State Locking"
+
## Docker
DevOps
DevOps

Beginner :baby:
Advanced :star:
Jenkins
Jenkins

Beginner :baby:
Advanced :star:
AWS
AWS

Beginner :baby:
Network
Network

Beginner :baby:
Advanced :star:
Jenkins
Jenkins

Beginner :baby:
Advanced :star:
AWS
AWS

Beginner :baby:
Network
Network

Beginner :baby:
Advanced :star:
Linux
Linux

Beginner :baby:
Advanced :star:
Ansible
Ansible

Beginner :baby:
Advanced :star:
Terraform
Terraform

Beginner :baby:
Terraform
Terraform

Beginner :baby:
Advanced :star:
Docker
Docker

Beginner :baby:
kubernetes
Kubernetes

Beginner :baby:
Python
Python

Beginner :baby:
Advanced :star:
Python
Python

Beginner :baby:
Advanced :star:
Prometheus
Prometheus

Beginner :baby:
Git
Git

Beginner :baby:
Advanced :star:
Go
Go

Beginner :baby: