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 curl
yum-config-manager --add-repo https://rpm.releases.hashicorp.com/RHEL/hashicorp.repo
yum -y install terraform
-
Создайте отдельную директорию для Terraform:
mkdir ./terraform
Debian, Ubuntu
-
Выполните команды:
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
-
Создайте отдельную директорию для Terraform:
mkdir ./terraform
macOS
-
Если в системе не установлен менеджер пакетов Homebrew, установите его:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Выполните команды:
brew tap hashicorp/tap
brew install hashicorp/tap/terraform
brew update
brew 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.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
-
В файле 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.