https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation
Библиотека CloudOps автоматизации для Yandex Cloud на базе Serverless.
https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation
cloud-functions cloudops serverless yandex-cloud
Last synced: 27 days ago
JSON representation
Библиотека CloudOps автоматизации для Yandex Cloud на базе Serverless.
- Host: GitHub
- URL: https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation
- Owner: yandex-cloud-examples
- License: apache-2.0
- Created: 2025-08-22T17:01:24.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-09-04T09:42:04.000Z (5 months ago)
- Last Synced: 2025-09-04T11:34:13.585Z (5 months ago)
- Topics: cloud-functions, cloudops, serverless, yandex-cloud
- Language: HCL
- Homepage:
- Size: 25.4 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Yandex Cloud Serverless CloudOps Automation
Данный репозиторий содержит Terraform модули и примеры с кодом для автоматизации основных задачи управления облачной инфраструктурой.
Код может использоваться сам по себе, либо в составе Terraform модуля, который разворачивает необходимые, в зависимости от сценария ресурсы: [Cloud Function](https://yandex.cloud/ru/services/functions), [триггеры](https://yandex.cloud/ru/docs/functions/concepts/trigger/), [Yandex Database](https://yandex.cloud/ru/services/ydb).
## Доступные автоматизации
| Функция | Каталог | Описание | Сценарий |
|----------|-----------|-------------|----------|
| **Запуск ВМ по таймеру** | `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. [Практическое руководство](https://yandex.cloud/en/docs/functions/tutorials/bucket-to-bucket). | Постоянная репликация между бакетами для резервного копирования |
| **Сохранение логов ALB в YDB** | `06-alb-logging-to-ydb` | Сохранение логов Application Load Balancer в YDB. [Практическое руководство для PostgreSQL](https://yandex.cloud/ru/docs/functions/tutorials/logging) | Долговременное хранение логов ALB, анализ логов |
| **Сохранение логов S3 в YDB** | `07-bucket-logs-to-ydb` | Сохранение логов бакета Object Storage в YDB | Долговременное хранение логов доступа к бакету, анализ логов |
| **Очистка снимков дисков** | `08-snapshots-clean-up` | Автоматическое удаление старых снимков дисков по расписанию | Удаление снимков дисков старше заданного количества дней для экономии места и средств |
## Быстрый старт
1. Склонируйте репозиторий:
```bash
git clone https://github.com/yandex-cloud-examples/yc-serverless-cloudops-automation.git
cd yc-serverless-cloudops-automation
```
2. Выберите сценарий и перейдите в нужный каталог:
```bash
cd 01-start-vm-cron
```
3. Скопируйте и заполните переменные:
```bash
cp terraform.tfvars.example terraform.tfvars
# Edit terraform.tfvars with your values
```
4. Разверните при помощи Terraform:
```bash
terraform init
terraform plan
terraform apply
```
5. Удалить можно следующей командой:
```bash
terraform destroy
```
## Пререквизиты
* Установленный и настроенный [Yandex Cloud CLI (yc)](https://yandex.cloud/ru/docs/cli/operations/install-cli)
* Установленный [Terraform](https://yandex.cloud/ru/docs/tutorials/infrastructure-management/terraform-quickstart)
* [Авторизованный ключ](https://yandex.cloud/ru/docs/iam/operations/authentication/manage-authorized-keys#console_1) [сервисного аккаунта](https://yandex.cloud/ru/docs/iam/operations/sa/create), с необходимыми ролями в каталоге (например, `admin`), для создания ресурсов в Yandex Cloud
## Настройка
Каждый сценарий содержит следующий набор файлов:
* `variables.tf` - Входные переменные
* `terraform.tfvars.example` - Пример файла конфигурации для переменных
* `main.tf` - Описание создаваемых ресурсов
* `src/` - Код, используемый в функции
* `versions.tf` - Конфигурация провайдера
Все сценарии содержат следующие параметры конфигурации провайдера:
* `provider_key_file` - путь до авторизованного ключа сервисного аккаунта, созданного ранее
* `cloud_id` - Идентификатор [облака](https://yandex.cloud/ru/docs/resource-manager/operations/cloud/get-id)
* `folder_id` - Идентификатор [каталога](https://yandex.cloud/ru/docs/resource-manager/operations/folder/get-id)
* `zone` - Зона доступности (по умолчанию, `ru-central1-a`)