---
title: "Настроить окружение для работы с Terraform"
sidebar_label: "Настроить окружение"
sidebar_position: 2
description: "Как настроить окружение для работы с Terraform"
---

import Formbricks from '@theme/MDXComponents/Formbricks'
import ConfigureProviders from '@site/terraform/_partials/common/configure-providers.mdx'
import ConfigureSelectelProviders from '@site/terraform/_partials/common/configure-selectel-providers.mdx'
import Tabs from '@theme/Tabs'
import TabItem from '@theme/TabItem'
import {TabItemLabel} from 'docs-kit/components'

# Настроить окружение для работы с Terraform

1. [Установите Terraform](#install-terraform).
2. [Создайте сервисного пользователя](#add-service-user).
3. [Настройте провайдеры](#configure-providers).

## 1. Установить Terraform \{#install-terraform}

1. Скачайте дистрибутив Terraform для вашей операционной системы с [сайта HashiCorp](https://developer.hashicorp.com/terraform/install) или с [зеркала](https://mirror.selectel.ru/3rd-party/hashicorp-releases/terraform/). Рекомендуем скачать версию Terraform 1.9.
2. Если вы загрузили дистрибутив Terraform из зеркала, экспортируйте в переменную окружения `PATH` путь к нему:

   ```sh
   export PATH=$PATH:<path>
   ```

   Укажите `<path>` — путь к бинарному файлу Terraform.
3. Установите Terraform. Для ОС Linux и macOS используйте инструкцию [Install Terraform](https://developer.hashicorp.com/terraform/install) документации HashiCorp.

## 2. Создать сервисного пользователя \{#add-service-user}

Для работы с [примерами](/terraform/examples/) нужно создать сервисного пользователя с двумя [ролями](/access-control/access-management/#roles):

* [`member`](/access-control/role-reference/#member) в области доступа Аккаунт или Проект — роль нужна для инициализации провайдера Selectel и создания ресурсов. Область доступа влияет на доступные операции, их можно посмотреть в подразделе [member](/access-control/role-reference/#member) инструкции [Справочник ролей](/access-control/role-reference);
* и [`iam.admin`](/access-control/role-reference/#iam-admin) — для создания дополнительных пользователей и разграничения доступа в проектах.

<br />

1. В [панели управления](https://my.selectel.ru/iam/service-users) в верхнем меню нажмите **IAM**.

2. Перейдите в раздел **Сервисные пользователи**.

3. Нажмите **Добавить сервисного пользователя**.

4. В блоке **Данные сервисного пользователя**:

   4.1. Введите имя пользователя. Оно будет использоваться при авторизации.

   4.2. Введите пароль для пользователя или сгенерируйте его.
   После создания пользователя посмотреть пароль нельзя — можно только [изменить его](/access-control/manage/edit-user-data-or-role/#change-service-user-password).
   Пароль должен быть не короче 20 символов и включать минимум:

   * одну заглавную и одну строчную латинскую букву (`A-Z`, `a-z`);
   * одну цифру (`0-9`);
   * один специальный символ из списка ASCII Printable 7-Bit Special Characters:<br /> `!"#$%&'()*+,-./:;<=>?@[]^_{|}~`.

5. В блоке **Доступ к аккаунту**:

   5.1. Настройте разрешение для [`iam.admin`](/access-control/role-reference/#iam-admin), для этого выберите:

   * [область доступа](/access-control/access-management/#scopes) — Аккаунт;
   * [роль](/access-control/access-management/#roles) — `iam.admin`.

   5.2. Нажмите **Добавить разрешение**.

   5.3. Настройте разрешение для [`member`](/access-control/role-reference/#member), для этого выберите:

   * [область доступа](/access-control/access-management/#scopes) — Аккаунт или Проект;
   * [роль](/access-control/access-management/#roles) — `member`.

   5.4. Опционально: выберите [группу](/access-control/groups/) для пользователя.

6. Нажмите **Добавить пользователя**. Он будет добавлен в список на странице **Сервисные пользователи**. Учетная запись будет активна сразу.

## 3. Настроить провайдеры \{#configure-providers}

Если используемая версия Terraform-провайдера Selectel ниже 6.0.0, вы можете обновить ее.
Подробнее в инструкции [Upgrading Terraform Selectel Provider to version 6.0.0](https://registry.terraform.io/providers/selectel/selectel/latest/docs/guides/upgrading_to_version_6) на Terraform Registry.

<Tabs queryString="configure-provides">
  <TabItem value="selectel-and-openstack" default>
    <TabItemLabel>
      Провайдеры Selectel и Openstack
    </TabItemLabel>

    <ConfigureProviders />
  </TabItem>

  <TabItem value="only-selectel">
    <TabItemLabel>
      Провайдер Selectel
    </TabItemLabel>

    <ConfigureSelectelProviders />
  </TabItem>
</Tabs>

<Formbricks />
