Feature/pravki3
This commit is contained in:
@@ -1,9 +0,0 @@
|
|||||||
# Заключение договора с ЮЛ
|
|
||||||
|
|
||||||
Аккаунт beeline cloud создается для физического лица. Для добавления организации необходимо отправить заявку из личного кабинета beeline cloud физического лица:
|
|
||||||
|
|
||||||
1. Войдите в [личный кабинет beeline cloud](https://lk.cloud.beeline.ru/).
|
|
||||||
2. В информационном окне о бесплатном тестировании нажмите на ссылку **Заключить договор**.
|
|
||||||
3. Заполните заявку на заключение договора:
|
|
||||||
- **ФИО**: укажите контактное лицо;
|
|
||||||
- **ИНН**: укажите ИНН организации, с которой заключается договор.
|
|
||||||
@@ -4,12 +4,12 @@
|
|||||||
|
|
||||||
## Создать виртуальный ВМ
|
## Создать виртуальный ВМ
|
||||||
|
|
||||||
1. Откройте [консоль управления](https://console.cloud.dfcloud.ru).
|
1. Отк
|
||||||
2. Выбрать проект.
|
2. Выбрать проект.
|
||||||
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
|
3. На странице **Обзор** убедитесь в наличии свободных ресурсов.
|
||||||
4. Нажмите **Создать ВМ**.
|
4. Нажмите **Создать ВМ**.
|
||||||
5. Выберите образ ОС UNIX.
|
5. Выберите образ ОС UNIX.
|
||||||
6. [Заполните свойства cервера](../compute/compute-instructions/compute-servers-create.md#создать-ВМ).
|
6.
|
||||||
7. Нажмите **Cоздать ВМ**.
|
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. В открывшемся окне подтвердите операцию:
|
|
||||||
- Скопируйте предложенный текст.
|
|
||||||
- Нажмите **Удалить**.
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Квоты и лимиты
|
|
||||||
|
|
||||||
Ограничений на количество создаваемых записей в зоне нет.
|
|
||||||
@@ -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. Нажмите ⠇ и выберите **Удалить**.
|
|
||||||
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 <путь_к_директории>
|
|
||||||
```
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
# Квоты и лимиты
|
|
||||||
|
|
||||||
Для сервиса действует квота по умолчанию, определяемая при инициализация проекта, в размере 100 Гбайт.
|
|
||||||
@@ -1,17 +0,0 @@
|
|||||||
# Уровень обслуживания
|
|
||||||
|
|
||||||
Настоящий документ определяет уровень обслуживания (SLA) сервиса «Объектное хранилище».
|
|
||||||
|
|
||||||
|
|
||||||
## Описание предоставляемых услуг
|
|
||||||
|
|
||||||
В таблице рассмотрены услуги, предоставляемые в рамках SLA сервиса «Объектное хранилище».
|
|
||||||
|
|
||||||
| Наименование услуги | Краткое описание | Ценность для потребителя | Целевая аудитория |
|
|
||||||
|---|---|---|---|
|
|
||||||
| Доступ к S3 хранилищу | Web-доступ к эластичному хранилищу данных | Возможность очень быстрого подключения дискового пространства в приложение, ВМ, ВРС и т. п. | DevOps<br> Администраторы |
|
|
||||||
|
|
||||||
|
|
||||||
## Доступность услуги
|
|
||||||
|
|
||||||
Доступ к S3 хранилищу 99,5 %.
|
|
||||||
@@ -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-го и последующих уровней это правило не распространяется;
|
|
||||||
- может содержать строчные буквы латинского алфавита, цифры, дефис и подчеркивания;
|
|
||||||
- подчеркивание недопустимо для имени бакета в корневом каталоге.
|
|
||||||
|
|
||||||
Правила именования файлов в бакете:
|
|
||||||
- может содержать строчные буквы латинского алфавита, цифры, дефис и подчеркивания.
|
|
||||||
@@ -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 |
|
|
||||||
@@ -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` - -->
|
|
||||||
@@ -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 |
|
|
||||||
@@ -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" {
|
|
||||||
# Параметры конфигурации
|
|
||||||
}
|
|
||||||
```
|
|
||||||
@@ -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"
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Для работы с провайдером передаются параметры пользователя для авторизации и проект, в рамках которого будет происходить управление ресурсами.-->
|
|
||||||
Reference in New Issue
Block a user