====== 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 ===== Налаштування політик безпеки =====