Данный репозиторий содержит Terraform модули и примеры с кодом для автоматизации основных задачи управления облачной инфраструктурой. Код может использоваться сам по себе, либо в составе Terraform модуля, который разворачивает необходимые, в зависимости от сценария ресурсы: Cloud Function, триггеры, Yandex Database.
Функция | Каталог | Описание | Сценарий |
---|---|---|---|
Запуск ВМ по таймеру | 01-start-vm-cron |
Автоматический запуск ВМ по расписанию | Запуск тестовых ВМ каждое утро в 08:00 |
Остановка ВМ по таймеру | 02-stop-vm-cron |
Автоматическая остановка ВМ по расписанию | Остановка тестовым ВМ каждый вечер в 20:00 |
Масштабирование группы узлов | 03-scale-fixed-ig-cron |
Масштабирование группы узлов по расписанию | Наращивание группы узлов по утрам, уменьшение группы узлов по вечерам |
Очистка бакета | 04-bucket-clean-up |
Автоматическая очистка бакетов по расписанию | Удаление старых бэкапов или временных файлов по заданному расписанию |
Копирование объектов бакета | 05-auto-copy-bucket-objects |
Автоматическое копирование новых объектов между бакетами Object Storage. Практическое руководство. | Постоянная репликация между бакетами для резервного копирования |
Сохранение логов ALB в YDB | 06-alb-logging-to-ydb |
Сохранение логов Application Load Balancer в YDB. Практическое руководство для PostgreSQL | Долговременное хранение логов ALB, анализ логов |
Сохранение логов S3 в YDB | 07-bucket-logs-to-ydb |
Сохранение логов бакета Object Storage в YDB | Долговременное хранение логов доступа к бакету, анализ логов |
Очистка снимков дисков | 08-snapshots-clean-up |
Автоматическое удаление старых снимков дисков по расписанию | Удаление снимков дисков старше заданного количества дней для экономии места и средств |
-
Склонируйте репозиторий:
git clone https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation.git cd yc-serverless-cloudops-automation
-
Выберите сценарий и перейдите в нужный каталог:
cd 01-start-vm-cron
-
Скопируйте и заполните переменные:
cp terraform.tfvars.example terraform.tfvars # Edit terraform.tfvars with your values
-
Разверните при помощи Terraform:
terraform init terraform plan terraform apply
-
Удалить можно следующей командой:
terraform destroy
- Установленный и настроенный Yandex Cloud CLI (yc)
- Установленный Terraform
- Авторизованный ключ сервисного аккаунта, с необходимыми ролями в каталоге (например,
admin
), для создания ресурсов в Yandex Cloud
Каждый сценарий содержит следующий набор файлов:
variables.tf
- Входные переменныеterraform.tfvars.example
- Пример файла конфигурации для переменныхmain.tf
- Описание создаваемых ресурсовsrc/
- Код, используемый в функцииversions.tf
- Конфигурация провайдера
Все сценарии содержат следующие параметры конфигурации провайдера: