26-Terraform - Использование Terraform Remote State

preview_player
Показать описание
#devops #девопс #terraform #ityoutubersru
26-Terraform - Использование Terraform Remote State на AWS S3

Этот курс со всеми уроками:

Список уроков:

1. Что такое Terraform и для чего он нужен
2. Установка на Windows
3. Установка на Linux
4. Текстовый редактор Atom, установка и настройка
5. Создание ресурсов в AWS
6. Изменение ресурсов в AWS
7. Удаление ресурсов в AWS
8. Создание одного Простого рабочего Web Server'а
9. Использование статических внешних файлов - file
10.Использование динамичных внешних файлов - templatefile
11.Динамичные Блоки кода Terraform
12.LifeCycle ресурсов и почти Zero DownTime :)
13.Вывод результатов - Outputs
14.Порядок создания ресурсов - depends_on
15.Получение данных с помощью Data Source
16.Автопоиск AMI id с помощью Data Source
17.Создание Web Server'а c Zero DownTime и Green/Blue Deployment
18.Использование Переменных - variables
19.Автозаполнение переменных - tfvars
20.Использование Локальных Переменных - locals
21.Запуск Локальных команд - local-exec
22.Генерация паролей, их хранение в SSM Parameter Store и пример использования
23.Использовние Conditions и Lookups
24.Использование циклов - count, for if
25.Создание ресурсов в нескольких AWS Regions и AWS Accounts
26.Использование Terraform Remote State
27.Создание Модулей Часть-1 - Terraform Module
28.Создание Модулей Часть-2 - Terraform Module
29.Поднятие Нескольких Инфраструктур Prod, Dev, Staging
30.Как хранить Глобальные переменные - Global Variables
31.Как работать с Google Cloud Platform - GCP
32.Как я учил Terraform и Полезные ресурсы по теме
33.Как управлять ресурсами созданными вручную - terraform import
34.Как пересоздать ресурс безболезненно - terraform taint
35.Манипуляции с remote state используя terraform state команды
36.Terraform Workspace
37.Terrafrom Cloud
38.Terraform Enterprise
39.Что нового в Terraform 0.13
40.Сертификационный Экзамен HashiCorp Certified Terraform Associate
Рекомендации по теме
Комментарии
Автор

Спасибо. Денис. Наконец то поняла этот Backend file Для чего и с чем его едят.

azamatkarimov
Автор

Мега крутой урок! ОГРОМНОЕ Спасибо! Все очень полезно!

nedimice
Автор

Спасибо Денис, очень полезный урок. И такой урок с уклоном в практику намного интереснее смотрится. И заодно знания по AWS неплохо освежил с помощью этого урока)

kostiantynivanov
Автор

Аутпуты еще удобно, когда нужно впихнуть невпихуемое в ресурс)

Например instance_group

Может ссылалаться на id, при этом этот параметр нельзя сделать кажется сделать переменным. И либо тебе прописывать все айдишники при каждом изменении, либо написать инстансы в модуле, там же сделать output node_ids = compute.instance.id

А уже в другом модуле вызывать
group = module.node_ids.

Прибавляешь/удаляешь ноды, все автоматом меняется. Хотя в гугле лучше юзать self_link, а не ID

NikSudo
Автор

Не знаю, я как только пришел на работу девопсером, мне дали задачу задеплоить инстансы в гуглклауд (гори огнем https-LB, который не умеет в регулярные выражения… столько времени потерял) - а потом деплоить сами приложения… есть две площадки и я уже понял, что terraform-output нужно использовать по-полной.

Раза три я позаполнял инвентарь для ансибла и уже надоело) да и в компании задумались об автоматизации и этого шага)

Кстати через терраформ аутпут мне кажется все эти данные по сети можно привести в человекоподобный, парсинг-реди вид. Чем иметь удовольствие в этом жсоне ковыряться потом.

NikSudo
Автор

Денис, спасибо за видео, расскажи пожалуйста про service mesh

justwide
Автор

Добрый день. Начал раскуривать AWS по вашим роликам. Жаль что они 6-и летней давности, но надеюсь для сдачи экзамена Cloud Practitioner хотя-бы хватит. Глядишь так и вырасту из сис админа в DevOps :)
А вообще канал - просто сокровищница знаний.

exire
Автор

Кстати, не баг, а фича - у меня порой tflock происходил… по ощущениям снифига. Вот потом веселуха то была залезать на бакет и удалять этот тфстейт. А, ну типо не помешать друг-другу. Он лочится так, что без —tflock=false нифига не запустится. Смысл от такого протекта? Ни поработать, ни защиты.

Тфлок точно появится, если на моменте “are you shure to apply changes” нажать контрл+с

NikSudo
Автор

Денис, а где - ставьте лайки, оставляйте комментарии под видео?) на 6.7 тыс просмотров 200 лайков всего.

bigsem
Автор

