Робочий процес
Для початку треба зрозуміти як працювати з Terraform самостійно. Потім ми навчимося працювати спільно.

Write
Ви пишете конфігурацію Terraform так само, як пишете код: у вибраному вами редакторі. Звичайною практикою є зберігання вашої роботи в репозиторії, контрольованому версією, навіть якщо ви просто працюєте як фізична особа.
# Створення репозиторію
$ git init my-infra && cd my-infra
Initialized empty Git repository in /.../my-infra/.git/
# Створення першого конфігураційного файлу
$ vim main.tf
# Ініціалізація Terraform
$ terraform init
Initializing provider plugins...
# ...
Terraform has been successfully initialized!
Помірі того, як ви просуваєтеся в написанні конфігурації, повторні запуски планів допоможуть виправити синтаксичні помилки і переконатися, що ваша конфігурація збирається так, як ви очікуєте.
# Редагуємо нконфігурацію
$ nano main.tf
# Перевіряємо план
$ terraform plan
# Робимо додаткові зміни, доки вас не влаштує план
$ nano main.tf
таким чином, паралельно з роботою над кодом програми, ви отримуєте зворотній зв'язок від Terraform про зміни, які будуть виконані.
Plan
Коли цикл зворотного зв'язку на кроці "Write" привів до змін, які виглядають добре, настав час завершити роботу і переглянути остаточний план.
$ git add main.tf
$ git commit -m 'Managing infrastructure as code!'
[main (root-commit) f735520] Managing infrastructure as code!
1 file changed, 1 insertion(+)
Оскільки terraform apply відображає план для підтвердження перед тим, як перейти до зміни будь-якої інфраструктури,
це команда, яку ви запускаєте для остаточного перегляду.
$ terraform apply
An execution plan has been generated and is shown below.
# ...
Apply
Після останньої перевірки ви готові доручити Terraform створити реальну інфраструктуру.
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
# ...
Apply complete! Resources: 1 added, 0 changed, 0 destroyed.
На цьому етапі зазвичай роблять комміт та переміщують зміни у віддалений репозиторій для безпечного зберігання.
$ git remote add origin https://github.com/*user*/*repo*.git
$ git push origin main
Цей основний робочий процес є циклом; наступного разу, коли ви захочете внести зміни, ви почнете процес з самого початку.
[!NOTE] Зверніть увагу, наскільки цей робочий процес - схожий на процес написання коду програми або скриптів окремим користувачем? Це те, що ми маємо на увазі, коли говоримо про те, що Terraform надає інфраструктуру у вигляді коду.