Terraform: инфраструктура на уровне кода | страница 41
Откройте терминал, перейдите в папку, в которой вы создали файл main.tf, и выполните команду terraforminit:
$ terraform init
Initializing the backend...
Initializing provider plugins...
- Checking for available provider plugins...
- Downloading plugin for provider "aws" (terraform-providers/aws) 2.10.0...
The following providers do not have any version constraints in configuration, so the latest version was installed.
To prevent automatic upgrades to new major versions that may contain breaking changes, it is recommended to add version = "..." constraints to the corresponding provider blocks in configuration, with the constraint strings suggested below.
* provider.aws: version = "~> 2.10"
Terraform has been successfully initialized!
Исполняемый файл terraform поддерживает основные команды Terraform, но он не содержит никакого кода для провайдеров (вроде AWS, Azure или GCP). Поэтому, начиная работу с этим инструментом, вы должны выполнить terraforminit, чтобы он мог просканировать ваш код, определить, с какими провайдерами вы работаете, и загрузить для них подходящие модули. По умолчанию код провайдеров загружается в папку .terraform, которая является рабочей папкой Terraform (стоит добавить ее в .gitignore). В последующих главах вы познакомитесь с другими сценариями использования команды init и папки .terraform. А пока что просто знайте, что init необходимо выполнять каждый раз, когда вы начинаете писать новый код Terraform, и это можно делать многократно (это идемпотентная команда).
Теперь, загрузив код провайдера, выполните команду terraformplan:
$ terraform plan
(...)
Terraform will perform the following actions:
# aws_instance.example will be created
+ resource "aws_instance" "example" {
+ ami = "ami-0c55b159cbfafe1f0"
+ 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)