devops:terraform

Розбіжності

Тут показані розбіжності між вибраною ревізією та поточною версією сторінки.

Посилання на цей список змін

Порівняння попередніх версій Попередня ревізія
devops:terraform [28/01/2026 15:57] – знищено - зовнішнє редагування (Невідома дата) 127.0.0.1devops:terraform [28/01/2026 15:57] (поточний) – ↷ Сторінка посунуто з notes:devops:terraform на devops:terraform osvex
Рядок 1: Рядок 1:
 +====== 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**
 +
 +**Первинний код:**
 +
 +<code teraterm>
 +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"
 +  }
 +
 +}
 +
 +
 +</code>
 +
 +  * **provider**: вказуємо нашого хостера (aws, azure, gcloud). Ключі беруться при створення користувача в AWS спеціально для terraform.
 +      * **Region**  - розміщення нод.
 +      * **access_key**  - створюються на AWS
 +      * **secret_key**  - створюються на AWS
 +  * **resourse**:
 +      * **ami**  - код операціонки яку ми хочемо встановити (наприклад ubuntu).
 +      * **Instance_type**  - тип сервера (залежність від ресурсів)
 +      * **tags**  - теги для ресурса, доп інфа. Створювати можна будь які.
 +==== ACCESS, SECRET KEY ====
 +
 +**НЕ створювати ці дані **  їх в main.tf, а прописувати як змінну в сесії терміналу.
 +<code>
 +
 +export AWS_ACCESS_KEY_ID=
 +export AWS_SECRET_ACCESS_KEY=
 +
 +</code>
 +
 +===== Створення ресурсів (instances) =====
 +
 +Запуск відбувається з **консолі**.
 +
 +<code>
 +terraform init
 +
 +</code>
 +
 +Після виконання цієї команди, TF підключається до провайдера (AWS) та встановлює з'єднання.
 +
 +Далі:
 +
 +<code>
 +terraform plan
 +
 +</code>
 +
 +TF проходиться по всіх файлах та показує що буде створено для перевірки, але не виконує цього.
 +
 +<code>
 +terraform apply
 +
 +</code>
 +
 +Запускає інсталяцію
 +
 +===== Видалення ресурсів =====
 +
 +1. Можна видалити ресурс з кода та запустити.
 +
 +2. Можна прописати **count**  менше ніж було, наприклад **0**.
 +
 +3. Командою в терміналі видалити **всі**  ресурси
 +
 +<code>
 +terraform destroy
 +
 +</code>
 +
 +===== Налаштування політик безпеки =====