Terraform Operations: Difference between revisions
(→Show) |
(→Apply) |
||
Line 26: | Line 26: | ||
Formats all .tf in the current directory. It aligns equals, etc. Formatting enables standardization. | Formats all .tf in the current directory. It aligns equals, etc. Formatting enables standardization. | ||
=Plan= | |||
=Apply= | =Apply= | ||
{{External|https://www.terraform.io/docs/commands/apply.html}} | {{External|https://www.terraform.io/docs/commands/apply.html}} |
Revision as of 22:42, 13 November 2019
Internal
Version
terraform version
Help
terraform --help terraform <command> --help
Initialization
The initialization operation initializes various local settings that will be used by subsequent commands. The command also downloads provider binaries. The command needs to be re-run if new modules are set or changed, or backend configuration changes.
terraform init
The command creates a .terraform directory, which contains a "plugins" sub-directory.
Configuration File Formatting
terraform fmt
Formats all .tf in the current directory. It aligns equals, etc. Formatting enables standardization.
Plan
Apply
terraform apply
The output shows the execution plan, in a format similar to diff.
-/+ means the resource will be destroyed and recreated rather than update it in-place. ~ means update in-place.
An execution plan has been generated and is shown below.
Resource actions are indicated with the following symbols:
+ create
Terraform will perform the following actions:
# aws_instance.terraform-test-01 will be created
+ resource "aws_instance" "terraform-test-01" {
+ ami = "ami-a6faba49dddaecfb7"
+ arn = (known after apply)
+ associate_public_ip_address = (known after apply)
+ availability_zone = (known after apply)
+ cpu_core_count = (known after apply)
+ cpu_threads_per_core = (known after apply)
+ get_password_data = false
+ host_id = (known after apply)
+ id = (known after apply)
+ instance_state = (known after apply)
+ instance_type = "m5.4xlarge"
+ ipv6_address_count = (known after apply)
+ ipv6_addresses = (known after apply)
+ key_name = (known after apply)
+ network_interface_id = (known after apply)
+ password_data = (known after apply)
+ placement_group = (known after apply)
+ primary_network_interface_id = (known after apply)
+ private_dns = (known after apply)
+ private_ip = (known after apply)
+ public_dns = (known after apply)
+ public_ip = (known after apply)
+ security_groups = (known after apply)
+ source_dest_check = true
+ subnet_id = (known after apply)
+ tenancy = (known after apply)
+ volume_tags = (known after apply)
+ vpc_security_group_ids = (known after apply)
+ ebs_block_device {
+ delete_on_termination = (known after apply)
+ device_name = (known after apply)
+ encrypted = (known after apply)
+ iops = (known after apply)
+ kms_key_id = (known after apply)
+ snapshot_id = (known after apply)
+ volume_id = (known after apply)
+ volume_size = (known after apply)
+ volume_type = (known after apply)
}
+ ephemeral_block_device {
+ device_name = (known after apply)
+ no_device = (known after apply)
+ virtual_name = (known after apply)
}
+ network_interface {
+ delete_on_termination = (known after apply)
+ device_index = (known after apply)
+ network_interface_id = (known after apply)
}
+ root_block_device {
+ delete_on_termination = (known after apply)
+ encrypted = (known after apply)
+ iops = (known after apply)
+ kms_key_id = (known after apply)
+ volume_id = (known after apply)
+ volume_size = (known after apply)
+ volume_type = (known after apply)
}
}
Plan: 1 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
Enter a value: yes
aws_instance.terraform-test-01: Creating...
aws_instance.terraform-test-01: Still creating... [10s elapsed]
aws_instance.terraform-test-01: Still creating... [20s elapsed]
aws_instance.terraform-test-01: Creation complete after 24s [id=i-afbbc2c4a789ab871]
Show
terraform show
Shows the state. It contain interesting information obtained after installation, such as IP addresses, etc.
Import
Instances can be imported using their ID:
terraform import aws_instance.web i-00000000000
Destroy
terraform destroy