10 минута… про AWS не знаю, но в гугле бакет можно создать терраформой. А в tfstate на всякий можно прописать depends_on = [gcp_bucket.somename] - и все это запихнуть в backend.tf

Вроде не было проблем с очередномть создания ресурсов

NikSudo
Автор

Денис, привет! Microsoft отменила экзамены MTA (Windows Servers Fundamentals, Network Fundamentals и тд) которые ты рекомендовал в своём предыдущим видео по девопс. Какой сертификат на сегодняшний день посоветуешь по основам Servers и Network?

ygwtxon
Автор

Денис, привет!
Извини за оффтоп - но для тераформа я маловат еще)))
А вопрос вот какой - не планируешь ли ты сделать видосики про аргосд и ранчер?

olegsolodkov
Автор

Hi Dennis, thanks a lot for your hard work, can you help, how to add not only HTML code? i want CSS and JVscript in user data as well. you can type on russian, i`m writing on eng cause i don`t have russian keyboard)

DanyloPolishchuk
Автор

Почему в примерах только авс а нет оракл клауд, мс ажур?

nextgeneration
Автор

Погоди, а как ты предлагаешь хранить tfstate удаленно, одновременно работать и все такое?

Если я напишу модуль по созданию инстансов «сервис_для_васяна», а мой коллега напишет модуль по созднаию инстансов «сервис_для_лехи» - даже если мы замерджим себе tfstate с гита или будем хранить его на файловой шаре и получать обновления онлайн так скзаать, один фиг - у него нет моего модуля, у меня нет его модуля. Я свой говнокод деплою первым, потом коллега эплаит свой модуль - у него будет «вы действительно хотите удалить 100500 инстансов для васяна?

К тому же не знаю как вы, а я тфстейт напротив добавил в гитигнор, что бы можно было один и тот же код с разными .tfvars юзать (особенно если проджектID) другой.

Или тут разгаоор про зранение тфстейта удаленно - в облаке? Все так же нужно будет таки мерджить код постоянно. А в идеале наверное вообще настроить TC/jenkins только на мастер ветку, что бы рученки не лезли задестроить чего не просят. Отжать еще файлы авторизации и закрыть доступ к просмотру такой инфы на веб-морде)

Я терраформой порой сам себе умудряюсь испоганить свое творчество (как можно забацать двойной цикл в терраформе вообще? Почему есть только count.index? Проект у меня типо с сегментами. Модет быть нечетное кол-во узлов в сегменте, любое кол-ао сегментов, и есть узлы вне логики сегментов. Наименование функциональное по типу я выкрутился, что считал индекс сегмента в мэйн.тф (где просто написан модуль), а индекс ноды считал уже в самом коде модуля, где описаны ресурсы. Это то ладно, прикол вышел, когда я внешние диски описал в одном модуле для всего этого чуда. Сначала нужно было один сегмент создать и 2 ноды вне сегментов. Все работет. Потом увеличил ноды вне сегментов - все круто. Потом создал второй сегмент - все круто. Потом нужно снова увеличить ноды вне сегментов и терраформа меня посылает далеко и на долго. Пришлось ппереписывать модуль дисков и разграничивать на диски с логикой модуля и без нее - ессесно с полным удалением всех нод вне сегментов.

Так вот есть ли более элегантный способ сделать эту таску и что при этом всем можно было управлять тупо меняя переменные :

count_segments; count_server_vne_segmenta; server_dlya_lehi_v_segmente ?

NikSudo
Автор

Вопрос на злобу дня! Как то уже под роликом писал коммент, что у меня поднят VPN сервачок на OCI tier, там все отлично летает- ограничения в трафике нету(20TB/месяц), короче все классно. Где то две недели назад Oracle прислал уведомление, о том что с 12.03 будет заблокированы сервисы, но из контекста я понял, что если перезапустить сервис- то сработает бан, поэтому я не останавливаю этот сервер, он крутится сам по себе и все норм. Потом они прислали через неделю еще одно уведомление, что будут проводится профилактические работы и принудительно перезапустят сервисы 24.03. Понятно и очевидно зачем они это делают. Вопрос- это и есть их право на 0, 05% невыполненного SLA?) Я просто вот думаю, а если бы у меня был коммерческий инстанс и все вытекающие?

FUNCHIK
Автор

Загрузили же в тераформ вредоносный код сегодня.

imyoobn
Автор

Непонятно откуда no valid credential, если в провайдере они прописаны. Заработало только при повторении их в s3. Какая логика, почему каждый instance или vpc не простя заново указывать креды? Вот так заработало:
provider "aws" {
access_key = "xxx"
secret_key = "yyy
region = "eu-central-1"
}

terraform {
backend "s3" {
bucket = "learningstate"
key =
region = "eu-central-1"
access_key = "xxx"
secret_key = "yyy"
}
}

marrr_marrr
Автор

error

Initializing the backend...
│ Error: error configuring S3 Backend: no valid credential sources for S3 Backend found.

до тех пор, пока не сделал

aws configure

Richard_Aldington