бро, ахеренные курсы, спасибо большое. а если бы обьяснил связку с энсиблом под терраформом вообще было бы каефно. надеюсь выйдут курсы по эластику и кубику ещё
Крутые уроки, очень полезные и информативные. Главное что просто и на практике! Объяснение почему Terraform не создает дополнительные instance при повторном запуске terraform apply: Terraform относится к декларативным языкам, то есть вы описываете конечное состояние инфраструктуры. На противовес этому существует Ansible - процедурный язык, который описывает шаги к достижению цели (то есть при повторном запуске будет добавлен новый instance)
@ADV-IT Денис - большое Вам спасибо за безценный опыт! P.S. если ваши Terraform скрипты под версионным контролем, чтобы AWS Access Key и Secret Key не стали случайно общедоступными и несанкционированно использованы, как вариант, можно хранить их в environment variables и в скриптах использовать их значения: переменные окружения нужно создать с суффиксом TF_VAR_ например: TF_VAR_AWS_ACCESS_KEY TF_VAR_AWS_SECRET_KEY то в terraform скрипте можно использовать их значения объявив переменные AWS_ACCESS_KEY и AWS_SECRET_KEY без суффикса TF_VAR_ так работает: variable "AWS_ACCESS_KEY" { type = string } variable "AWS_SECRET_KEY" { type = string } provider "aws" { access_key = var.AWS_ACCESS_KEY secret_key = var.AWS_SECRET_KEY region = "eu-central-1" }
@@СергейЗлаторев Есть лучшее решение, установить AWS CLI, добавить default профиль C:\Users\[user_name]\.aws\credentials выполнив команды ниже aws configure get aws_access_key_id --profile default aws configure get aws_secret_access_key --profile default при последующем запуске terraform, provider "aws" подтянет aws_access_key_id и aws_secret_access_key из default профиля AWS
@@SalvationInUnity так речь не про aws. Это всего один из многих провайдеров. Относитель самого tf креды можно скрывать или через environment, или через tfvars. Если есть еще способы (может интеграция с vault какая подъехала) буду рад услышать варианты.
Можно еще креды в шаблонах ансибла хранить, закрытых через ansible-vault, но это все же внешний инструмент. А вот хотелось бы узнать именно про средства работы с кредами самого tf.
@@СергейЗлаторев Другой способ - использовать Terraform Cloud, создать API Token и сохранить локально в C:\Users\[user_name]\AppData\Roaming\terraform.d\credentials.tfrc.json, затем создать Workspace, добавить environment sensitive workspace variables (AWS_ACCESS_KEY, AWS_SECRET_KEY), мигрировать terraform state в terraform cloud (добавить backend.tf) - сейчас так работаю, очень удобно, credentials надёжно хранятся в Terraform Cloud.
@@ADV-IT Ну локально или просто арендуемые сервера, где можно было бы через мастер сервер настроить конфигурацию над другими серверами. Ну я дальше начал смотреть, как будто для таких целей лучше ansible использовать, а Terraform просто идеален для облачных провайдеров.
Денис, если сейчас купить этот курс на Udemy, то уроки, которые впоследствии будут добавлены в него, тоже будут доступны? Сорри за глупый вопрос, я не очень знакома с этой платформой (
Денис, а под vsphere данный курс реально трансформировать? Ну т.е. принцип одинаков, или придется серьезно доучивать? Не посоветуешь материал под это дело?
Здравствуйте! Спасибо большое за все Ваши уроки! Огненный огонь! Подскажите пожалуйста, есть ли какой нибудь refresh, чтобы проверить наличие инстансов (в случае, если были удалены важные файлы)?
@@ADV-IT если удалить файлы tfstate, но при этом не удалять созданные экземпляры, можно потом как-то "подгрузить" эти экземпляры обратно или после удаления tfstate можно забыть про них? Нашёл команду terraform state pull, но насколько я понимаю, это работает примерно как с гитом и в такой ситуации спасёт только заранее созданный remote state.
Если удалил tfstate, то только использовать terraform import для импорта существующих ресурсов в Терраформ. terraform state pull нужен для remote state, который обязательно нужно использовать и тогда tfstate файлы будут в надежном месте. Посмотри урок про Terraform Remote State: ruclips.net/video/gpUq7pPkPlo/видео.html
привет ден спасибо за урок ) вопрос а поднятие Этих серверов платное ? вроде как если не ошибаюсь то по идее если ты поднял 4 сервера то само поднятие будет стоить 4 долара за кажый сервер может я что-то путаю но вроде так
t2.micro или t3.micro бесплатные до 750 часов в месяц. Но при этом всего 30 GB диска бесплатно. Можешь запускать несколько t3.micro с маленькими дисками по 10 GB
@@ADV-IT да. Только проблема в том что он у меня уже год прошел и фри уже ничего нету) поэтому я максимально стараюсь избежать неожиданных трат и практиковаться только смотря видос но в консоли пуш не делать ибо боюсь что снимут бабки
Спасибо за урок, но я расстроен, я намарозил, я добавил ключи не через main.tf а через командную строчку "export AWS_ACCESS_KEY_ID=(your access key id) export AWS_SECRET_ACCESS_KEY=(your secret access key)" Как мне удалить или заменить эти ключи, чтобы подключиться к другому ресурсу амазона?
К другому аккаунту ты имел ввиду? Способ-1: Просто закрой Terminal и открой новый, всё. Способ-2: запусти: unset AWS_ACCESS_KEY_ID unset AWS_SECRET_ACCESS_KEY
а где по практике хранятся токены для доступа к авс? ведь если их уведут то могут насоздавать ресурсов огого как много. и тут вопрос а в компаниях где сохраняют и как контролировать чтобы не потерять ведь второго фактора в тераформе не будет чтобы обеспечить безопасность.
нет конечно не бесплатно, мой Free Tier уже давно закончился, но я много не держу сервера, убираю сразу почти после записи уроков, так что 5-10$ максимум набегает
Денис, добрый день , вопрос: как terraform понимает что тот экземпляр что развернут соответствует тому что в конфиге и не надо создавать новый , правильно ли я понимаю что ключ это instance_type ?
@@ADV-IT я понимаю что в создаваемом файле есть id инстанса из амазона, я не понимаю как тераформ соотносит эти id с тем что мы пишем в своем файле , ведь наш файл с конфигурацией он не меняет
Привет! Скажи, можно использовать мало-известных хостинг провайдеров вместо AWS, Google и Azure (например firstvds)? Или нужно всё таки арендовать в AWS?
Денис здравствуйте , я получаю следующую ошибки при создании instance │ Error: Error launching source instance: InvalidSubnetID.NotFound: The subnet ID 'subnet-0b1250d733767bafe' does not exist │ status code: 400, request id: 171beea2-6b53-445e-b8ff-68c9a3a1c377
Подскажите кто знает, с aws впервые и не совсем понимаю. Зарегистрировал новый аккаунт, создал по уроку первый инстанс бесплатный t2.micro. Если я создам второй инстанс t2.micro и выйду за лимит по ядрам и ОП (по сумме двух инстансов), то я уже попадаю на платные услуги ? а то учёба встала )
бро, ахеренные курсы, спасибо большое. а если бы обьяснил связку с энсиблом под терраформом вообще было бы каефно. надеюсь выйдут курсы по эластику и кубику ещё
Крутые уроки, очень полезные и информативные. Главное что просто и на практике!
Объяснение почему Terraform не создает дополнительные instance при повторном запуске terraform apply:
Terraform относится к декларативным языкам, то есть вы описываете конечное состояние инфраструктуры. На противовес этому существует Ansible - процедурный язык, который описывает шаги к достижению цели (то есть при повторном запуске будет добавлен новый instance)
Автор, это очень чётко! Храни тебя Дарвин! Обязательно задоначу, как только устроюсь!
Очень круто и доступно преподносится информация! С нетерпением жду следующих выпусков. Денис, Вы просто лучший! Спасибо за то что делитесь знаниями!
Дякую за вашу працю!!!
Спасибо за простое и интересное видео! Для зрителей : используйте AWS CLI, чтобы там прописывать credentials :)
ruclips.net/video/MHubsaVCWYc/видео.html
Kak vsegda ochen prosto i poznovateno, spasibo Denis
Спасибо, Денис! Похоже куплю тоже какой нибудь курс. Просто ради благодарности за проделанную работу!
Заранее спасибо, по Тераформу на Udemy уже 24 урока.
пока 0 знаний про terraform и маленько по devops
информация реально полезная
очень комфортно и понятно смотрится, спасибо
klassno avtor obyasnyet. spasibo
очень доходчиво, спасибо, пошел смотреть дальше)
Спасибо за уроки! Очень классные!
Денис, спасибо огромное за уроки
@ADV-IT Денис - большое Вам спасибо за безценный опыт!
P.S. если ваши Terraform скрипты под версионным контролем, чтобы AWS Access Key и Secret Key не стали случайно общедоступными и несанкционированно использованы, как вариант, можно хранить их в environment variables и в скриптах использовать их значения:
переменные окружения нужно создать с суффиксом TF_VAR_ например:
TF_VAR_AWS_ACCESS_KEY
TF_VAR_AWS_SECRET_KEY
то в terraform скрипте можно использовать их значения объявив переменные AWS_ACCESS_KEY и AWS_SECRET_KEY без суффикса TF_VAR_
так работает:
variable "AWS_ACCESS_KEY" {
type = string
}
variable "AWS_SECRET_KEY" {
type = string
}
provider "aws" {
access_key = var.AWS_ACCESS_KEY
secret_key = var.AWS_SECRET_KEY
region = "eu-central-1"
}
А можно переменные с кредами (если позволяет их задать через var) вынести в отдельный tfvars файл и добавить его в .gitignore
@@СергейЗлаторев Есть лучшее решение, установить AWS CLI, добавить default профиль C:\Users\[user_name]\.aws\credentials выполнив команды ниже
aws configure get aws_access_key_id --profile default
aws configure get aws_secret_access_key --profile default
при последующем запуске terraform, provider "aws" подтянет aws_access_key_id и aws_secret_access_key из default профиля AWS
@@SalvationInUnity так речь не про aws. Это всего один из многих провайдеров. Относитель самого tf креды можно скрывать или через environment, или через tfvars. Если есть еще способы (может интеграция с vault какая подъехала) буду рад услышать варианты.
Можно еще креды в шаблонах ансибла хранить, закрытых через ansible-vault, но это все же внешний инструмент. А вот хотелось бы узнать именно про средства работы с кредами самого tf.
@@СергейЗлаторев Другой способ - использовать Terraform Cloud, создать API Token и сохранить локально в C:\Users\[user_name]\AppData\Roaming\terraform.d\credentials.tfrc.json, затем создать Workspace, добавить environment sensitive workspace variables (AWS_ACCESS_KEY, AWS_SECRET_KEY), мигрировать terraform state в terraform cloud (добавить backend.tf) - сейчас так работаю, очень удобно, credentials надёжно хранятся в Terraform Cloud.
и естественно спасибо за ваш труд
День добрый, спасибо за ваши уроки!
В дальнейшем будет объяснения, как использовать terraform без использования aws, а с созданными серверами?
Созданными серверами где?
@@ADV-IT Ну локально или просто арендуемые сервера, где можно было бы через мастер сервер настроить конфигурацию над другими серверами.
Ну я дальше начал смотреть, как будто для таких целей лучше ansible использовать, а Terraform просто идеален для облачных провайдеров.
Денис, если сейчас купить этот курс на Udemy, то уроки, которые впоследствии будут добавлены в него, тоже будут доступны? Сорри за глупый вопрос, я не очень знакома с этой платформой (
Да, я там так и написал
*КУРС НА СТАДИИ ПРОИЗВОДСТВА, НОВЫЕ УРОКИ ЗАГРУЖАЮТСЯ СРАЗУ ПОСЛЕ ИХ СОЗДАНИЯ!
Планируемое количество уроков: 30. *
Я сегодня 20 и 21-ый выложил туда
Там уже 24 урока
@@ADV-IT спасибо, уже купила, вижу все изменения :)
Денис, а под vsphere данный курс реально трансформировать? Ну т.е. принцип одинаков, или придется серьезно доучивать? Не посоветуешь материал под это дело?
Все ресурсы другие и с другими параметрами, на сайте terraform.io читай www.terraform.io/docs/providers/vsphere/index.html
@@ADV-IT спасибо, уже сам понял :) будем разбираться
Здравствуйте! Спасибо большое за все Ваши уроки! Огненный огонь! Подскажите пожалуйста, есть ли какой нибудь refresh, чтобы проверить наличие инстансов (в случае, если были удалены важные файлы)?
Не понял что значит: refresh, чтобы проверить наличие инстансов (в случае, если были удалены важные файлы)
@@ADV-IT если удалить файлы tfstate, но при этом не удалять созданные экземпляры, можно потом как-то "подгрузить" эти экземпляры обратно или после удаления tfstate можно забыть про них? Нашёл команду terraform state pull, но насколько я понимаю, это работает примерно как с гитом и в такой ситуации спасёт только заранее созданный remote state.
Если удалил tfstate, то только использовать terraform import для импорта существующих ресурсов в Терраформ.
terraform state pull нужен для remote state, который обязательно нужно использовать и тогда tfstate файлы будут в надежном месте. Посмотри урок про Terraform Remote State: ruclips.net/video/gpUq7pPkPlo/видео.html
@@ADV-IT от души! Спасибо большое!
Спасибо Денис!
привет ден спасибо за урок ) вопрос а поднятие Этих серверов платное ? вроде как если не ошибаюсь то по идее если ты поднял 4 сервера то само поднятие будет стоить 4 долара за кажый сервер может я что-то путаю но вроде так
t2.micro или t3.micro бесплатные до 750 часов в месяц.
Но при этом всего 30 GB диска бесплатно.
Можешь запускать несколько t3.micro с маленькими дисками по 10 GB
aws.amazon.com/free
@@ADV-IT понял большое спасибо ☺️
@@ADV-IT да. Только проблема в том что он у меня уже год прошел и фри уже ничего нету) поэтому я максимально стараюсь избежать неожиданных трат и практиковаться только смотря видос но в консоли пуш не делать ибо боюсь что снимут бабки
@@maximumbadula2385 напиши мне в личку
Спасибо большое!
Добрый день. Есть вопрос. Сколько надо выделить денег на AWS при изучении терраформ ? Не очень хочется попадать на деньги
5$ просто не забывай запускать terraform destroy в конце
Привет, Денис. Подскажи какие плагины у тебя установлены для Atom
Спасибо :)
Яже показал в видео вот этом: ruclips.net/video/i3DTkFNKDjo/видео.html
Денис . А вот можно эти все курсы мне прямо в голову... загружать... как в матрице. Заплатил ... и всё Я знаю Кунг фу .?
Было бы круто! =)
и потом получать зарплату как грузчик в соответсвии с приложенными усилиями так сказать
есть ли возможность не раскрывать креденшиалс в коде а использовать как,например,в Jenkins ( withCredentials)?
Есть, смотри дальше, я сделал урок про хранение секретов
Т.е. plan -это опционально? Можно сразу apply запускать?
Ну в принципе да
Спасибо за урок, но я расстроен, я намарозил, я добавил ключи не через main.tf а через командную строчку "export AWS_ACCESS_KEY_ID=(your access key id)
export AWS_SECRET_ACCESS_KEY=(your secret access key)" Как мне удалить или заменить эти ключи, чтобы подключиться к другому ресурсу амазона?
Я именно так и делаю и в следующих уроках именно этот способ рекомендую
К другому аккаунту ты имел ввиду?
Способ-1: Просто закрой Terminal и открой новый, всё.
Способ-2: запусти:
unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY
Спасибо, супер! 👍
а где по практике хранятся токены для доступа к авс? ведь если их уведут то могут насоздавать ресурсов огого как много. и тут вопрос а в компаниях где сохраняют и как контролировать чтобы не потерять ведь второго фактора в тераформе не будет чтобы обеспечить безопасность.
Это тоже самое что и пароль, если его уведут то ого-го.
В компаниях Часто используется Control Tower с SSO, там токены временные
У меня есть урок про это
Привет, как плагин называется для форматирования при сохранении?
Тот что в предыдущем уроке устанавливал так не работает
Смотри предыдущий урок, я его устанавливал и всё работает
я не уверен, на в aws для тестов лучше t2.micro заводить, вроде как 12 месяцев бесплатно, главено не забыть удалить
Так и есть, если у тебя халявный аккаунт то только t2.micro
Денис, а к группе инстансов, созданных с помощью count, можно приаттачить security group? У меня ругается...
Можно конечно
resource "aws_instance" "my_webserver" {
count = 5
ami = "ami-03a71cec707bfc3d7"
instance_type = "t3.micro"
vpc_security_group_ids = [aws_security_group.my_webserver.id]
}
ADV-IT буду дальше искать где трабл. Всё так и делаю, по отдельности работает, если закоментиваю строку. Спасибо за быстрый ответ!
Кавычки были в квадратных скобках...🤦🏻♂️
Привет! Спасибо за уроки! Ты бесплатно юзаешь AWS? Я помню ты в ансибл создавал машин 5 вроде, это было бесплатно?)
нет конечно не бесплатно, мой Free Tier уже давно закончился, но я много не держу сервера, убираю сразу почти после записи уроков, так что 5-10$ максимум набегает
а будут видосы про rabbitmq, redis? если есть опыт? то было бы полезно.
А что там такого, установил и всё
Денис, добрый день , вопрос:
как terraform понимает что тот экземпляр что развернут соответствует тому что в конфиге и не надо создавать новый , правильно ли я понимаю что ключ это instance_type ?
Terraform создаёт terraform.tfstate файл и пишет туда ВСЕ данные созданного ресурса, не только instance_type.
самые главный это instance-id
@@ADV-IT я понимаю что в создаваемом файле есть id инстанса из амазона, я не понимаю как тераформ соотносит эти id с тем что мы пишем в своем файле , ведь наш файл с конфигурацией он не меняет
Привет! Скажи, можно использовать мало-известных хостинг провайдеров вместо AWS, Google и Azure (например firstvds)? Или нужно всё таки арендовать в AWS?
Придется, так как Terraform не поддерживает мало известных
atom c декабря закрывается, есть что-то похожее?
Visual Studio Code
а откуда запускается terraform? точнее Linux сервер создан на AWS?
Посмотри уроки раньше, там всё показано
Денис здравствуйте , я получаю следующую ошибки при создании instance
│ Error: Error launching source instance: InvalidSubnetID.NotFound: The subnet ID 'subnet-0b1250d733767bafe' does not exist
│ status code: 400, request id: 171beea2-6b53-445e-b8ff-68c9a3a1c377
Ну ошибка понятная:
The subnet ID 'subnet-0b1250d733767bafe' does not exist
@@ADV-IT но я создаю сабнет и впс , поменял регион и ami id ,сработало
Денис, как прописать таги к каждому из инстансов, созданных с помощью count ?
resource "aws_instance" "web" {
count = 10
ami = "ami-123456"
instance_type = "t2.micro"
tags = {
Name = "ServerNumber-${count.index + 1}"
}
}
ADV-IT чувствовал что надо где-то count.index+1 воткнуть )) видимо не всё потеряно. Спасибо огромное!
А что делать с ключами, если нужно наш файл конфигурации запушить на гитхаб? Куда их девать?!
Выберай любой вариант:
1. Создать ключи через Terraform
2. AWS SSM Parameter Store
3. AWS Secrets Manager
4. Vault
5. и так далее
@@ADV-IT Спасибо!
я просто тащусь от этого звука прокрутки вконце, еще и как ручка клацает потом)
krasav4eg
а почему все обходят GCP, было бы замечательно и его рассмотреть
В уроке 31 по Terraform я показываю пример с GCP.
Все 32 урока тут www.udemy.com/rus-terraform/?couponCode=ADV-IT-RUS-TERRAFORM
@@ADV-IT не ну 1 урок это совсем не серьезно )
Подскажите, как сделать чтобы выравнивался код по нажатию ctrl + s ?
Установи плагин который я показывал когда устанавливал Atom
@@ADV-IT да я тоже установил, но чет не хочет делать красиво((
@@ADV-IT Большая Вам благодарность за Ваши труды, для меня Ваш канал очень ценный источник информации. не удержался купил курс на Udemy ))
Подскажите кто знает, с aws впервые и не совсем понимаю.
Зарегистрировал новый аккаунт, создал по уроку первый инстанс бесплатный t2.micro.
Если я создам второй инстанс t2.micro и выйду за лимит по ядрам и ОП (по сумме двух инстансов), то я уже попадаю на платные услуги ? а то учёба встала )
Тебе даётся 720 часов t2.micro в месяц и дисков на 30 GB в месяц бесплатно.
Если запустишь два t2.micro то всего первые 360 часов будут нахаляву.
Запусти несколько t2.micro, просто не забудь убить. terraform destroy.
720 часов это если совсем не выключать один t2.micro
@@ADV-IT Спасибо большое.
Можно ли как-то получить из AWS террафирм code?
Пока нет, в будующем можно будет вроде через terraform import
@@ADV-IT спасибо
«параМетры» 😂😂😂
Выбираете самый дорогой инстанс, устанавливаете значение count = 100 000. И всё, вы гражданин США! За долги придётся вам гражданство дать.
Скорей всего получишь ощибку: что exceed limit
@@ADV-IT Денис я пошутил ) Пересматриваю видео, готовлюсь к собеседованию.
Аххахах)
Денис, растолкуй. Крутые девопсы типа тебя юзают Терраформ для поднятия\изменения ИНФРАСТРУКТУРЫ, а Ансибл - только для управления именно СЕРВЕРАМИ?
Terraform и CloudFormation для поднятия серверов и инфраструктуры. Ansible для настройки и конфигурирования.
Как только после создания подключаться к этим серверам?
Для этого надо учить AWS
@@ADV-IT Понятно что с консоли AWS создается пара ключей, но как это зарулить в Terraform
terraform init нихрена не скачивает. Провайдеров нету и все на этом
У всех скачавает, у тебя не скачивает.
А что пишет?
Пишет invalid provider registry host. Может ли это быть связано с тем, что терраформ в России все?
mc bro)
21:05 - что на фоне за слоновий топот?)) пальцами по столу стучал?
Кажись так и есть
пара метр хренов))))))))))
Денис нужна помощь, как тебя найти(?) (48363382)
Кто ищет тот всегда найдёт.
автору бы подучить английский
Печально что из рф никак не оплатить AWS
Только используя AWS Credits, а их можно получить только на разных events от AWS
@@ADV-IT А вы могли бы пару уроков записать по работе Тераформа с Яндекс Клаудом? Может в курс на юдеми хотябы? я бы купил сразу, пожалуйста
@@DunSety Сорри, но я ЯндексКлауд совсем не знаю
на болотах не потрібен AWS