Professional Documents
Culture Documents
TF Question Set 2
TF Question Set 2
SS
Final Result
Review Questions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
Question 1
How do you create a workspace?
terraform workspace create SELECTED
https://www.terraform.io/docs/cli/commands/workspace/new.html
YOUR NOTES
provider SELECTED
description
name SELECTED
version
EXPLANATION
Every page on the registry has a search field for finding modules. Enter any type of module you're
looking for (examples: "vault", "vpc", "database"), and the resulting modules will be listed.
The search query will look at module name, provider, and description to match your search terms.
On the results page, filters can be used to further refine search results.
https://www.terraform.io/docs/registry/modules/use.html#finding-modules
YOUR NOTES
The project resides in a repo, and the backend is configured to use Terraform
Cloud
Pull requests are submitted to the repo with new changes
When the Pull Request is approved Terraform Cloud runs terraform apply
Team Workflow SELECTED
https://www.terraform.io/guides/core-workflow.html#working-as-a-team
https://www.terraform.io/guides/core-workflow.html#working-as-an-individual-practitioner
YOUR NOTES
DEBUG
INFO SELECTED
TRACE
WARN
EXPLANATION
https://www.terraform.io/docs/internals/debugging.html
You can set TF_LOG to one of the log levels TRACE, DEBUG, INFO, WARN, or ERROR to change
the verbosity of the logs.
https://stackoverflow.com/questions/2031163/when-to-use-the-different-log-levels
Trace - Only when I would be "tracing" the code and trying to find one part of a function
specifically. Debug - Information that is diagnostically helpful to people more than just
developers (IT, sysadmins, etc.).
Info - Generally useful information to log (service start/stop, configuration assumptions, etc).
Info I want to always have available but usually don't care about under normal
circumstances. This is my out-of-the-box config level.
Warn - Anything that can potentially cause application oddities, but for which I am
automatically recovering. (Such as switching from a primary to backup server, retrying an
operation, missing secondary data, etc.)
Error - Any error which is fatal to the operation, but not the service or application (can't open
a required file, missing data, etc.). These errors will force user (administrator, or direct user)
intervention. These are usually reserved (in my apps) for incorrect connection strings,
missing services, etc.
YOUR NOTES
script
interpreter
scripts SELECTED
EXPLANATION
A cloud console, portal, is a web UI to interact with cloud services via the manual process of
clicking a mouse. This would be consider ClickOps and the opposite of IaC
deployment is when you deploy a version of an application to provisioned resources. You can
do this via IaC but its only part of what IaC can do. IaC would be used to setup CI/CD which
would handle deployment
Infrastructure as Code is when you define your code in a configuration file, and that
configuration file is than used by a development tool to execute API commands to cloud
services or a provider.
Infrastructure that is automated via the CLI
You can use a CLI to execute an IaC tool, but automation could also occur via a git workflow
on pull request.
YOUR NOTES
Terraform Cloud requires you to turn on Consul which will store terraform.tfstate.backup
in Consul KV store
Consul does have a KV store, and you can have Consul KV store setup a standard backend,
but not in combination with Terraform Cloud.
Terraform Cloud saves a history of state files every time you perform a run SELECTED
https://www.terraform.io/docs/language/state/index.html
Terraform Cloud does not store a backup of your terraform.tfstate.backup. This file will
be generated on the local machine running Terraform command.
YOUR NOTES
# ...
provisioner "remote-exec" {
inline = [
"puppet apply",
False
interpreter is not a valid argument for remote-exec. local-exec does have a valid argument
called interpreter
https://www.terraform.io/docs/language/resources/provisioners/remote-exec.html#argument-
reference
True SELECTED
YOUR NOTES
https://www.terraform.io/docs/registry/private.html
True
YOUR NOTES
https://www.terraform.io/docs/language/modules/sources.html#terraform-registry
local paths
https://www.terraform.io/docs/language/modules/sources.html#local-paths
FTP
Github
https://www.terraform.io/docs/language/modules/sources.html#github
https://www.terraform.io/docs/language/modules/sources.html#generic-git-repository
Bitbucket SELECTED
https://www.terraform.io/docs/language/modules/sources.html#bitbucket
EXPLANATION
Sentinel is for Policy as Code. It features Terraform and is not a standalone service.
Consul
Vault SELECTED
Vault allows you to centralized the management of secrets from various secrets repositories.
You can use Vault to pull sensitive credentials at the time of terraform apply.
Boundary
EXPLANATION
ami = "ami-abc123"
instance_type = "t2.micro"
ebs_block_device {
device_name = "sda2"
volume_size = 16
ebs_block_device {
device_name = "sda3"
volume_size = 20
}
What would be the correct resource address to assign this AMI to another virtual
machine?
resource "aws_instance" "example2" { SELECTED
ami = aws_instance.example.ami.id
If you are using the aws_ami data source, then we can use id, which would be
ami = data.aws_ami.example.id
YOUR NOTES
> cidrsubnet("172.16.0.0/12", 4, 2)
172.18.0.0/16
https://www.terraform.io/docs/language/functions/cidrsubnet.html
https://www.terraform.io/docs/language/functions/index.html
YOUR NOTES
8.0 Read, generate, and modify configuration
Ask a Question
Question 14
What type of backend is this Terraform configuration file using?
terraform {
provider "aws" {
region = "us-east-1"
profile = "sandbox"
ami = "ami-0c2b8ca1dad447f8a"
instance_type = "t2.nano"
tags = {
Name = "MyExampleServer"
It will result in an error because it does not specify a backend in the terraform settings
block
This is not true. Defining no backend will use the local backend by default.
It will use the local backend or whatever is stored in the .terraform.defaults file.
local
The backend will use Amazon S3 because the AWS provider is defined
YOUR NOTES
You have to manually write a sentinel mock file and then import it
You can do this, but you can just download a mock file under your runs
Inspect your previous list of runs, download a sentinel mock file and then import a mock
Within Terraform Cloud there is a setting in your workspace to turn on sentinel validation, SELECTED
for every run thereafter, it will automatically generate a mock file and validate it against
sentinel
There is no such feature. Mock files have to be written by hand, so its not possible for
Terraform Cloud to just write your tests for you.
YOUR NOTES
-force
-auto-approve
-auto-approve - Skips interactive approval of plan before applying. This option is ignored when
you pass a previously-saved plan file, because Terraform considers you passing the plan file
as the approval and so will never prompt in that case.
https://www.terraform.io/docs/cli/commands/apply.html#apply-options
YOUR NOTES
terraform {
providers{
aws = {
source = "hashicorp/aws"
version = "3.58.0"
provider "aws" {
# Configuration options
False
Each Terraform module must declare which providers it requires, so that Terraform can install
and use them. Provider requirements are declared in a required_providers block.
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "3.58.0"
}
}
}
provider "aws" {
# Configuration options
}
https://www.terraform.io/docs/language/providers/requirements.html#requiring-providers
True SELECTED
YOUR NOTES
3.0 Understand Terraform basics
Ask a Question
Question 18
A junior developer has been tasked to delete a virtual machine on Azure. Due to
miscommunication they deleted the VM via the Azure Console instead of modifying the
terraform configuration file.
How can we update our state file so that it does not create a new instance on the next
terraform apply?
terraform destroy
This would destroy your entire stack. Dangerous and plain wrong.
Replace is used to force a replacement of resource if it has been degraded or damaged. This
would cause the VM to launch again.
This is not true. Terraform will see that the VM is missing and think you want it back up, and
will launch a new instance.
-refresh-only will update the state file. So that it reflects the actual state of the provider.
https://www.terraform.io/docs/cli/commands/refresh.html
This is useful when someone has made manual changes via a cloud provider's portal/console
and you want to reflect those changes in your state file instead of recreating or modifying the
existing infrastructure.
terraform state mv
State mv is when you need to move a resource from one module to another, or having to do
with the movement of a resource.
EXPLANATION
terraform refresh is depecreated but if you get a question on terraform refesh. Apply the logic found
here.
YOUR NOTES
Modules can be publicly available without being logged in Modules can be set to only be
visible when signed up and logged in There is no option to make modules privately
shared
All modules will be publicly available on the Internet without signing up or logging in.
There is no option to make them private.
Terraform Registry allows you to publish modules by connecting a GitHub public repository.
You aren't required to signup, you can connect your GitHub account for the sole purpose of
publishing a public repo.
If you need private modules you can use Terraform Cloud which has a private registry.
Modules can be publicly available without being logged in Modules can be marked to be
private, and require a link to share. There is no option to make modules only publically
available if logged in.
YOUR NOTES
NA
is Terraform registry different from terraform cloud private registry
Megan Oct 4, 2022
Question 20
Which of the following is not a valid Terraform state CLI command?
terraform state mv
https://www.terraform.io/docs/cli/commands/state/mv.html
https://www.terraform.io/docs/cli/commands/state/show.html
https://www.terraform.io/docs/cli/commands/state/list.html
https://www.terraform.io/docs/cli/commands/state/rm.html
YOUR NOTES
split produces a list by dividing a given string at all occurrences of a given separator.
https://www.terraform.io/docs/language/functions/split.html
substr
https://www.terraform.io/docs/language/functions/substr.html
slice
https://www.terraform.io/docs/language/functions/slice.html
strrev SELECTED
strrev reverses the characters in a string. Note that the characters are treated as Unicode
characters
> strrev("hello")
olleh
> strrev("a ☃")
☃a
https://www.terraform.io/docs/language/functions/strrev.html
YOUR NOTES
coalescelist https://www.terraform.io/docs/language/functions/coalescelist.html
coalesce takes a map of lists of strings and swaps the keys and values to produce a new SELECTED
map of lists of strings.
transpose https://www.terraform.io/docs/language/functions/transpose.html
coalesce takes any number of arguments and returns the first one that isn't null or an
empty string.
coalesce https://www.terraform.io/docs/language/functions/coalesce.html
coalesce takes a list of strings and returns a new list with any empty string elements
removed.
compact https://www.terraform.io/docs/language/functions/compact.html
YOUR NOTES
ami = "INVALID_AMI_VALUE"
instance_type = "t2.nano"
Terraform fmt will produce an error about the invalid AMI value
Neither terraform validate or terraform fmt checks the values against the remote provider to
ensure they are valid. Terraform validate would error out if AMI was not a string. Terraform fmt
will produce no error.
Terraform fmt will produce no error but will automatically correct the curly brackets SELECTED
You would think that it would since terraform fmt is a listing, and linters commonly correctly
curly brackets but in this specific case it will not. It does automatically corrects things in files
like indent levels.
Terraform fmt will produce a syntax error, asking for the user to correct the curly
brackets
terraform fmt is used to rewrite Terraform configuration files to a canonical format and style.
The format of the brackets is incorrect since they should be the same line as the block.
However in this case it will result in a syntax error since terraform fmt does not appear capable
of linting and correcting curly brackets.
https://www.terraform.io/docs/cli/commands/fmt.html
Terraform fmt will do nothing since everything is fine according to the command
YOUR NOTES
module "consul" {
source = "hashicorp/consul/aws"
It does not explicitly say in the docs, but if you remove the version then you will see that it will
pull the latest stable from Terraform Registy
The real exam had a similar question which is why this is included in the exam pool of
questions.
https://www.terraform.io/docs/language/modules/sources.html
tfstate.json
terraform.vfvars
terraform.tfstate SELECTED
This state is stored by default in a local file named "terraform.tfstate", but it can also be stored
remotely, which works better in a team environment.
https://www.terraform.io/docs/language/state/index.html
terraform.state.json
YOUR NOTES
Azure Resource Manager is a cloud-native solution and there is no state file, or at least it is
abstracted away so you don't have to manage or think about it
Terraform
GCP is a cloud-native solution and there is no state file, or at least it is abstracted away so you
don't have to manage or think about it
Pulumi
Oracle Cloud
Oracle's Resource Manager uses Terraform and so it would have a state file.
EXPLANATION
Cloud Agnostic solutions like Terraform and Plumi require a state file since state has to be portable.
Most cloud service providers, will have a native solution and the managing state will be attracted
away within their online service and you'll never be able to download or move the state file around.
With the exception of Oracle Cloud which is powered by Terraform.
YOUR NOTES
providers.terraform.io
registry.terraform.io SELECTED
Hostname (optional): The hostname of the Terraform registry that distributes the provider. If
omitted, this defaults to registry.terraform.io, the hostname of the public Terraform Registry.
https://www.terraform.io/docs/language/providers/requirements.html#source-addresses
https://registry.terraform.io/
github.com/hashicorp/terraform-providers
YOUR NOTES
It will not prompt for approval if you pass the filename of a previously-saved plan file
If you pass the filename of a previously-saved plan file, terraform apply performs exactly the
steps specified by that plan file. It does not prompt for approval; if you want to inspect a plan
file before applying it, you can use terraform show.
https://www.terraform.io/docs/cli/commands/apply.html#saved-plan-mode
YOUR NOTES
VV
terraform apply <plan_file>
Answered
Vamsikrishna Viswanadh CheruvuApr 8, 20221 Replies
Question 30
A DevOps engineer needs to provision a resource that is not directly associated with a
specific resource.
How can they define their resource within their terraform configuration script?
resource "null" "cluster" {
# ...
}
If you need to run provisioners that aren't directly associated with a specific resource, you can
associate them with a null_resource.
https://www.terraform.io/docs/language/resources/provisioners/null_resource.html
YOUR NOTES
SSL
HTTPS SELECTED
TLS
EXPLANATION
https://www.terraform.io/docs/language/modules/sources.html#generic-git-repository
Arbitrary Git repositories can be used by prefixing the address with the special git:: prefix. After this
prefix, any valid Git URL can be specified to select one of the protocols supported by Git.
var is not a valid block. var is used when you want to reference a variable in the code via a
named vaule.
data "image_Id" {
type = string
}
https://www.terraform.io/docs/language/data-sources/index.html
Each input variable accepted by a module must be declared using a variable block:
https://www.terraform.io/docs/language/values/variables.html#declaring-an-input-variable
locals "image_Id" {
type = string
}
https://www.terraform.io/docs/language/values/locals.html
YOUR NOTES
https://www.terraform.io/docs/cli/commands/plan.html#resource-targeting
False SELECTED
YOUR NOTES
Immutablity
True SELECTED
https://learn.hashicorp.com/tutorials/terraform/infrastructure-as-code
Idempotent
YOUR NOTES
config = {
organization = "hashicorp"
workspaces = {
name = "vpc-prod"
https://www.terraform.io/docs/language/state/remote-state-data.html#example-usage-remote-
backend-
YOUR NOTES
https://www.terraform.io/intro/use-cases.html#multi-cloud-deployment
False
YOUR NOTES
https://www.terraform.io/docs/cli/commands/taint.html
For example,
False
YOUR NOTES
Air Gap or disconnected network is a network security measure employed on one or more
computers to ensure that a secure computer network is physically isolated from unsecured
networks e.g. Public Internet
https://www.hashicorp.com/blog/deploying-terraform-enterprise-in-airgapped-environments
False
YOUR NOTES
terraform force-unlock
Manually unlock the state for the defined configuration.
This will not modify your infrastructure. This command removes the lock on the state for the
current configuration. The behavior of this lock is dependent on the backend being used. Local
state files cannot be unlocked by another process.
https://www.terraform.io/docs/language/state/locking.html#force-unlock
https://www.terraform.io/docs/language/dependency-lock.html
YOUR NOTES
~>: Allows only the rightmost version component to increment. For example, to allow new
patch releases within a specific minor release, use the full version number: ~> 1.0.4 will allow
installation of 1.0.5 and 1.0.10 but not 1.1.0. This is usually called the pessimistic constraint
operator.
https://www.terraform.io/docs/language/expressions/version-constraints.html
YOUR NOTES
They want to dry up their code and use one of Terraform's meta-arguments to produce
many nested blocks for ingress rules.
For each is useful when you have a map of key pair values than you want to iterate over that
vary for a group of resources.
Let's say you wanted to deploy 5 VMs but you wanted to write out the same for each in a map.
dynamic "setting" {
for_each = var.settings
content {
namespace = setting.value["namespace"]
name = setting.value["name"]
value = setting.value["value"]
}
}
For
This is not a meta argument for resources but is a first-class language feature to iterate over
values within Terraform.
Dynamic
A dynamic block acts much like a for expression, but produces nested blocks instead of a
complex typed value. It iterates over a given complex value, and generates a nested block for
each element of that complex value.
https://www.terraform.io/docs/language/expressions/dynamic-blocks.html
Count SELECTED
Count is useful when you have multiple VMs in a fleet, all you're changing is the number or
you want to include the count as part of the name or tag via an interpolation string.
YOUR NOTES
When you run terraform plan it includes a validation check. Its more lightweight to run
terraform validate.
https://www.terraform.io/docs/cli/commands/validate.html
False
YOUR NOTES
CF
The validation performed in terraform plan command.
Answered
Caelin Finn McCoolJan 19, 20221 Replies
Question 43
What is the general order of a terraform lifecycle?
init > validate > fmt > plan > apply > destroy
init > fmt > validate > plan > apply > destroy SELECTED
YOUR NOTES
When you want the terraform state file to update to reflect the state of actual remote objects,
like when a VM was deleted.
ttps://www.terraform.io/cli/commands/refresh
When you want the terraform state file to update to reflect the state of actual remote objects,
like when a VM was deleted.
Terraform will search the state for any instances matching the given resource address, and
remove the record of each one so that Terraform will no longer be tracking the corresponding
remote objects
https://www.terraform.io/docs/cli/commands/state/rm.html
terraform resource rm
YOUR NOTES
Question 45
When running 'terraform login', where will the API token be stored?
terraform.tfstate SELECTED
variables.tf
variables.tf is just a configuration file that is designated to store input variables. You aren't
supposed to store values in here. You can set default values but you would never set an API
token here because it could be committed to a codebase repo.
credentials.tfrc.json
https://www.terraform.io/docs/cli/commands/login.html#credentials-storage
By default, Terraform will obtain an API token and save it in plain text in a local CLI
configuration file called credentials.tfrc.json. When you run terraform login, it will explain
specifically where it intends to save the API token and give you a chance to cancel if the
current configuration is not as desired.
.env
There is no such file called .env. .env is a dotenv file that is popular among many programing
langauges.
YOUR NOTES
7.0 Implement and maintain state
Ask a Question
Question 46
When troubleshooting terraform, when is it advised to set verbose logging? (Select 2)
Provider Errors
Core Errors
EXPLANATION
In the HashiCorp Learn tutorial on debugging, its recommended for Core and Provider errors to turn
on verbose logging and submit the issue to Github for the respected open-source project.
https://learn.hashicorp.com/tutorials/terraform/troubleshooting-workflow?
utm_source=WEBSITE&utm_medium=WEB_IO&utm_offer=ARTICLE_PAGE&utm_content=DOCS
Language errors: The primary interface for Terraform is the HashiCorp Configuration Language
(HCL), a declarative configuration language. The Terraform core application interprets the
configuration language. When Terraform encounters a syntax error in your configuration, it prints out
the line numbers and an explanation of the error.
State errors: The Terraform state file stores information on provisioned resources. It maps resources
to your configuration and tracks all associated metadata. If state is out of sync, Terraform may
destroy or change your existing resources. After you rule out configuration errors, review your state.
Ensure your configuration is in sync by refreshing, importing, or replacing resources.
Core errors: The Terraform core application contains all the logic for operations. It interprets your
configuration, manages your state file, constructs the resource dependency graph, and
communicates with provider plugins. Errors produced at this level may be a bug. Later in this tutorial,
you will learn best practices for opening a GitHub issue for the core development team.
Provider errors: The provider plugins handle authentication, API calls, and mapping resources to
services. Later in this tutorial, you will learn best practices for opening a GitHub issue for the
provider development team.
YOUR NOTES
JO
Why not Porviders and Core
Answered
Jan OsieckiJul 8, 20221 Replies
Question 47
Not all terraform resources are importable via the terraform import command.
True SELECTED
Each resource in Terraform must implement some basic logic to become importable. As a
result, not all Terraform resources are currently importable. For those resources that
support import, they are documented at the bottom of each resource documentation page,
under the Import heading. If you find a resource that you want to import and Terraform reports
that it is not importable, please report an issue in the relevant provider repository.
https://www.terraform.io/docs/cli/import/importability.html
False
YOUR NOTES
Your state file can contain sensitive information, and storing in your codebase git repository is
considered dangerous.
True
YOUR NOTES
terraform {
required_providers {
mycloud = {
source = "mycorp/mycloud"
It will check for a hostname in the Terraform CLI Configuration File and if not found will
result in an error
Hostname (optional): The hostname of the Terraform registry that distributes the provider. If
omitted, this defaults to registry.terraform.io, the hostname of the public Terraform Registry.
https://www.terraform.io/docs/language/providers/requirements.html#source-addresses
It will check if you authenticated to Terraform Cloud, if it cannot match to your Private SELECTED
Registry, it will check the public Terraform Registry, If it finds neither it will result in an
error
YOUR NOTES
regex blocks
There is no such feature. Sometimes you can select based on regex attributes, but there is no
regex block
filter {
name = "tag:Component"
values = ["web"]
}
}
https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/
subnet_ids#argument-reference
You cannot, you must provide the logical id from the cloud provider
YOUR NOTES
TW
Is this question/answer specific to AWS provider?
Tim WhitcombAug 3, 2022
Question 51
When running terraform init, it will do the following:
Create a state file. SELECTED
https://www.terraform.io/docs/cli/commands/init.html
You have to manually configure terraform cloud as a backend and create a workspace via the
console.
YOUR NOTES
Note: The -destroy option to terraform apply exists only in Terraform v0.15.2 and later. For
earlier versions, you must use terraform destroy to get the effect of terraform apply -destroy.
https://www.terraform.io/docs/cli/commands/destroy.html#usage
False
YOUR NOTES
6.0 Navigate Terraform workflow
Ask a Question
Question 53
In order to authenticate to Terraform Cloud what is recommended for local
development?
Obtain API keys via Terraform Cloud and embed the values into the CLI configuration
file
credentials "app.terraform.io" {
token = "xxxxxx.atlasv1.zzzzzzzzzzzzz"
}
It's not recommended for local development, and you should definitely not hard code the token
in your configuration file.
Obtain API keys via Terraform Cloud and store and load the value vis terraform.tfvars
You cannot store the API Token within the tfvars file.
Terraform Login command can be used to automatically obtain and save an API token for
Terraform Cloud, Terraform Enterprise, or any other host that offers Terraform services.
https://www.terraform.io/docs/cli/commands/login.html
Obtain API keys via Terraform Cloud and store them in variables.tf, define them as
input variables and store the API token as a default value.
variables.tf is just a configuration file that only has variable definitions, so this is the same as
hardcoding in your main.tf, and this is not recommended since your token would end up in
your repo's codebase.
You can store the API Token in main.tf because it doesn't get set there.
YOUR NOTES
Terraform takes the current state and stores it in a file called terrraform.tfstate.backup
Its not easy to find documentation for this feature, but if you test in practice you will see that
this is how it works locally.
Sentinel provides a secure score so you know the security posture of your
infrastructure
You would use a third-party provider like VSG to generate a secure score.
Sentinel allows you to write policies to validate that your infrastructure is in its
expected configuration.
Sentinel is a Policy as Code tool. You can use it to validate the state of your infrastructure and
automate it for remediation to ensure your infrastructure stays compliant.
Sentinel Documentation
Sentinel monitors state files for sensitive data and provides logging of your various SELECTED
runs to for tamper evidence.
YOUR NOTES
There is a sensitive attribute but all it does is mask the output to console when using CLI
commands.
No, the statefile does not contain sensitive values from variables.
This is not true. The state file can contain values from input variables.
Yes, when you use input variables the values may be stored within your state file depending
on how your file is configured. You should always treat your state file as containing sensitive
data. Its recommended to use a remote backend or Terraform Cloud to manage state.
No, input variables are automatically encrypted when stored in the state file.
This is not true. Terraform does not encrypt values within a state file.
EXPLANATION
This is a very good read about managing secrets in your Terraform Code:
https://blog.gruntwork.io/a-comprehensive-guide-to-managing-secrets-in-your-terraform-code-
1d586955ace1
https://www.terraform.io/docs/language/values/variables.html#suppressing-values-in-cli-output
YOUR NOTES
provisioner "file" {
source = "conf/myapp.conf"
destination = "/etc/myapp.conf"
}
No its missing the description attribute
content block is required or the destination block is required. You cannot have both.
Yes, all you need is a source and destination or a source and content
https://www.terraform.io/docs/language/resources/provisioners/file.html#argument-reference
https://www.terraform.io/language/resources/provisioners/connection#example-usage
No, file provisioner can only move tf, sh, zip or golang files.
YOUR NOTES
NA
for file provisoner , how to know whether network connection setting is
needed?
Answered
Megan Oct 5, 20221 Replies