|
1 | 1 | Для создания инфраструктуры в Yandex Cloud с помощью Terraform нужно:
|
2 | 2 |
|
3 | 3 | 1. Подготовить облако к работе:
|
4 |
| - * [Зарегистрироваться](https://console.cloud.yandex.ru/) в Yandex Cloud. |
5 |
| - * [Подключить](https://cloud.yandex.com/ru/docs/billing/concepts/billing-account) платежный аккаунт. |
6 |
| - * [Убедится](https://console.cloud.yandex.ru/billing) в наличии достаточного количества средств для создания девяти ВМ. |
7 |
| -2. Установить и настроить Yandex Cloud CLI: |
8 |
| - * [Скачать](https://cloud.yandex.ru/ru/docs/cli/quickstart) Yandex Cloud CLI. |
9 |
| - * [Создать](https://cloud.yandex.ru/ru/docs/cli/quickstart#initialize) профиль |
10 |
| -3. [Создать](https://cloud.yandex.com/ru/docs/tutorials/infrastructure-management/terraform-quickstart#get-credentials) сервисный аккаунт с помощью CLI. |
11 |
| -4. [Сгенерировать](https://cloud.yandex.ru/ru/docs/cli/operations/authentication/service-account#auth-as-sa) SA ключ в JSON формате для подключения Terraform к облаку с помощью CLI: `yc iam key create --service-account-name <acc name> --output <file name> --folder-id <cloud folder id>`. Будет сгенерирован SA ключ, а в терминал будет выведена секретная информация: |
| 4 | + * [Зарегистрироваться](https://console.yandex.cloud) в Yandex Cloud. |
| 5 | + * [Подключить]({{ yandex_docs }}/billing/concepts/billing-account) платежный аккаунт. |
| 6 | + * [Убедится](https://billing.yandex.cloud/) в наличии достаточного количества средств для создания девяти ВМ. |
| 7 | +1. Установить и настроить Yandex Cloud CLI: |
| 8 | + * [Скачать]({{ yandex_docs }}/cli/quickstart) Yandex Cloud CLI. |
| 9 | + * [Создать]({{ yandex_docs }}/cli/quickstart#initialize) профиль |
| 10 | +1. [Создать]({{ yandex_docs }}/tutorials/infrastructure-management/terraform-quickstart#get-credentials) сервисный аккаунт с помощью CLI. |
| 11 | +1. [Сгенерировать]({{ yandex_docs }}/cli/operations/authentication/service-account#auth-as-sa) авторизованный ключ в JSON формате для подключения Terraform к облаку с помощью CLI: `yc iam key create --service-account-name <acc name> --output <file name> --folder-id <cloud folder id>`. В терминал будет выведена информация о созданном ключе: |
12 | 12 | ```
|
13 |
| - access_key: |
14 |
| - id: ajenhnhaqgd3vp... |
15 |
| - service_account_id: aje90em65r6922... |
16 |
| - created_at: "2024-03-05T20:10:50.0150..." |
17 |
| - key_id: YCAJElaLsa0z3snzH4E... |
18 |
| - secret: YCPKNJDVhRZgyywl4hQwVdcSRC... |
| 13 | + id: ajenap572v8e1l... |
| 14 | + service_account_id: aje90em65r69... |
| 15 | + created_at: "2024-09-03T15:34:57.495126296Z" |
| 16 | + key_algorithm: RSA_2048 |
19 | 17 | ```
|
20 |
| - Скопируйте `access_key.id` и `secret`. Значения этих полей нужны будут в дальнейшем при работе с AWS CLI. |
21 |
| -5. [Скачать](https://aws.amazon.com/ru/cli/) AWS CLI. |
22 |
| -6. Настроить окружение AWS CLI: |
23 |
| - * Запустите команду `aws configure` и последовательно введите сохраненные ранее `access_key.id` и `secret`. Для значения региона используйте `ru-central1`: |
24 |
| - ``` |
25 |
| - aws configure |
26 |
| - AWS Access Key ID [None]: AKIAIOSFODNN******** |
27 |
| - AWS Secret Access Key [None]: wJalr********/*******/bPxRfiCYEX******** |
28 |
| - Default region name [None]: ru-central1 |
29 |
| - Default output format [None]: |
30 |
| - ``` |
31 |
| - Будут созданы файлы `~/.aws/credentials` и `~/.aws/config`. |
32 |
| -7. Отредактировать `~/.aws/credentials` и `~/.aws/config` следующим образом: |
33 |
| - * Добавьте `[Ya_def_reg]` в `~/.aws/config` перед `region = ru-central1-a`. |
34 |
| - * Добавьте `[Yandex]` перед секретной информацией о ключах подключения. |
35 |
| -8. [Настроить](https://cloud.yandex.com/ru/docs/tutorials/infrastructure-management/terraform-quickstart#configure-provider) Yandex Cloud Terraform провайдера. |
36 |
| -9. Скачать данный репозиторий командой `git clone https://github.com/ydb-platform/ydb-terraform.git`. |
37 |
| -10. Перейти в директорию `yandex_cloud` (директория в скаченном репозитории) и внести изменения в следующие переменные, в файле `variables.tf`: |
38 |
| - * `key_path` – путь к сгенерированному SA ключу с помощью CLI. |
| 18 | + Авторизованный ключ будет создан в директории, где вызывалась команда. |
| 19 | +1. [Настроить]({{ yandex_docs }}/tutorials/infrastructure-management/terraform-quickstart#configure-provider) Yandex Cloud Terraform провайдера. |
| 20 | +1. Скачать данный репозиторий командой `git clone https://github.com/ydb-platform/ydb-terraform.git`. |
| 21 | +1. Перейти в директорию `yandex_cloud` (директория в скаченном репозитории) и внести изменения в следующие переменные, в файле `variables.tf`: |
| 22 | + * `key_path` – путь к сгенерированному авторизованному ключу с помощью CLI. |
39 | 23 | * `cloud_id` – ID облака. Можно получить список доступных облаков командой `yc resource-manager cloud list`.
|
40 |
| - * `profile` – название профиля из файла `~/.aws/config`. |
41 | 24 | * `folder_id` – ID Cloud folder. Можно получить командой `yc resource-manager folder list`.
|
42 | 25 |
|
43 | 26 | Теперь, находясь в поддиректории `yandex_cloud`, можно выполнить последовательность следующих команд для установки провайдера, инициализации модулей и создания инфраструктуры:
|
44 | 27 |
|
45 | 28 | 1. `terraform init` – установка провайдера и инициализация модулей.
|
46 |
| -2. `terraform plan` – создание плана будущей инфраструктуры. |
47 |
| -3. `terraform apply` (повторное выполнение) – создание ресурсов в облаке. |
| 29 | +1. `terraform plan` – создание плана будущей инфраструктуры. |
| 30 | +1. `terraform apply` (повторное выполнение) – создание ресурсов в облаке. |
48 | 31 |
|
49 | 32 | Далее используются команды `terraform plan`, `terraform apply` и `terraform destroy` (уничтожение созданной инфраструктуры).
|
50 | 33 |
|
51 | 34 | {% note info %}
|
52 | 35 |
|
53 |
| -С помощью Yandex Cloud провайдера можно не только создавать инфраструктуру для дальнейшего развертывания на ней {{ ydb-short-name }} кластера с помощью [Ansible](../../initial-deployment.md), но и управлять [serverless или dedicated](https://cloud.yandex.ru/ru/services/ydb) версией {{ ydb-short-name }} прямо из Terraform. О возможностях работы с {{ ydb-short-name }} в Yandex Cloud читайте в разделе [Работа с YDB через Terraform](https://cloud.yandex.ru/ru/docs/ydb/terraform/intro) документации Yandex Cloud. |
| 36 | +С помощью Yandex Cloud провайдера можно не только создавать инфраструктуру для дальнейшего развертывания на ней {{ ydb-short-name }} кластера с помощью [Ansible](../../initial-deployment.md), но и управлять [serverless или dedicated](https://yandex.cloud/ru/services/ydb) версией {{ ydb-short-name }} прямо из Terraform. О возможностях работы с {{ ydb-short-name }} в Yandex Cloud читайте в разделе [Работа с YDB через Terraform]({{ yandex_docs }}/ydb/terraform/intro) документации Yandex Cloud. |
54 | 37 |
|
55 | 38 | {% endnote %}
|
0 commit comments