devops:terraform

Розбіжності

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

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

Порівняння попередніх версій Попередня ревізія
Наступна ревізія
Попередня ревізія
devops:terraform [20/02/2024 09:56] osvexdevops:terraform [28/01/2026 15:57] (поточний) – ↷ Сторінка посунуто з notes:devops:terraform на devops:terraform osvex
Рядок 1: Рядок 1:
 ====== Terraform ====== ====== Terraform ======
  
-Типу мова програмування інфраструктури в Clod і не тільки.+https://www.youtube.com/playlist?list=PLg5SS_4L6LYujWDTYb-Zbofdl44Jxb2l8 
 + 
 +[[https://github.com/osvex/terraform|https://github.com/osvex/terraform]] 
 + 
 +овапрограмування інфраструктури в Cloud і не тільки.
  
 Працює з: Працює з:
  
-  * AWS +  * AWSGCloudMS AzureDigital OceanAliCloud
-  * GCloud +
-  * MS Azure +
-  * Digital Ocean +
-  * AliCloud +
-  * Others+
  
-===== Створення проєкта=====+===== Встановлення Terraform на Linux ===== 
 + 
 +1. Завантажити **.zip **  файл з офіційного сайту. 
 + 
 +2. Розпакувати та перемістити виконавчий файл в **/bin/**  (після цього зможемо запускати программу з будь якої директорії) 
 + 
 +===== Створення проєкта =====
  
 Створюємо файл **main.tf** Створюємо файл **main.tf**
Рядок 20: Рядок 25:
 <code teraterm> <code teraterm>
 provider "aws" { provider "aws" {
-  access_key = "AKIA2UC3AUXV42D5PGPP+ access_key = "AKIA**********PGPP
-  secret_key = "eFsFWN8mlhiyBObOVhQusJtv1bxn / h / a + eWPvlGb" + secret_key = "eFsFWN8**********tv1bxn/h/a+eWPvlGb" 
-  region     = "eu-north-1"+ region = "eu-north-1"
 } }
- +} 
-resource "aws_instance" "my_Ubuntu" {+resource "aws_instance" "Ubuntu" {
   ami           = "ami-0014ce3e52359afbd"   ami           = "ami-0014ce3e52359afbd"
-  instance_type = "t3.micro"+  instance_type = "t3.small" 
 +  tags = { 
 +    Name    = "My Ubuntu Server" 
 +    Owner   = "osvex" 
 +    Project = "Lessons" 
 +  }
  
 } }
 +
  
 </code> </code>
  
-**provider**: вказуємо нашого хостера (aws, azure, gcloud). Ключі беруться при створення користувача в AWS спеціально для terraform. Region - розміщення нод.+  * **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>
  
-**resourse**: ami - код операціонки яку ми хочемо встановити (наприклад ubuntu). Instance_type - тип сервера (залежність від ресурсів)+===== Налаштування політик безпеки =====
  
  • devops/terraform.1708422991.txt.gz
  • Востаннє змінено: 20/02/2024 06:56
  • (зовнішнє редагування)