Merge branch 'feature/pravki3' into 'main'

Feature/pravki3

See merge request common/vega/beecloud-docs!13
This commit is contained in:
Речкина Елена Валерьевна
2025-07-04 11:24:56 +00:00
34 changed files with 2 additions and 1766 deletions
-9
View File
@@ -1,9 +0,0 @@
# Заключение договора с ЮЛ
Аккаунт beeline cloud создается для физического лица. Для добавления организации необходимо отправить заявку из личного кабинета beeline cloud физического лица:
1. Войдите в [личный кабинет beeline cloud](https://lk.cloud.beeline.ru/).
2. В информационном окне о бесплатном тестировании нажмите на ссылку **Заключить договор**.
3. Заполните заявку на заключение договора:
- **ФИО**: укажите контактное лицо;
- **ИНН**: укажите ИНН организации, с которой заключается договор.
+2 -5
View File
@@ -4,12 +4,12 @@
## Создать виртуальный ВМ
1. Откройте [консоль управления](https://console.cloud.dfcloud.ru).
1. Отк
2. Выбрать проект.
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
4. Нажмите **Создать ВМ**.
5. Выберите образ ОС UNIX.
6. [Заполните свойства cервера](../compute/compute-instructions/compute-servers-create.md#создать-ВМ).
6.
7. Нажмите **Cоздать ВМ**.
Виртуальный ВМ отобразится на странице **Облачные вычисления → ВМы**. Выполняется сборка виртуального ВМа. После окончания сборки ВМ перейдет в статус `Включен`.
@@ -36,6 +36,3 @@ $ ssh -l ivanov -i /home/user/.ssh/id_rsa 10.0.0.1
```
## Далее
- [Подключение дополнительного диска к виртуальному ВМу](../compute/compute-instructions/compute-disks.md#добавить-диск).
- [Удаление виртуального ВМа](../compute/compute-instructions/compute-servers-manage.md#удалить-ВМ).
@@ -1,74 +0,0 @@
# Ресурсные записи
Ресурсная запись — это запись о соответствии доменного имени и IP-адреса и другой информации в системе доменных имен. Ресурсные записи хранятся на DNS-ВМах. DNS-ВМы выполняют маршрутизацию запросов, поступающих на определенные доменные имена.
Сервис DNS поддерживает работу с типами записей:
`A` — сопоставление доменного имени и IPv4-адреса.
`CNAME` — синоним FQDN.
`PTR` — сопоставление IP-адреса и доменного имени.
У каждой ресурсной записи есть следующие параметры:
- зона DNS;
- тип записи;
- доменное имя;
- значение записи;
- время жизни записи (TTL).
**TTL (Time to live)** — время жизни записи. TTL определяет, сколько времени запись будет храниться в локальном кэше пользователя. Если вы изменили свойства записи в DNS, то пользователи не увидят этих изменений до тех пор, пока не истечет значение TTL.
## Создать запись
1. Перейдите в консоль управления.
2. Откройте **DNS**.
3. Нажмите **Добавить**.
4. Выберите тип записи: `A`, `CNAME`, `PTR`.
5. Заполните параметры записи:
::: details A
- **Зона**: выберите из списка *<slug-проекта>.cloud.dfcloud.ru*.
- **Параметр**: введите доменное имя записи. Максимальная длина имени — 63 символа и полного доменного имени (FQDN) — 255 символов.
- **Значение**: введите IP-адрес виртуального ВМа. IP-адрес можно посмотреть на странице **Облачные вычисления → ВМы**.
- **TTL**: введите время жизни записи в секундах.
:::
::: details CNAME
- **Зона**: выберите из списка *<slug-проекта>.cloud.dfcloud.ru*.
- **Параметр**: введите доменное имя записи.
- **Значение**: введите FQDN ВМа, точка не ставится в конце значения.
- **TTL**: введите время жизни записи в секундах.
:::
::: details PTR
Запись в обратной зоне добавляется автоматически при создании виртуального ВМа. Для одного IP-адреса предназначена одна PTR-запись. Если для нужного IP-адреса не создана PTR-запись, то создайте ее вручную.
- **Зона**: выберите из списка *<slug-проекта>.cloud.dfcloud.ru*.
- **Параметр**: введите IP-адрес виртуального ВМа. IP-адрес можно посмотреть на странице **Облачные вычисления → ВМы**.
- **Значение**: введите FQDN ВМа.
- **TTL**: введите время жизни записи в секундах.
:::
2. Нажмите **Добавить**.
## Редактировать запись
1. Перейдите в консоль управления.
2. Откройте **DNS**.
3. Откройте записи прямой или обратной зоны.
4. В таблице записей напротив нужной записи нажмите **Редактировать**.
5. Измените `Параметр`, `Значение` или `TTL` записи.
6. Нажмите **Сохранить**.
## Удалить запись
1. Перейдите в консоль управления.
2. Откройте **DNS**.
3. Откройте записи прямой или обратной зоны.
4. В таблице записей напротив нужной записи нажмите **Удалить**.
5. В открывшемся окне подтвердите операцию:
- Скопируйте предложенный текст.
- Нажмите **Удалить**.
-3
View File
@@ -1,3 +0,0 @@
# Квоты и лимиты
Ограничений на количество создаваемых записей в зоне нет.
-11
View File
@@ -1,11 +0,0 @@
# Обзор сервиса
Сервис DNS предназначен для управления доменными именами ресурсов в проекте.
Сервис DNS предоставляет одну зону в `cloud.dfcloud.ru`.
Для каждого проекта автоматически создается зона: `<slug-проекта>.cloud.dfcloud.ru`. В этой зоне можно [управлять записями](../dns/dns-instructions/dns-create.md): создавать, редактировать, удалять.
При создании виртуального ВМа автоматически добавляются:
- FQDN ВМа в прямой зоне;
- PTR-запись в обратной зоне.
@@ -1,86 +0,0 @@
# S3cmd
S3cmd — это консольный клиент (Linux, Mac) для работы с Amazon S3-совместимыми хранилищами.
Подробности о работе c s3cmd см. [в документации s3cmd](https://s3tools.org/s3cmd-howto).
## Подготовительные шаги
- [Создайте аккаунт S3 и ключ доступа](../storage-s3.md#создать-аккаунт). Сохраните ключ **secret**.
- Установите [S3cmd](https://s3tools.org/download).
## Настроить подключение
Перед настройкой подключения [создайте аккаунт и ключ доступа](../storage-s3.md#создать-аккаунт).
Настроить подключение к хранилищу можно одним из способов:
- **1 способ**: установить значения переменных и подключиться к хранилищу;
- **2 способ**: настроить подключение с помощью стандартной команды s3cmd `s3cmd --configure`.
::: tabs
== 1 способ
1. Установите значения переменных:
```sh
S3_ACCESS_KEY=...
S3_SECRET_KEY=...
S3_URL=...
```
где:
- `S3_ACCESS_KEY`: введите *Access key*, полученный при [создании хранилища в консоли управления](../storage-s3.md#создать-аккаунт).
- `S3_SECRET_KEY`: введите ключ *secret*, полученный при [создании хранилища в консоли управления](../storage-s3.md#создать-аккаунт).
- `S3_URL`: имя хоста для подключения соответствует [региону](../../storage-overview.md#регионы-и-зоны-доступности).
2. Подключите хранилище:
```sh
s3cmd --ssl --access_key="${S3_ACCESS_KEY}" --secret_key="${S3_SECRET_KEY}" --host="${S3_URL}" --region=US --no-progress --host-bucket="%(bucket)" --dump-config > ~/.s3cfg
```
== 2 способ
1. Выполните команду в терминале:
```sh
s3cmd --configure
```
2. Укажите значения для следующих параметров:
- `Access Key`: введите *Access key*, полученный при [создании хранилища в консоли управления](../storage-s3.md#создать-аккаунт).
- `Secret Key`: введите ключ *secret*, полученный при [создании хранилища в консоли управления](../storage-s3.md#создать-аккаунт)
- .
- `S3 Endpoint`: имя хоста для подключения соответствует [региону](../../storage-overview.md#регионы-и-зоны-доступности).
- `DNS-style bucket+hostname:port template for accessing a bucket`: введите `%(bucket)`.
- `Use HTTPS protocol`: введите `Y`.
3. Остальные настройки оставьте без изменений.
4. Устанавливается соединение. В случае успеха, отобразится `Success. Your access key and secret key worked fine :-)`.
5. Сохраните конфигурацию: `Save settings? [y/N]`: введите `Y`
:::
S3cmd сохранит настройки в файле `~/.s3cfg`, его можно изменить вручную.
::: warning Важно
Если при установке соединения с хранилищем возникла ошибка валидности SSL-сертификатов, то выполните команду в терминале для добавления корневого сертификата:
```sh
echo 'alias s3cmd="s3cmd --ca-certs /etc/ssl/certs/ca-certificates.crt"' >> ~/.profile
```
Выполните настройку подключения к хранилищу снова.
:::
## Проверить подключение к хранилищу
Выполните команду в терминале:
```sh
s3cmd ls
```
В выводе должен отобразиться список доступных бакетов. Список может быть пустым, если в хранилище не создано ни одного бакета.
## Примеры команд
- `s3cmd --help` - справка.
- `s3cmd mb s3://<имя_бакета>` - создание бакета.
- `s3cmd ls s3://<имя_бакета>` - получение списка бакетов.
Подробности о работе c s3cmd см. [в документации s3cmd](https://s3tools.org/usage).
@@ -1,44 +0,0 @@
# WinSCP
WinSCP — это графический клиент, поддерживающий работу с различными типами хранилищ, в том числе с [Amazon S3](https://aws.amazon.com/ru/s3/) совместимыми хранилищами. Доступен для Windows.
## Настроить подключение
1. [Создайте аккаунт и ключ доступа](../storage-s3.md#создать-аккаунт).
2. Скачайте WinSCP с [официального сайта](https://winscp.net/eng/download.php).
3. Откройте WinSCP.
4. Cоздайте новое подключение:
- **Протокол передачи**: выберите из списка *Amazon S3*.
- **Имя хоста**: соответствует [региону](../../storage-overview.md#регионы-и-зоны-доступности).
- **Порт**: введите *443*.
- **Идентификатор ключа доступа**: введите *Access key*, полученный при создании аккаунта в консоли управления.
- **Секретный ключ доступа**: введите ключ *Secret*, полученный при создании аккаунта в консоли управления.
5. Нажмите **Еще**.
6. В окне **Расширенные настройки соединения** выберите **Среда → S3 → Стиль по умолчанию URL** значение *Путь*.
7. Нажмите **OK**.
8. Нажмите **Войти**, потребуется еще раз ввести секретный ключ доступа.
В результате успешного подключения на вкладке справа отобразятся бакеты. Список может быть пустым, если в хранилище не создано ни одного объекта.
Подробности о работе WinSCP с S3-совместимыми хранилищами см. [в документации WinSCP](https://winscp.net/eng/docs/guide_amazon_s3#buckets).
## Проверить доступность хранилища
Для проверки доступности хранилища создайте файл в хранилище и попробуйте его скачать.
1. Войдите в S3 хранилище.
2. В меню **Файлы** выберите **Новый → Каталог**;
- введите название каталога по [правилам](../../storage-overview.md#правила-именования);
3. Создайте файл в каталоге из п. 2:
- в меню **Файлы** выберите **Новый → Файл**;
- введите название файла по [правилам](../../storage-overview.md#правила-именования);
- сохраните файл.
4. Выдайте права на действия с файлом:
- правой кнопкой мыши нажмите на имя файла и выберите **Свойства**;
- в ACL установите права **R** для всех;
- нажмите **OK**.
5. Проверьте сетевую доступность файла, созданного на шаге 3:
- правой кнопкой мыши нажмите на имя файла и выберите **Файловые пользовательские команды → Сгенерировать URL для протокола HTTP**;
- в открывшемся окне нажмите **Копировать**;
- вставьте скопированную ссылку в браузер, заменив `http://` на `https://`;
- начнется скачивание файла.
@@ -1,136 +0,0 @@
# Управление хранилищем
## Создать аккаунт
При добавлении хранилища выполняется создание аккаунта S3 и ключей доступа.
::: tip Информация
В момент создания нового хранилища сохраните ключи и секреты (токены) доступа. Данная информация не хранится на ВМах Vega. В случае утери ключей доступа все данные хранилища будут недоступны.
:::
1. Перейдите в консоль управления.
2. Откройте **Объектное хранилище**.
3. Нажмите **Добавить хранилище**.
4. Заполните параметры хранилища:
- **Регион**: выбрать из списка.
- **Название аккаунта**: введите название аккаунта. <!--Есть правила нейминга?-->
- **Размер хранилища**: введите значение в Гбайтах, размер хранилища ограничен квотой.
5. Нажмите **Создать**.
6. В открывшемся окне скопируйте ключи и сохраните их в надежном месте.
7. Нажмите **Закрыть**.
Аккаунт S3 будет добавлен в разделе **Объектное хранилище**. Далее необходимо [подключиться к хранилищу c помощью утилиты S3cmd](../storage-instructions/s3-connect/s3cmd.md) или [WinSCP](../storage-instructions/s3-connect/winscp.md).
## Удалить аккаунт
::: warning Важно
Перед удалением аккаунта удалите бакеты вручную.
:::
1. Перейдите в консоль управления.
2. Откройте **Объектное хранилище**.
3. Найдите нужное хранилище.
5. Нажмите &#10247; и выберите **Удалить**.
6. В открывшемся окне подтвердите операцию:
- Скопируйте предложенный текст.
- Нажмите **Удалить**.
## Управление жизненным циклом объектов в бакете
Управление жизненным циклом объектов позволяет настроить автоматическое удаление отдельных объектов или групп объектов по заданным условиям и расписанию.
Для управления жизненными циклами с помощью S3cmd используется [конфигурация в формате XML](https://docs.aws.amazon.com/AmazonS3/latest/userguide/lifecycle-configuration-examples.html).
::: tabs
== Загрузить политику
```sh
s3cmd setlifecycle bucket-lifecycle.xml s3://bucket
```
== Получить политику
```sh
s3cmd getlifecycle s3://bucket
```
== Удалить политику
```sh
s3cmd dellifecycle s3://bucket
```
:::
## Управление доступом (ACL)
Access Control List (ACL) — список управления доступом, который определяет, список пользователей для доступа к файлам или бакету и список допустимых или запрещенных операции.
Для управления доступом в S3 хранилище можно использовать команды из [документации S3cmd](https://s3tools.org/s3cmd).
## Монтирование бакета
Монтирование бакета позволит управлять содержимым S3-хранилища через интерфейс файловой системы. Бакет объектного хранилища монтируется через [FUSE](https://ru.wikipedia.org/wiki/FUSE_(%D0%BC%D0%BE%D0%B4%D1%83%D0%BB%D1%8C_%D1%8F%D0%B4%D1%80%D0%B0)).
В инструкции рассмотрено разовое монтирование контейнера. В этом случае при каждой перезагрузке системы контейнер будет размонтирован. Потребуется выполнить монтирование контейнера вручную после перезагрузки системы.
::: tabs
== GeeseFS
1. Установите клиент GeeseFS.
2. Сделайте файл geesefs исполняемым и поместите его в директорию `/bin`:
```sh
chmod 700 geesefs-linux-amd64
mv geesefs-linux-amd64 /bin/geesefs
```
3. [Используйте ключ доступа, полученный при создании аккаунта](#создать-аккаунт), и поместите его в директорию `~/.aws/credentials`:
```
[default]
aws_access_key_id = <Access key>
aws_secret_access_key = <secret>
```
4. Создайте директорию, в которой будет отображаться содержимое бакета. Например, `/mnt/s3`.
5. Для монтирования бакета выполните команду:
```sh
/bin/geesefs --endpoint <endpoint s3> <имя бакета> /mnt/s3/
```
== S3fs
1. Установите клиент S3fs:
```sh
apt install s3fs
```
2. Cохраните [ключ доступа и секретный ключ, полученные при создании аккаунта](#создать-аккаунт) в файле `~/.passwd-s3fs`:
```sh
echo <идентификатор_ключа>:<секретный_ключ> > ~/.passwd-s3fs
```
3. Ограничьте доступ к файлу `~/.passwd-s3fs`:
```sh
chmod 600 ~/.passwd-s3fs
```
4. Для монтирования бакета выполните команду:
```sh
s3fs <имя_бакета> <путь_к_директории> -o passwd_file=~/.passwd-s3fs -o url=<адрес_endpoint> -o use_path_request_style
```
:::
Для проверки монтирования бакета выполните команду:
```sh
df-h
```
### Размонтировать бакет
Для размонтирования бакета выполните команду:
```sh
umount <путь_к_директории>
```
-3
View File
@@ -1,3 +0,0 @@
# Квоты и лимиты
Для сервиса действует квота по умолчанию, определяемая при инициализация проекта, в размере 100 Гбайт.
-17
View File
@@ -1,17 +0,0 @@
# Уровень обслуживания
Настоящий документ определяет уровень обслуживания (SLA) сервиса «Объектное хранилище».
## Описание предоставляемых услуг
В таблице рассмотрены услуги, предоставляемые в рамках SLA сервиса «Объектное хранилище».
| Наименование услуги | Краткое описание | Ценность для потребителя | Целевая аудитория |
|---|---|---|---|
| Доступ к S3 хранилищу | Web-доступ к эластичному хранилищу данных | Возможность очень быстрого подключения дискового пространства в приложение, ВМ, ВРС и т. п. | DevOps<br> Администраторы |
## Доступность услуги
Доступ к S3 хранилищу 99,5 %.
-26
View File
@@ -1,26 +0,0 @@
# Обзор сервиса
Сервис «Объектное хранилище» предназначен для хранения и извлечения данных. Доступ к объектам осуществляется из любых периметров по протоколу https.
## Регионы и зоны доступности
| Регион | Хранилище | Адрес |
| -------------------------------- | --------- | ---------------------------------------- |
| s3-cloud-dfcloud-ru | Ceph | https://s3.cloud.dfcloud.ru |
## Модели адресации в S3
Сервис поддерживает модель адресации для доступа к объектному хранилищу S3:
- `Path-style` — модель, при которой название бакета указывается в части пути до объекта, например: https://s3.cloud.dfcloud.ru/bucket/file.txt
## Правила именования
Правила именования бакетов:
- имя бакета в корневом каталоге должно быть уникальным для всего хранилища S3, на каталоги 2-го и последующих уровней это правило не распространяется;
- может содержать строчные буквы латинского алфавита, цифры, дефис и подчеркивания;
- подчеркивание недопустимо для имени бакета в корневом каталоге.
Правила именования файлов в бакете:
- может содержать строчные буквы латинского алфавита, цифры, дефис и подчеркивания.
-84
View File
@@ -1,84 +0,0 @@
# Вопросы и ответы
## Не могу найти ресурс, созданный через Terraform?
Во время выполнения команды `terraform [apply | plan]` получаем ошибку `404` __ВМ по вашему запросу не найден__:
```
lanning failed. Terraform encountered an error while generating this plan.
│ Error: url=[https://console.cloud.dfcloud.ru/api/v1/projects/vega-dev-demo/vps/servers/cac9da7e-d3b1-488c-9bb0-277fd20140d1,body=]
{"code":404,"error":"server-not-found","description":"ВМ по вашему запросу не найден"} // [!code focus]
│ 
  with beecloud_server.router[1], // [!code focus]
  on main.tf line 23, in resource "beecloud_server" "router":
  23: resource "beecloud_server" "router" {
│ 
```
Решение:
1. Удалите поломанный ресурс из файла состояния:
```sh
terraform state rm "beecloud_server.router[1]"
```
Вывод:
```
Removed beecloud_server.router[1]
Successfully removed 1 resource instance(s).
```
2. Повторно примените конфигурацию Terraform: 
```sh
terraform apply
```
Terraform создаст недостающий ресурс.
## Что делать, если при создании ресурса Terraform выдает ошибку: "context deadline exceeded"?
Во время выполнения команды `terraform apply` получаем ошибку: __context deadline exceeded__
```
beecloud_server.my-server: Creating...
...
beecloud_server.my-server: Still creating... [10m elapsed]
│ Error: Error waiting for server ae8c5364-16e4-4b9b-84e1-092a04647838 to come ready, error: context deadline exceeded // [!code focus]
│ with beecloud_server.my-server, // [!code focus]
│ on main.tf line 31, in resource "beecloud_server" "my-server":
│ 31: resource "beecloud_server" "my-server" {
```
Решение:
Увеличьте тайм-аут ожидания ресурса при создании:
```hcl
resource "beecloud_server" "my-server" {
...
timeouts {
create = "30m"
}
}
```
Тайм-ауты по умолчанию для операций:
| CRUD Function | Default Timeout |
|----------------------|-----------------|
| Create | 20 minutes |
| CreateContext | 20 minutes |
| CreateWithoutTimeout | N/A |
| Delete | 20 minutes |
| DeleteContext | 20 minutes |
| DeleteWithoutTimeout | N/A |
| Read | 20 minutes |
| ReadContext | 20 minutes |
| ReadWithoutTimeout | N/A |
| Update | 20 minutes |
| UpdateContext | 20 minutes |
| UpdateWithoutTimeout | N/A |
-31
View File
@@ -1,31 +0,0 @@
# Terraform
[Terraform](https://www.terraform.io/) позволяет быстро создать облачную инфраструктуру в Облаке Vega и управлять ей с помощью файлов конфигураций. В файлах конфигураций хранится описание инфраструктуры на языке HCL (HashiCorp Configuration Language). Terraform и его провайдеры распространяются под лицензией [Business Source License](https://github.com/hashicorp/terraform/blob/main/LICENSE).
При изменении файлов конфигураций Terraform автоматически определяет, какая часть вашей конфигурации уже развернута, что следует добавить или удалить.
## Установите Terraform
::: tabs
== UNIX
Выполните команду в терминале:
Ubuntu/Debian
```sh
wget -O- https://apt.releases.hashicorp.com/gpg | sudo gpg --dearmor -o /usr/share/keyrings/hashicorp-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/hashicorp-archive-keyring.gpg] https://apt.releases.hashicorp.com $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/hashicorp.list
sudo apt update && sudo apt install terraform
```
== MacOS
Выполните команду в терминале:
```sh
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
```
== Windows
Установить по ссылке [386 v1.9.6](https://releases.hashicorp.com/terraform/1.9.6/terraform_1.9.6_windows_386.zip) [AMD64 v1.9.6](https://releases.hashicorp.com/terraform/1.9.6/terraform_1.9.6_windows_amd64.zip)
:::
@@ -1,45 +0,0 @@
---
page_title: "beecloud: beecloud_affinity_groups"
description: "Get information about multiple beecloud affinity groups"
---
# Источник данных: beecloud_affinity_groups
Получение информации обо всех аффинити-группах проекта.
## Пример конфигурации
Получение всех аффинити-групп проекта
```hcl
data "beecloud_affinity_groups" "all" {}
output "beecloud_affinity_groups_all" {
value = data.beecloud_affinity_groups.all
}
```
Дополнительная фильтрация по ID региона
```hcl
data "beecloud_affinity_groups" "by_region" {
region = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
output "beecloud_affinity_groups_by_region" {
value = data.beecloud_affinity_groups.by_region
}
```
## Возвращаемые поля
- `id` - Проект в beecloud, к которому относятся ВМа (ID/Slug).
- `affinity_groups` - Список аффинити-групп.
- `affinity_group_id` - ID в системе TF. Соответствует ID группы.
- `project_id` - ID проекта.
- `name` - Наименование ВМа.
- `policy` - Политика группы (affinity/soft-affinity/anti-affinity/soft-anti-affinity).
- `region` - Данные о регионе.
- `id` - ID региона
- `slug` - Слаг региона.
- `name` - Наименование региона.
- `condition` - Состояние группы (статус) (готовность к использованию).
@@ -1,97 +0,0 @@
---
page_title: "beecloud: beecloud_flavors"
description: "Get information about multiple beecloud Flavors of project"
---
# Источник данных: beecloud_flavors
Получение информации обо всех тарифах, доступных проекту.
## Пример конфигурации
```hcl
data "beecloud_flavors" "all" {}
output "beecloud_flavors_all" {
value = data.beecloud_flavors.all
}
```
## Список доступных тарифов
```hcl
data "beecloud_flavors" "all_slug" {}
output "flavors_slug" {
value = data.beecloud_flavors.all_slug.flavors[*].slug
}
```
## Варианты фильтрации
Поиск по CPU и RAM
> RAM указывается в Мегабайтах пример (2048 Мб = 2 Гб)
```hcl
data "beecloud_flavors" "cpu2" {
filters {
vcpu = 2
}
}
output "flavors_cpu2" {
value = data.beecloud_flavors.cpu2
}
data "beecloud_flavors" "cpu2ram2" {
filters {
vcpu = 2
ram = 2 * 1024
}
}
output "flavors_cpu2ram2" {
value = data.beecloud_flavors.cpu2ram2
}
```
## Возвращаемые поля
- `id` - TF ID. Соответствует ID/Slug проекта.
- `filters` - параметры фильтра
- `ram` - значение заданного фильтра для ОЗУ
- `vcpu` - значение заданного фильтра для ЦПУ
- `flavors` - Список доступных тарифов.
- `flavor_id` - ID тарифа.
- `group` - Тарифная группа.
- `name` - Наименование тарифа.
- `ram` - Параметр ram тарифа.
- `regions` - Доступен для регионов. Список.
- `slug` - Slug тарифа.
- `vcpu` - Параметр vcpu тарифа.
# beecloud_flavor
Получение информации о тарифе
```hcl
data "beecloud_flavor" "cpu2_ram2" {
slug = "cpu2ram2"
}
output "flavor_id" {
value = data.beecloud_flavor.cpu2_ram2.flavor_id
}
```
## Возвращаемые поля
- `flavor_id` - ID тарифа.
- `slug` - Slug тарифа.
- `name` - Наименование тарифа.
- `vcpu` - Параметр vcpu тарифа.
- `ram` - Параметр ram тарифа.
- `group` - Тарифная группа.
- `regions` - Доступен для регионов. Список.
@@ -1,30 +0,0 @@
---
page_title: "beecloud: beecloud_images"
description: "Get information about multiple beecloud Images of project"
---
# Источник данных: beecloud_images
Получение информации обо всех образах, доступных проекту.
## Пример конфигурации
```hcl
data "beecloud_images" "all" {}
output "beecloud_images_all" {
value = data.beecloud_images.all
}
```
## Возвращаемые поля
- `id` - TF ID. Соответствует ID/Slug проекта.
- `images` - Список доступных образов.
- `image_id` - ID образа.
- `slug` - Slug образа.
- `name` - Наименование образа.
- `distribution` - Дистрибутив образа.
- `version` - Версия образа.
- `min_disk` - Минимальный размер диска.
- `regions` - Доступен для регионов. Список.
@@ -1,37 +0,0 @@
---
page_title: "beecloud: beecloud_regions"
description: "Get information about multiple beecloud Regions of project"
---
# Источник данных: beecloud_regions
Получение информации обо всех регионах, доступных проекту.
## Пример конфигурации
```hcl
data "beecloud_regions" "all" {}
output "beecloud_regions_all" {
value = data.beecloud_regions.all
}
```
## Возвращаемые поля
- `id` - TF ID. Соответствует ID/Slug проекта.
- `regions` - Список доступных регионов.
- `region_id` - ID региона.
- `slug` - Slug региона.
- `name` - Наименование региона.
- `hypervisor` - Гипервизор.
- `location` - Местонахождение.
- `priority` - Приоритет.
- `zone` - Зона региона.
- `volumes_type` - Доступные типы дисков. Список.
- `features` - Сетевой периметр (?)
- `limits` - Лимиты региона.
- `instance` - Количество инстансов.
- `ram` - Ограничение по RAM.
- `vcpu` - Ограничение по VCPU.
- `volumes_size` - Объект типа "key:value". Размеры для каждого типа диска (hhd/ssd/nvme/..)
@@ -1,55 +0,0 @@
---
page_title: "beecloud: beecloud_server"
description: "Get information about beecloud Instance"
---
# Источник данных: beecloud_server
Получение информации о ВМе.
## Пример конфигурации
```hcl
data "beecloud_server" "server_by_id" {
server_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
output "server_beecloud" {
value = data.beecloud_server.server_by_id
}
```
## Аргументы
- `server_id` - ID ВМа.
## Возвращаемые поля
- `id` - ID TF. Соответствует ID ВМа.
- `name` - Наименование ВМа.
- `image` - Параметры образа ВМа.
- `id` - ID образа ВМа.
- `slug` - Slug образа.
- `name` - Наименование образа.
- `region` - Регион, где создан ВМ.
- `id` - ID региона.
- `slug` - Slug региона.
- `name` - Наименование региона.
- `flavor` - Тариф.
- `id` - ID тарифа.
- `slug` - Slug тарифа.
- `name` - Наименование тарифа.
- `volumes` - Список дисков.
- `id` - ID диска.
- `size` - Размер диска.
- `type` - Тип диска (hhd/ssd/nvme).
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `name` - Наименование диска.
- `addresses` - Список адресов.
- `type` - Тип адреса.
- `address` - IP адрес.
- `version` - Версия IP адреса (4/6).
- `status` - Статус ВМа (Создан/Создается/...)
- `fqdn` - Полный домен.
- `tags` - Список тэгов.
- `wait_completed` - Ключ ожидания состояния ВМа (Создан/Создается...).
@@ -1,55 +0,0 @@
---
page_title: "beecloud: beecloud_servers"
description: "Get information about multiple beecloud Instances of project"
---
# Источник данных: beecloud_servers
Получение информации обо всех ВМах проекта.
## Пример конфигурации
```hcl
data "beecloud_servers" "all" {}
output "beecloud_servers_all" {
value = data.beecloud_servers.all
}
```
## Возвращаемые поля
- `id` - Проект в beecloud, к которому относятся ВМыы (ID/Slug).
- `servers` - Список ВМов.
- `server_id` - ID ВМа.
- `name` - Наименование ВМа.
- `image` - Параметры образа ВМа.
- `id` - ID образа ВМа.
- `slug` - Slug образа.
- `name` - Наименование образа.
- `region` - Регион, где создан ВМ.
- `id` - ID региона.
- `slug` - Slug региона.
- `name` - Наименование региона.
- `flavor` - Тариф.
- `id` - ID тарифа.
- `slug` - Slug тарифа.
- `name` - Наименование тарифа.
- `volumes` - Список дисков.
- `id` - ID диска.
- `size` - Размер диска.
- `type` - Тип диска (hhd/ssd/nvme).
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `name` - Наименование диска.
- `addresses` - Список адресов.
- `type` - Тип адреса.
- `address` - IP адрес.
- `version` - Версия IP адреса (4/6).
- `status` - Статус ВМа (Создан/Создается/...)
- `fqdn` - Полный домен.
- `tags` - Список тэгов.
- `wait_completed` - Ключ ожидания состояния ВМа (Создан/Создается...).
@@ -1,34 +0,0 @@
---
page_title: "beecloud: beecloud_volume"
description: "Get information about beecloud Volume"
---
# Источник данных: beecloud_volume
Получение информации о диске.
## Пример конфигурации
```hcl
data "beecloud_volume" "vlm_by_id" {
volume_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
output "beecloud_volume_by_id" {
value = data.beecloud_volume.vlm_by_id
}
```
## Аргументы
- `volume_id` - ID диска.
## Возвращаемые поля
- `id` - ID TF. Соответствует ID диска.
- `project_id` - ID проекта.
- `region_id` - ID региона.
- `name` - Наименование диска.
- `size` - Размер диска.
- `type` - Тип диска.
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `attached_to` - ID ВМа, к которому примонтирован.
- `last_updated` - Время последнего обновления ресурса.
@@ -1,31 +0,0 @@
---
page_title: "beecloud: beecloud_volumes"
description: "Get information about multiple beecloud Volumes of project"
---
# Источник данных: beecloud_volumes
Получение информации обо всех дисках проекта.
## Пример конфигурации
```hcl
data "beecloud_volumes" "all" {}
output "beecloud_volumes_all" {
value = data.beecloud_volumes.all
}
```
## Возвращаемые поля
- `id` - ID TF. Соответствует ID/Slug проекта.
- `volumes` - Список дисков.
- `volume_id` - ID диска.
- `project_id` - ID проекта.
- `region_id` - ID региона.
- `name` - Наименование диска.
- `size` - Размер диска.
- `type` - Тип диска.
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `attached_to` - ID ВМа, к которому примонтирован.
- `last_updated` - Время последнего обновления ресурса.
@@ -1,35 +0,0 @@
---
page_title: "beecloud: beecloud_address_ip"
description: "Manages beecloud Address IPs"
---
# Ресурс: beecloud_address_ip
Получение информации об адресах.
Создание и управление адресами проекта в beecloud. Больше информации в [swagger](https://beecloud.vimpelcom.ru/api/v1/vps/swagger/index.html#/).
Ресурс может быть создан/прочитан/удален.
```hcl
resource "beecloud_address_ip" "server_ip" {
region_id = "xxxx-xxxx-xxxx-xxxx"
}
```
## Аргументы
- `region` - (Обязательно) Данные о регионе.
- `id` - (Обязательно) ID региона.
## В дополнение к приведенным выше аргументам, возвращаются следующие параметры:
- `id` - ID в системе TF. Соответствует ID адреса.
- `project_id` - ID проекта.
- `name` - наименование адреса.
- `address` - значение IP адреса.
- `version` - версия адреса (UNKNOWN/4/6).
- `status` - статус адреса (UNKNOWN/FREE/USED/RESERVED).
- `purpose` - назначение адреса.
- `type` - тип адреса (UNKNOWN/EXTERNAL/INTERNAL).
- `metadata` - дополнительные управляющие параметры.
@@ -1,45 +0,0 @@
---
page_title: "beecloud: beecloud_affinity_group"
description: "Manages Affinity Groups of servers"
---
# Ресурс: beecloud_affinity_group
Управление Аффинити-группами (группами размещения) ВМов.
Поддерживается создание/удаление/чтение/обновление (согласно API beecloud обновление поддерживается только для именования группы, остальные изменения повлекут пересоздание группы)
Политики (согласно API beecloud): **affinity/soft-affinity/anti-affinity/soft-anti-affinity**
## Примеры конфигураций
### Основное
```hcl
resource "beecloud_affinity_group" "affinity_policy" {
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-affinity-group"
policy = "affinity"
}
output "beecloud_affinity_group_policy" {
value = beecloud_affinity_group.affinity_policy
}
```
## Аргументы
- `name` - (Обязательно) Наименование ВМа.
- `policy` - (Обязательно) Политика группы (affinity/soft-affinity/anti-affinity/soft-anti-affinity).
- `region` - (Обязательно) Данные о регионе.
- `id` - (Обязательно) ID региона.
## В дополнение к приведенным выше аргументам, возвращаются следующие параметры:
- `id` - ID в системе TF. Соответствует ID группы.
- `affinity_group_id` - ID в системе TF. Соответствует ID группы.
- `project_id` - ID проекта.
- `region` - Данные о регионе.
- `id` - ID региона
- `slug` - Слаг региона.
- `name` - Наименование региона
- `condition` - Состояние группы (статус) (готовность к использованию)
@@ -1,245 +0,0 @@
---
page_title: "beecloud: beecloud_server"
description: "Manages beecloud Instances"
---
# Ресурс: beecloud_server
Создание и управление ВМами проекта в beecloud. Больше информации в [swagger](https://beecloud.vimpelcom.ru/api/v1/vps/swagger/index.html).
Ресурс может быть создан/прочитан/обновлен/удален.
Обновляется только при монтировании/демонтировании доп.дисков или изменении тэгов, в остальных случаях - пересоздание.
Для защиты от случайного пересоздания можно использовать `lifecycle`:
```hcl
resource "beecloud_server" "test" {
...
lifecycle {
prevent_destroy = true
}
}
```
Посмотреть текущее состояние ресурса:
```bash
$ terraform state show beecloud_server.test
```
## Примеры конфигураций
```hcl
resource "beecloud_server" "test" {
flavor {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
image {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-create-server-test"
root_volume {
size = 40
type = "hdd"
}
}
output "beecloud_server_test" {
value = beecloud_server.test
}
```
### С дополнительными дисками
```hcl
resource "beecloud_server" "test" {
flavor {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
image {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-create-server-test"
root_volumes {
size = 40
type = "hdd"
}
additional_volume_ids = ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]
}
```
> Note: Поле с дисками может изменить состояние после использования ресурса `beecloud_volume`. Необходимо будет синхронизировать состояние.
### С тэгами
```hcl
resource "beecloud_server" "test" {
flavor {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
image {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-create-server-test"
root_volumes {
size = 40
type = "hdd"
}
additional_volume_ids = ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX", "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"]
tags = ["dev", "test"]
}
```
### С управлением адресом
Передается UUID адреса. Он может быть заранее создан ресурсом "beecloud_address_ip".
```hcl
resource "beecloud_server" "test" {
flavor {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
image {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-create-server-test"
root_volumes {
size = 40
type = "hdd"
}
address = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
```
### С аффинити-группой
Передается UUID группы. Он может быть заранее создан ресурсом "beecloud_affinity_group".
```hcl
resource "beecloud_server" "test" {
flavor {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
image {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
region {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
name = "tf-create-server-test"
root_volumes {
size = 40
type = "hdd"
}
affinity {
id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
}
}
```
>
>~> **На заметку**: Для примонтирования/демонтирования есть два способа:
>1. Использовать поле `additional_volume_ids`
>2. Использовать ресурс `beecloud_volume_bind`
>
><span style="color:red">Не использовать вместе!</span>
>
## Аргументы
- `name` - (Обязательно) Наименование ВМа (должно быть уникальным).
- `image` - (Обязательно) Данные об образе.
- `id` - (Обязательно) ID образа.
- `region` - (Обязательно) Данные о регионе.
- `id` - (Обязательно) ID региона.
- `flavor` - (Обязательно) Данные о тарифе.
- `id` - (Обязательно) ID тарифа.
- `root_volume` - (Обязательно) Диски. Минимум один экземпляр для загрузочного диска.
- `size` - (Обязательно) Размер диска.
- `type` - (Обязательно) Тип диска.
- `additional_volume_ids` - (Опционально) Список дополнительных (примонтированных) дисков.
- `address` - (Опционально) Данные об адресе (Если нужно управлять адресом - лучше его отдельно выделить как ресурс и прописать его ID в ВМе)
- `id` - ID адреса, с которым будет создан ВМ
- `tags` - (Опционально) Список тэгов.
- `wait_completed` - (Опционально) По умолчанию: `true`. Этот ключ отвечает за ожидание полного создания ВМа. Если переключить его в `false`, то ресурс не будет дожидаться полного создания ВМа, ВМ будет в статусе "Создается".
- `affinity` - (Опционально) Данные об аффинити-группе
- `id` - ID аффинити-группы, с учетом правила которой будет создан ВМ. Изменение ID повлечет пересоздание ВМа.
## В дополнение к приведенным выше аргументам, возвращаются следующие параметры:
- `id` - ID в системе TF. Соответствует ID ВМа.
- `server_id` - ID созданного ВМа.
- `image` - Данные об образе.
- `slug` - Слаг образа.
- `name` - Имя образа.
- `region` - Данные о регионе.
- `slug` - Слаг региона.
- `name` - Имя региона.
- `flavor` - Данные о тарифе.
- `slug`- Слаг тарифа.
- `name` - Имя тарифа.
- `root_volume` - (Обязательно) Диски. Минимум один экземпляр для загрузочного диска.
- `id` - ID загрузочного ВМа.
- `is_boot` - Определение типа: загрузочный диск (`true`) или дополнительный (`false`). Загрузочный может быть только один.
- `name` - Имя диска (для загрузочных - наименование диска будет **`server_name`**`-boot`).
- `addresses` - Адрес ВМа.
- `id` - ID в системе TF. Соответствует ID адреса.
- `project_id` - ID проекта.
- `name` - наименование адреса.
- `address` - значение IP адреса.
- `version` - версия адреса (UNKNOWN/4/6).
- `status` - статус адреса (UNKNOWN/USED/RESERVED).
<!-- - `purpose` - назначение адреса. -->
<!-- - `type` - тип адреса (UNKNOWN/EXTERNAL/INTERNAL). -->
- `metadata` - дополнительные управляющие параметры.
- `status` - Статус ВМа (ACTIVE/BUILD/ERROR..).
- `fqdn` - Имя домена.
- `tags` - Список тэгов.
- `affinity` - Данные об аффинити-группе
- `id` - ID аффинити-группы.
- `name` - Наименование группы
- `project_id` - ID проекта
- `policy` - политика группы (affinity/soft-affinity/anti-affinity/soft-anti-affinity)
- `condition` - Текущее состояние группы(статус)
## Импорт
Задаем конфигурацию, которая будет управлять импортом
```
resource "beecloud_server" "import_server" {}
```
Передаем ID существующего ВМа, состояние которого хотим импортировать "75429417-2a18-435c-92fa-dae26dac4e3e":
```bash
$ terraform import beecloud_server.import_server 75429417-2a18-435c-92fa-dae26dac4e3e
```
Затем все параметры состояния записываем в конфигурацию и синхронизируем.
@@ -1,56 +0,0 @@
---
page_title: "beecloud: beecloud_volume"
description: "Manages beecloud Volumes"
---
# Ресурс: beecloud_volume
Создание и управление дисками проекта в beecloud. Больше информации в [swagger](https://beecloud.vimpelcom.ru/api/v1/core/swagger/index.html).
Ресурс может быть создан/прочитан/обновлен/удален.
## Примеры конфигураций
```hcl
resource "beecloud_volume" "vlm" {
name = "vlm-added"
region_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
size = 34
type = "hdd"
}
output "beecloud_vlm" {
value = beecloud_volume.vlm
}
```
## Параметры
- `region_id` - (Обязательно) Данные о регионе.
- `name` - Наименование диска.
- `size` - Размер диска.
- `type` - Тип диска.
## В дополнение к приведенным выше параметрам, возвращаются следующие поля:
- `id` - ID TF. Соответствует ID диска.
- `volume_id` - ID диска.
- `project_id` - ID проекта.
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `attached_to` - ID ВМа, к которому примонтирован.
- `last_updated` - Время последнего обновления ресурса.
## Импорт
Задаем конфигурацию, которая будет управлять импортом
```
resource "beecloud_volume" "import_volume" {}
```
Передаем ID существующего ВМа, состояние которого хотим импортировать "75429417-2a18-435c-92fa-dae26dac4e3e":
```bash
$ terraform import beecloud_volume.import_volume 75429417-2a18-435c-92fa-dae26dac4e3e
```
@@ -1,53 +0,0 @@
---
page_title: "beecloud: beecloud_volume_bind"
description: "Manages beecloud Volumes (Attach/Detach to server)"
---
# Ресурс: beecloud_volume_bind
Управление дисками проекта в beecloud. Больше информации в [swagger](https://beecloud.vimpelcom.ru/api/v1/core/swagger/index.html).
Примонтировать/отмонтировать диск к/от ВМа.
Примонтировать диск к ВМу:
```bash
$ terraform apply
```
Отмонтировать диск:
```bash
$ terraform destroy
```
## Примеры конфигураций
```hcl
resource "beecloud_volume_bind" "attach" {
volume_id = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
server_id = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY"
}
output "attach_beecloud_volume" {
value = beecloud_volume_bind.attach
}
```
## Параметры
- `volume_id` - ID диска.
- `server_id` - ID ВМа.
## В дополнение к приведенным выше параметрам, возвращаются следующие поля:
- `id` - ID TF. Соответствует ID диска.
- `region_id` - ID региона.
- `project_id` - ID проекта.
- `name` - Наименование диска.
- `size` - Размер диска.
- `type` - Тип диска.
- `is_boot` - Загрузочный/дополнительный (`true`, `false`).
- `attached_to` - ID ВМа, к которому примонтирован.
- `last_updated` - Время последнего обновления ресурса.
@@ -1 +0,0 @@
# Источник данных: vega_dns_records
@@ -1,30 +0,0 @@
# Источник данных: vega_dns_zones
Получение информации обо всех доступных зонах проекта
## Пример конфигурации
Получение всех зон
```hcl
data "vega_dns_zones" "all" {}
output "vega_affinity_groups_all" {
value = data.vega_dns_zones.all
}
```
<!--
## Возвращаемые поля
- `id` - Проект в Vega, к которому относятся ВМа (ID/Slug).
- `affinity_groups` - Список аффинити-групп.
- `affinity_group_id` - ID в системе TF. Соответствует ID группы.
- `project_id` - ID проекта.
- `name` - Наименование ВМа.
- `policy` - Политика группы (affinity/soft-affinity/anti-affinity/soft-anti-affinity).
- `region` - Данные о регионе.
- `id` - ID региона
- `slug` - Слаг региона.
- `name` - Наименование региона.
- `condition` - Состояние группы (статус) (готовность к использованию).
-->
@@ -1,47 +0,0 @@
---
page_title: "beecloud: beecloud_dns_record"
description: "Manages beecloud DNS records"
---
# Ресурс: beecloud_dns_record
Управление dns записями.
Создание и управление DNS записями проекта в beecloud. Больше информации в [swagger](https://beecloud.vimpelcom.ru/api/v1/dns/swagger/index.html#/).
Ресурс может быть создан/прочитан/обновлен/удален.
```hcl
// Получение списка доступных зон
data "beecloud_dns_zones" "local" {}
locals {
// uuid первой зоны из списка
dns_zone_id = data.beecloud_dns_zones.local.dns_zones.0.zone_id
}
resource "beecloud_dns_record" "my-name" {
name = "service1"
ttl = 600
type = "CNAME"
zone_id = local.dns_zone_id
data = ["10.0.0.2"]
tags = ["tag1", "tag2"]
}
```
## Аргументы
- `zone_id` - (Обязательно) ID DNS зоны.
- `name` - (Обязательно) Наименование.
- `type` - (Обязательно) Тип записи `A`, `AAAA`, `CNAME`,`PTR`.
- `data` - (Обязательно)
- `ttl` - (Опционально) По умолчанию: 600.
- `tags` - (Опционально) Набор тегов.
## В дополнение к приведенным выше аргументам, возвращаются следующие параметры:
- `id` - ID в системе TF. Соответствует ID адреса.
- `project_id` - ID проекта.
- `server_id` - ID ВМа, к которому относится запись.
<!-- - `is_disabled` - -->
<!-- - `is_system` - -->
-80
View File
@@ -1,80 +0,0 @@
---
page_title: "Provider: BeeCloud"
description: |-
The BeeCloud provider is used to manage BeeCloud resources. The provider needs to be configured with the proper credentials before it can be used.
---
# BeeCloud Provider
BeeCloud провайдер используется для управления ресурсами облака.
Перед использованием провайдер должен быть настроен.
## Terraform v.1.3.7 and later
```
terraform {
required_providers {
beecloud = {
source = "console.cloud.dfcloud.ru/beeline/beecloud"
}
}
}
```
## Пример конфигурации
```
terraform {
required_providers {
beecloud = {
source = "console.cloud.dfcloud.ru/beeline/beecloud"
}
}
}
provider "beecloud" {
project = "my-project"
token = "eafJKHnldkfbs.....sLbldfblhb"
}
```
## Аутентификация и Конфигурация
Конфигурация провайдера BeeCloud может быть получена из нескольких источников, которые применяются в следующем порядке:
* Параметры из конфигурации провайдера
* Из переменных среды
* Файлы общей конфигурации
### Конфигурация провайдера
Используя сервисный токен проекта:
> Получить JWT токен(роль DevOps-инженер) https://console.cloud.dfcloud.ru/projects/{PROJECT}/service-token
```hcl
provider "beecloud" {
token = "eafJKHnldkfbs.....sLbldfblhb"
project = "my-project"
}
```
### Переменные окружения
```hcl
provider "beecloud" {}
```
Используя сервисный токен проекта:
```sh
$ export BEECLOUD_TOKEN="eafJKHnldkfbs.....sLbldfblhb"
$ export BEECLOUD_PROJECT="my-project"
```
## Параметры конфигурации
| Настройка | В провайдере | Переменная окружения |
|------------------------------------------------------------------------|--------------|----------------------|
| Идентификатор проекта | project | BEECLOUD_PROJECT |
| Сервисный токен проекта | token | BEECLOUD_TOKEN |
| URL платформы значение по умолчанию "https://console.cloud.dfcloud.ru" | url | BEECLOUD_API |
-25
View File
@@ -1,25 +0,0 @@
# Null Provider
Null provider - довольно необычный поставщик, у которого есть конструкции, которые намеренно ничего не делают. Это может показаться странным, и действительно, в большинстве случаев эти конструкции не обязательно использовать, но они могут быть полезны в различных ситуациях, чтобы помочь организовать сложное поведение или обойти ограничения.
Документация по каждой функции этого поставщика, доступная через навигацию, содержит примеры ситуаций, в которых эти конструкции могут оказаться полезными.
Использование нулевого поставщика может усложнить понимание конфигурации Terraform. Хотя в некоторых случаях это может быть полезно, применять его следует с осторожностью, а при наличии других решений отдавать предпочтение.
Полная копия провайдера [hashicorp/null](https://github.com/hashicorp/terraform-provider-null)
## Пример конфигурации
```
terraform {
required_providers {
null = {
source = "console.cloud.dfcloud.ru/beeline/null"
}
}
}
provider "null" {
# Параметры конфигурации
}
```
-236
View File
@@ -1,236 +0,0 @@
# Terraform
[SDK](https://git.vimpelcom.ru/common/vega)
[Пример разворачивания веб-приложения в Docker с помощью Terraform](https://bwiki.beeline.ru/x/j9bNFQ)
[FAQ](faq.md)
<!--Основной рабочий процесс Terraform состоит из трех основных шагов после написания конфигурации Terraform:
* **Initialize** подготавливает рабочий каталог, чтобы Terraform мог запустить конфигурацию.
* **Plan** позволяет просматривать любые изменения перед их применением.
* **Apply** выполняет изменения, определенные вашей конфигурацией Terraform, для создания, обновления или уничтожения ресурсов.
Чтобы определить, какие изменения будут внесены в вашу инфраструктуру, Terraform создает план выполнения. Для этого Terraform согласовывает вашу конфигурацию Terraform с реальной инфраструктурой, отслеживаемой в файле состояния этой рабочей области, и создает список ресурсов для создания, изменения или уничтожения. Команда `plan` поддерживает несколько флагов, которые позволяют вам изменять ее поведение, что позволяет вам быть гибкими в своих операциях. Например, вы можете ориентироваться на определенные ресурсы, а не на всю конфигурацию, или запускать планы только для обновления, которые согласовывают ваш файл состояния с фактической конфигурацией ресурсов, которые он отслеживает.
В этом руководстве вы узнаете, как Terraform создает план выполнения, что он содержит и какова функция команды `plan` в рабочем процессе Terraform. Для этого вы создадите и примените сохраненный план Terraform, просмотрите его содержимое и проанализируете, как план отражает изменения в вашей конфигурации. Сохраненный файл плана поддерживает рабочие процессы автоматизации Terraform в конвейерах CI/CD, гарантируя, что изменения инфраструктуры, применяемые Terraform, соответствуют изменениям, утвержденным вами или вашей командой, даже если процесс развертывания завершается на разных машинах или в разное время.
## Предпосылки
В руководстве предполагается, что вы знакомы с Terraform. Если вы новичок в самом Terraform, сначала обратитесь к руководствам [официальной документации Get Started](https://developer.hashicorp.com/terraform/tutorials).
Для этого урока вам понадобятся:
* CLI Terraform 0.14+, установленный локально.
* Проект в облаке Vega
## Клонирование репозитория с уроком
В вашем терминале выполните
```sh
$ git clone https://git.vimpelcom.ru/common/vega/learn-terraform-plan
```
Перейдите к клонированному репозиторию.
```sh
$ cd learn-terraform-plan
```
## Проверить конфигурацию
Пример конфигурации в этом репозитории создает два ВМа в вашем облаке Vega.
```bash
$ tree
.
├── README.md
├── main.tf
├── nginx
│ ├── main.tf
│ ├── variables.tf
│ └── versions.tf
└── versions.tf
```
Terraform использует версии провайдеров, указанные в `terraform.tf` файле.
```terraform
terraform {
required_providers {
vega = {
version = "~> 2.0.0"
source = "registry.vega.com/terraform-provider-vega/vega"
}
}
}
```
main.tf
```terraform
# Flavors data
data "vega_flavors" "all" {}
output "vega_flavors_stage" {
value = data.vega_flavors.all
}
# Regions data
data "vega_regions" "all" {}
output "vega_regions_stage" {
value = data.vega_regions.all
}
# Images data
data "vega_images" "all" {}
output "vega_images_stage" {
value = data.vega_images.all
}
locals {
flavor_standart = [for i in data.vega_flavors.all.flavors: i.flavor_id if i.slug == "cpu2ram2"]
region_stage = [for i in data.vega_regions.all.regions: i.region_id if i.slug == "yd-ost1"]
image_ubuntu_20_04 = [for i in data.vega_images.all.images: i.image_id if i.slug == "ubuntu-20-04"]
image_docker = [for i in data.vega_images.all.images: i.image_id if i.slug == "docker-ubuntu-20-04"]
}
# Запуск создания ВМа
resource "vega_server" "vega_app" {
flavor {
id = local.flavor_standart.0
}
image {
id = local.image_docker.0
}
region {
id = local.region_stage.0
}
name = var.server_name_app
root_volume {
size = 100
type = "hdd"
}
tags = ["app", "docker"]
}
# Запуск создания ВМа
resource "vega_server" "vega_db_m" {
flavor {
id = local.flavor_standart.0
}
image {
id = local.image_ubuntu_20_04.0
}
region {
id = local.region_stage.0
}
name = var.server_name_dbm
root_volume {
size = 40
type = "hdd"
}
tags = ["db", "postgres"]
additional_volume_ids = [vega_volume.database_m.volume_id]
}
output "vega_server_vega_app" {
value = vega_server.vega_app
}
output "vega_server_vega_dbm" {
value = vega_server.vega_db_m
}
# Создание дополнительного диска
resource "vega_volume" "database_m" {
name = format("%s-%s", var.server_name_dbm, "attached")
region_id = local.region_stage.0
size = 100
type = "hdd"
}
output "vega_database_m" {
value = vega_volume.database_m
}
```
## Инициализируйте свою конфигурацию
Чтобы сгенерировать план выполнения, Terraform необходимо установить поставщиков и модули, на которые ссылается ваша конфигурация. Затем он будет ссылаться на локально кэшированные провайдеры и модули для создания плана изменений ресурсов.
Инициализируйте конфигурацию Terraform, чтобы установить необходимые провайдеры и модули.
```sh
$ terraform init
Initializing the backend...
Initializing provider plugins...
- Finding registry.vega.com/terraform-provider-vega/vega versions matching "~> 2.0.0"...
- Installing registry.vega.com/terraform-provider-vega/vega v2.0.0...
- Installed registry.vega.com/terraform-provider-vega/vega v2.0.0 (unauthenticated)
Terraform has created a lock file .terraform.lock.hcl to record the provider
selections it made above. Include this file in your version control repository
so that Terraform can guarantee to make the same selections by default when
you run "terraform init" in the future.
Terraform has been successfully initialized!
You may now begin working with Terraform. Try running "terraform plan" to see
any changes that are required for your infrastructure. All Terraform commands
should now work.
If you ever set or change modules or backend configuration for Terraform,
rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
```
## Создать план
---
::: tip Информация
Это руководство было протестировано с Terraform 1.1.3.
:::
## Первая конфигурация
Для Terraform v.1.3.7 и моложе
```
terraform {
required_providers {
vega = {
version = "~> 0.0.1"
source = "registry.vega.com/terraform-provider-vega/vega"
}
}
}
```
## Пример конфигурации
```
terraform {
required_providers {
vega = {
version = "~> 0.0.1"
source = "registry.vega.com/terraform-provider-vega/vega"
}
}
}
provider "vega" {
username = "username"
password = "password"
url = "https://vega.cloud.vimpelcom.ru"
project = "vega-project"
}
```
Для работы с провайдером передаются параметры пользователя для авторизации и проект, в рамках которого будет происходить управление ресурсами.-->