====== Terraform ======
https://www.youtube.com/playlist?list=PLg5SS_4L6LYujWDTYb-Zbofdl44Jxb2l8
[[https://github.com/osvex/terraform|https://github.com/osvex/terraform]]
"Мова" програмування інфраструктури в Cloud і не тільки.
Працює з:
* AWS, GCloud, MS Azure, Digital Ocean, AliCloud
===== Встановлення Terraform на Linux =====
1. Завантажити **.zip ** файл з офіційного сайту.
2. Розпакувати та перемістити виконавчий файл в **/bin/** (після цього зможемо запускати программу з будь якої директорії)
===== Створення проєкта =====
Створюємо файл **main.tf**
**Первинний код:**
provider "aws" {
access_key = "AKIA**********PGPP"
secret_key = "eFsFWN8**********tv1bxn/h/a+eWPvlGb"
region = "eu-north-1"
}
}
resource "aws_instance" "Ubuntu" {
ami = "ami-0014ce3e52359afbd"
instance_type = "t3.small"
tags = {
Name = "My Ubuntu Server"
Owner = "osvex"
Project = "Lessons"
}
}
* **provider**: вказуємо нашого хостера (aws, azure, gcloud). Ключі беруться при створення користувача в AWS спеціально для terraform.
* **Region** - розміщення нод.
* **access_key** - створюються на AWS
* **secret_key** - створюються на AWS
* **resourse**:
* **ami** - код операціонки яку ми хочемо встановити (наприклад ubuntu).
* **Instance_type** - тип сервера (залежність від ресурсів)
* **tags** - теги для ресурса, доп інфа. Створювати можна будь які.
==== ACCESS, SECRET KEY ====
**НЕ створювати ці дані ** їх в main.tf, а прописувати як змінну в сесії терміналу.
export AWS_ACCESS_KEY_ID=
export AWS_SECRET_ACCESS_KEY=
===== Створення ресурсів (instances) =====
Запуск відбувається з **консолі**.
terraform init
Після виконання цієї команди, TF підключається до провайдера (AWS) та встановлює з'єднання.
Далі:
terraform plan
TF проходиться по всіх файлах та показує що буде створено для перевірки, але не виконує цього.
terraform apply
Запускає інсталяцію
===== Видалення ресурсів =====
1. Можна видалити ресурс з кода та запустити.
2. Можна прописати **count** менше ніж було, наприклад **0**.
3. Командою в терміналі видалити **всі** ресурси
terraform destroy
===== Налаштування політик безпеки =====