На этом заключительном шаге вы будете использовать стандартные команды Terraform для инициализации, планирования и применения конфигурации. Это приведет к выполнению кода в вашем модуле и созданию локального файла.
Сначала инициализируйте рабочую директорию Terraform. Эта команда загружает необходимые плагины провайдеров (в данном случае, hashicorp/local).
terraform init
Вы должны увидеть сообщение об успехе, указывающее, что Terraform был инициализирован.
Initializing the backend...
Initializing provider plugins...
- Finding hashicorp/local versions matching "2.4.0"...
- Installing hashicorp/local v2.4.0...
- Installed hashicorp/local v2.4.0 (signed by HashiCorp)
Terraform has been successfully initialized!
...
Далее выполните terraform plan, чтобы увидеть, какие изменения внесет Terraform. Это "сухой запуск" (dry run), который ничего не меняет, но показывает вам план выполнения.
terraform plan
Вывод покажет, что будет создан один ресурс (это local_file внутри вашего модуля).
...
Plan: 1 to add, 0 to change, 0 to destroy.
Changes to Outputs:
+ created_file_path = (known after apply)
...
Теперь примените конфигурацию для создания файла. Мы будем использовать флаг -auto-approve, чтобы пропустить интерактивный запрос на подтверждение.
terraform apply -auto-approve
Terraform выполнит план и создаст файл. Вывод подтвердит создание и отобразит определенное вами выходное значение.
...
module.file_creator_instance.local_file.example: Creating...
module.file_creator_instance.local_file.example: Creation complete after 0s [id=f73598097552a798110a31388c54c1194b539a53]
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
Outputs:
created_file_path = "./modules/localfile_creator/my_test_file.txt"
Наконец, проверьте, что файл был создан с правильным содержимым. Выведите список файлов в директории модуля, а затем отобразите содержимое нового файла.
ls -l modules/localfile_creator/
cat modules/localfile_creator/my_test_file.txt
Вывод команды cat должен быть следующим:
Hello from the root module!
Поздравляем, вы успешно создали и использовали модуль Terraform!