Terraform — это программное обеспечение для управления внешней инфраструктурой. С помощью Terraform вы можете управлять ресурсами VMmanager — виртуальными машинами (ВМ), сетями и т.д.
В Terraform используется подход Infrastructure as code — все команды и настройки для ресурсов передаются через конфигурационные файлы. В конфигурационных файлах используется декларативный язык HCL (HashiCorp Configuration Language). Подробнее о Terraform см. в официальной документации.
Terraform взаимодействует с объектами инфраструктуры с помощью специального набора инструкций — провайдера. Документация к провайдеру для VMmanager доступна на ресурсах registry.terraform.io и github.com.
Установка Terraform
Стандартный способ
AlmaLinux
- Выполните команды:
yum install -y yum-utils curlyum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repoyum -y install terraform -
Создайте отдельную директорию для Terraform:
mkdir ./terraform
Debian, Ubuntu
-
Выполните команды:
apt-get update && apt-get install -y gnupg software-properties-common curlcurl -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 -
Создайте отдельную директорию для Terraform:
mkdir ./terraform
macOS
-
Если в системе не установлен менеджер пакетов Homebrew, установите его:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" -
Выполните команды:
brew tap hashicorp/tapbrew install hashicorp/tap/terraformbrew updatebrew upgrade hashicorp/tap/terraform -
Создайте отдельную директорию для Terraform:
mkdir ./terraform
Windows
- Скачайте версию Terraform для Windows.
- Распакуйте содержимое архива в отдельную директорию. Например, C:\Apps\Terraform\.
- Добавьте путь к директории с Terraform в системную переменную PATH. Порядок добавления зависит от версии ОС.
Альтернативный способ
Если репозиторий Terraform недоступен, вы можете скачать дистрибутив ПО из зеркала репозитория. После загрузки:
- Распакуйте содержимое архива в отдельную директорию.
-
Добавьте путь к директории в системную переменную PATH:
Команда для Linuxexport PATH=$PATH:/path/to/terraformПояснения к команде
Подготовка конфигурации
Чтобы подготовить конфигурацию, создайте в директории с Terraform файл main.tf.
Создание ресурсов
-
Инициализируйте проект конфигурации:
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.-
Выполните команды:
mkdir -p ~/.terraform.d/plugins/localhost/usaafko/vmmanager6/0.0.34/linux_amd64/curl -L https://github.com/usaafko/terraform-provider-vmmanager6/releases/download/v0.0.34/terraform-provider-vmmanager6_0.0.34_linux_amd64.zip -o terraform-provider-vmmanager6.zipunzip terraform-provider-vmmanager6.zipmv terraform-provider-vmmanager6_v0.0.34 ~/.terraform.d/plugins/localhost/usaafko/vmmanager6/0.0.34/linux_amd64/terraform-provider-vmmanager6 -
В файле main.tf замените строку
source = "usaafko/vmmanager6"на
source = "localhost/usaafko/vmmanager6" -
Инициализируйте проект конфигурации:
terraform init
-
-
Проверьте синтаксис конфигурационного файла:
terraform validateЕсли конфигурация является допустимой, ответ будет содержать сообщение:
Success! The configuration is valid. -
Проверьте, что ресурсы будут созданы с нужной конфигурацией:
terraform planВывод команды будет содержать список создаваемых ресурсов и их свойства. При необходимости вы можете исправить файл конфигурации и повторить выполнение команды.
-
Запустите создание ресурсов:
terraform applyЧтобы подтвердить создание ресурсов, введите yes и нажмите Enter.
Изменение ресурсов
Чтобы изменить созданные ресурсы:
- Измените настройки ресурсов в файле main.tf.
-
Выполните команду:
terraform applyЧтобы подтвердить изменение ресурсов, введите yes и нажмите Enter.
Если часть ресурсов уже была создана, Terraform не будет пересоздавать их.
Удаление ресурсов
Чтобы удалить созданные ресурсы, выполните команду:
terraform destroyПосле выполнения команды в терминале будет выведен список удаляемых ресурсов. Чтобы подтвердить удаление, введите yes и нажмите Enter.