VMmanager

Управление инфраструктурой через Terraform

Terraform — это программное обеспечение для управления внешней инфраструктурой. С помощью Terraform вы можете управлять ресурсами VMmanager  — виртуальными машинами (ВМ), сетями и т.д.

В Terraform используется подход Infrastructure as code — все команды и настройки для ресурсов передаются через конфигурационные файлы. В конфигурационных файлах используется декларативный язык HCL (HashiCorp Configuration Language). Подробнее о Terraform см. в официальной документации.

Terraform взаимодействует с объектами инфраструктуры с помощью специального набора инструкций — провайдера. Документация к провайдеру для VMmanager доступна на ресурсах registry.terraform.io и github.com.

Установка Terraform

Стандартный способ

AlmaLinux

  1. Выполните команды: 
    yum install -y yum-utils curl
    yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
    yum -y install terraform
  2. Создайте отдельную директорию для Terraform: 

    mkdir ./terraform

Debian, Ubuntu

  1. Выполните команды: 

    apt-get update && apt-get install -y gnupg software-properties-common curl
    curl -fsSL https://apt.releases.hashicorp.com/gpg | apt-key add -
    apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
    sudo apt-get update && sudo apt-get install terraform
  2. Создайте отдельную директорию для Terraform:

    mkdir ./terraform

macOS

  1. Если в системе не установлен менеджер пакетов Homebrew, установите его: 

    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  2. Выполните команды:

    brew tap hashicorp/tap
    brew install hashicorp/tap/terraform
    brew update
    brew upgrade hashicorp/tap/terraform
  3. Создайте отдельную директорию для Terraform:

    mkdir ./terraform

Windows

  1. Скачайте версию Terraform для Windows.
  2. Распакуйте содержимое архива в отдельную директорию. Например, C:\Apps\Terraform\.
  3. Добавьте путь к директории с Terraform в системную переменную PATH. Порядок добавления зависит от версии ОС.

Альтернативный способ

Если репозиторий Terraform недоступен, вы можете скачать дистрибутив ПО из зеркала репозитория. После загрузки:

  1. Распакуйте содержимое архива в отдельную директорию.
  2. Добавьте путь к директории в системную переменную PATH: 

    Команда для Linux
    export PATH=$PATH:/path/to/terraform
    Пояснения к команде

Подготовка конфигурации

Чтобы подготовить конфигурацию, создайте в директории с Terraform файл main.tf. 

Пример файла main.tf для создания ВМ

Создание ресурсов

  1. Инициализируйте проект конфигурации: 

    terraform init

    Если ресурс с провайдером недоступен, ответ будет содержать ошибку вида 

    │ Error: Failed to query available provider packages
    │ 
    │ Could not retrieve the list of available versions for provider
    │ usaafko/vmmanager6: could not connect to registry.terraform.io: Failed to
    │ request discovery document: 403 Forbidden

    В этом случае вы можете установить провайдер локально: 

    Обратите внимание!
    Локальная установка провайдера возможна только на ПК с ОС семейства Linux.
    1. Выполните команды: 

      mkdir -p ~/.terraform.d/plugins/localhost/usaafko/vmmanager6/0.0.25/linux_amd64/
      curl -L https://github.com/usaafko/terraform-provider-vmmanager6/releases/download/v0.0.25/terraform-provider-vmmanager6_0.0.25_linux_amd64.zip -o terraform-provider-vmmanager6.zip
      unzip terraform-provider-vmmanager6.zip
      mv terraform-provider-vmmanager6_v0.0.25 ~/.terraform.d/plugins/localhost/usaafko/vmmanager6/0.0.25/linux_amd64/terraform-provider-vmmanager6
    2. В файле main.tf замените строку 

      source = "usaafko/vmmanager6" 

      на 

      source = "localhost/usaafko/vmmanager6"
    3. Инициализируйте проект конфигурации: 

      terraform init
  2. Проверьте синтаксис конфигурационного файла: 

    terraform validate

    Если конфигурация является допустимой, ответ будет содержать сообщение: 

    Success! The configuration is valid.
  3. Проверьте, что ресурсы будут созданы с нужной конфигурацией: 

    terraform plan

    Вывод команды будет содержать список создаваемых ресурсов и их свойства. При необходимости вы можете исправить файл конфигурации и повторить выполнение команды.

  4. Запустите создание ресурсов: 

    terraform apply

    Чтобы подтвердить создание ресурсов, введите yes и нажмите Enter.

Изменение ресурсов

Чтобы изменить созданные ресурсы:

  1. Измените настройки ресурсов в файле main.tf.
  2. Выполните команду:

    terraform apply

    Чтобы подтвердить изменение ресурсов, введите yes и нажмите Enter.

Если часть ресурсов уже была создана, Terraform не будет пересоздавать их.

Удаление ресурсов

Чтобы удалить созданные ресурсы, выполните команду: 

terraform destroy

После выполнения команды в терминале будет выведен список удаляемых ресурсов. Чтобы подтвердить удаление, введите yes и нажмите Enter.

Обратите внимание!
После выполнения этой команды восстановление ресурсов невозможно.