Давайте дружить в Телеграме: рассказываем про новые фичи, общаемся в комментах, прислушиваемся к вашим идеям Подписаться

Локальные зеркала для Terraform и Packer

Александр Бархатов
Александр Бархатов
Технический писатель
27 мая 2024 г.
71
11 минут чтения
Средний рейтинг статьи: 5

При работе с облачными и хостинг-провайдерами часто используется подход под названием Infrastructure as Code (IaC, инфраструктура как код), при котором инфраструктурные компоненты, такие как виртуальные машины, балансировщики, прокси-серверы и т.д. создаются и разворачиваются путем написания конфигурационных файлов вместо использования ручного управления, например, при помощи веб–интерфейса. Среди достоинств использования Infrastructure as Code можно выделить автоматизацию процессов при разворачивание инфраструктуры а также скорость работы.

При использовании подхода «инфраструктура как код» обычно используют два основных инструмента: Terraform и Packer.

Terraform — утилита для создания и настройки облачной инфраструктуры, использующая подход Infrastructure as Code. Terraform поддерживает работу с обширным списком различных облачных провайдеров, включая Amazon Web Services (AWS), Microsoft Azure, Google Cloud Platform, Alibaba Cloud, Oracle Cloud. Также Terraform поддерживает работу с облачным провайдером Timeweb Cloud.

Для написания конфигурационных файлов Terraform использует свой собственный язык, который называется Hashicorp Configuration Language или сокращенно HCL.

Packer — утилита для создания образов виртуальных машин. Готовый образ включает в себя выбранную операционную систему, программное обеспечение а также необходимые настройки. Как и в случае с Terraform, Packer поддерживает интеграцию с различными облачными провайдерами с целью быстрого разворачивания новой виртуальной машины.

Packer используют, когда приходится часто собирать образы операционных систем на базе ядра Linux.

Обе утилиты разработаны одной компанией (HashiCorp), имеют открытый исходным код и распространяются бесплатно. Также отдельно присутствуют коммерческие Enterprise-версии двух продуктов, особенностью которых является наличие поддержки от разработчиков, а также предоставлен дополнительный функционал для работы в больших командах. При этом основной функционал одинаков, как в бесплатной версии, так и в коммерческой.

Однако, с марта 2022 года скачать Terraform и Packer с официального сайта HashiCorp пользователям с российскими IP-адресами нельзя. Здесь на помощь приходят зеркала.

В данной статье мы установим Terraform и Packer на операционные системы Ubuntu 22.04 и Windows Server 2022, используя зеркальные сайты (зеркала).

Предварительные требования

Для установки Terraform и Packer при помощи зеркальных сайтов нам понадобится:

  • Сервер или виртуальная машина на ядре с операционной системой Linux. Использовать можно как самые популярные дистрибутивы, включая Ubuntu, Debian, Astra Linux, CentOS, RHEL, Fedora, так и менее популярные — AlmaLinux, Arch Linux и другие. В данной статье будет использоваться дистрибутив Ubuntu версии 22.04, однако команды установки будут одинаковыми для всех современных дистрибутивов Linux.

  • Сервер или виртуальная машина с операционной системой Windows. Использовать можно любую редакцию, как домашнюю (Home Edition), так и серверную (Server). В данной статье будет использоваться дистрибутив Windows Server версии 2022.

Регистрация в Timeweb Cloud

Чтобы арендовать облачный или выделенный сервер в Timeweb Cloud, необходимо пройти регистрацию. 

Переходим по ссылке для регистрации нового пользователя. Мы выберем регистрацию на физическое лицо и заполним следующие данные:

  • ФИО,

  • адрес электронной почты, 

  • номер телефона.

После регистрации на указанный адрес почты придет сообщение с ссылкой для активации аккаунта и входа в панель — перейдите по ней.

Создание облачного сервера

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

1) Переходим на страницу авторизации и входим в аккаунт при помощи логина или адреса электронной почты и пароля или при помощи ВКонтакте, GitHub, Google.

2) После успешной авторизации отобразится панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить». 

3) Выбираем операционную систему, которая будет установлена на сервер. В нашем случае нам необходима Ubuntu версии 22.04 и Windows Server 2022.

4) Выбираем регион, в котором будет находиться наш сервер. Выбирать рекомендуется тот регион, который ближе всего находится к вам физически. У каждого доступного региона справа вверху отображается ping, т.е. время, необходимое для передачи данных с вашего компьютера на сервер. Чем меньше указанное время, тем быстрее будет осуществляться передача данных.

Image2

5) Далее выбираем необходимую конфигурацию для серверов. Так как в данной статье упор делается только на установке Terraform и Packer, то для конфигурации сервера с Ubuntu выберем двухъядерный процессор и 40 ГБ жесткого диска. Для сервера с Windows выберем двухъядерный процессор и 50 ГБ жесткого диска. В реальности вам необходимо выбирать именно ту конфигурацию, которая будет удовлетворять вашим потребностям при работе с Terraform и Packer. Выбираем соответствующий тариф.

6) Далее необходимо решить, будет ли сервер доступен из внешний сети или же только из приватной (частной) сети. Если не уверены в настройках, оставьте эти параметры без изменений.

Будьте внимательны, если заказываете сервер в Москве — по умолчанию для них не выдается публичный IP–адрес. Для выхода сервера в Интернет, нужно заказать плавающий IP.

7) По желанию можно оформить дополнительные услуги, включая резервные копии и защиту от DDoS–атак (последняя доступна только в Санкт–Петербурге).

8) Также заранее можно загрузить SSH–ключ, чтобы не входить на север при помощи пароля.

9) Можно задать необходимое имя для сервера которое будет отображаться в панели управления, а также выбрать проект.

10) Для создания сервера необходимо нажать на кнопку «Заказать».

Если на вашем аккаунте недостаточно средств, то будет выведено предупреждение о необходимости пополнить баланс. После оплаты и создания сервера откроется Дашборд сервера, где можно будет найти IP–адрес, логин и пароль для подключения.

Доступ к Terraform через официальный сайт

Если попробовать скачать Terraform или Packer с официального сайта HashiCorp, например, для дистрибутива Ubuntu, то пользователи с российскими IP-адресами будут получать ошибки.

При попытке скачать GPG ключ от официального репозитория Terraform появляется ошибка ERROR 404: Not Found:

Image19

Если же попробовать установить пакет Terraform, то при попытке подключения к официальному репозиторию Hashicorp будет отображаться ошибка 404 Not Found:

Image6

При попытке скачать GPG-ключ от официального репозитория Packer будет отображаться ошибка: curl: (22) The requested URL returned error: 404:

Image16

Если же попробовать установить пакет Packer, то при попытке подключения к официальному репозиторию Hashicorp будет отображаться ошибка 404 Not Found:

Image15

Также при попытке перехода в некоторые разделы сайта HashiCorp, например, app.terraform.io и registry.terraform.io, пользователи с российскими IP-адресами будут видеть следующее предупреждение:

Image4

Зеркальные сайты для скачивания Terraform и Packer

В качестве альтернативы для российских пользователей были созданы зеркальные сайты, на которых располагаются дистрибутивы Terraform и Packer. В частности, такие сайты предоставляют Яндекс и КРОК.

Адреса зеркал от Яндекс:

Адреса зеркал от КРОК:

Разница между ними заключается в том, что в зеркале от Яндекса доступны различные версии Terraform и Packer, в то время как в зеркале от КРОК доступна только одна версия Terraform и три версии Packer.

Вы можете использовать любое из данных зеркал.

cloud

Установка Terraform при помощи зеркального сайта на Ubuntu 22.04

Для того чтобы установить Terraform с зеркального сайта на дистрибутив операционной системы Ubuntu версии 22.04, необходимо выполнить следующее:

  1. Скачиваем дистрибутив Terraform необходимой версии, используя зеркало Яндекс или КРОК при помощи утилиты wget.

Если используем зеркало от Яндекс и версию Terraform 1.8.2:

wget https://hashicorp-releases.yandexcloud.net/terraform/1.8.2/terraform_1.8.2_linux_amd64.zip

Если используем зеркало от КРОК и версию Terraform 1.1.7:

wget https://hc-releases.website.cloud.croc.ru/terraform/1.1.7/terraform_1.1.7_linux_amd64.zip
  1. Убедитесь, что у вас присутствует пакет unzip , а при его отсутствии установите его:
apt -y install unzip

Разархивируем скачанный архив в зависимости от имени файла:

unzip terraform_1.8.2_linux_amd64.zip

Или:

unzip terraform_1.1.7_linux_amd64.zip

На выходе будет два файла: исполняемый файл terraform и текстовый файл с лицензией: 

Image7

  1. После того как архив был разархивирован, необходимо добавить путь к директории, в которой находится исполняемый файл terraform, используя переменную PATH и команду:
export PATH=$PATH:/home/alex

Где /home/alex — полный путь до исполняемого файла terraform.

  1. Проверяем, что Terraform был успешно установлен, путем вывода его версии:
terraform --version

Image13

Если в ответ команда вернула версию, то Terraform был успешно установлен.

Установка Terraform при помощи зеркального сайта на Windows Server 2022

Для того чтобы установить Terraform с зеркального сайта на операционную систему Windows Server 2022, необходимо выполнить следующее:

  1. Скачиваем дистрибутив Terraform для Windows необходимой версии используя зеркало Яндекс или КРОК. В качестве примера воспользуемся версией 1.8.2 которую можно скачать по ссылке из зеркала Яндекс.
  2. Разархивируем скачанный архив. На выходе будет два файла: исполняемый файл terraform и текстовый файл с лицензией:

Image1

Исполняемый файл terraform можно перенести в любую удобную директорию, предварительно убедившись, что ваша учетная запись обладает необходимыми правами на выбранную директорию.

  1. Далее необходимо добавить полный путь где находится исполняемый файл terraform в переменную окружению (PATH) для того, чтобы запускать Terraform из командной строки (cmd). Для этого в строке поиска введите «Изменение системных переменных среды» и запустите:

Image3

  1. В открывшемся окне переходим в раздел «Переменные среды»:

Image8

  1. В разделе «Переменные среды пользователя» выбираем переменную Path и нажимаем на кнопку «Изменить»:

Image17

  1. Для того чтобы добавить путь до исполняемого файла terraform, необходимо нажать на кнопку «Создать» и прописать полный путь до директории с terraform. Например, в данном примере полный путь до файла с terraformC:\Users\user1\Downloads:

Image10

Нажимаем на кнопку ОК для сохранения и выхода из меню переменных среды.

  1. Запускаем командную строку (cmd) и вводим команду:
terraform

Image18

Если в ответ команда вернула список доступных команд, то Terraform был успешно добавлен в переменную окружения.

Установка Packer при помощи зеркального сайта на Ubuntu 22.04

Для того чтобы установить Packer из зеркального сайта на дистрибутив операционной системы Ubuntu версии 22.04, необходимо выполнить следующее:

  1. Скачиваем дистрибутив Packer необходимой версии, используя зеркало Яндекс или КРОК при помощи утилиты wget.

Если используем зеркало от Яндекс и версию Packer 1.10.3:

wget https://hashicorp-releases.yandexcloud.net/packer/1.10.3/packer_1.10.3_linux_amd64.zip

Если используем зеркало от КРОК и версию Packer 1.8.0:

wget https://hc-releases.website.cloud.croc.ru/packer/1.8.0/packer_1.8.0_linux_amd64.zip
  1. Убедитесь, что у вас присутствует пакет unzip или при необходимости установите его:
apt -y install unzip

Разархивируем скачанный архив в зависимости от имени файла:

unzip packer_1.10.3_linux_amd64.zip

Или:

unzip packer_1.8.0_linux_amd64.zip

На выходе будет два файла — исполняемый файл packer и текстовый файл с лицензией:

Image14

  1. После того как архив был разархивирован, необходимо добавить путь к директории, в которой находится исполняемый файл packer, используя переменную PATH и команду:
export PATH=$PATH:/home/alex

Где /home/alex — полный путь до исполняемого файла packer.

  1. Проверяем, что Packer был успешно установлен, путем вывода его версии:
packer --version

Image9

Установка Packer при помощи зеркального сайта на Windows Server 2022

Для того чтобы установить Packer из зеркального сайта на операционную систему Windows Server 2022, необходимо выполнить следующее:

  1. Скачиваем дистрибутив Packer для Windows необходимой версии, используя зеркало Яндекс или КРОК. В качестве примера воспользуемся версией 1.9.5, которую можно скачать по ссылке из зеркала Яндекс.
  2. Разархивируем скачанный архив. На выходе будет один исполняемый файл packer:

Image5

Исполняемый файл packer можно перенести в любую удобную директорию, предварительно убедившись, что ваша учетная запись обладает необходимыми правами на выбранную директорию.

  1. Далее необходимо добавить полный путь, где находится исполняемый файл packer, в переменную окружению (PATH) для того, чтобы запускать Packer из командной строки (cmd). Для этого в строке поиска введите «Изменение системных переменных среды» и запустите:

Image3

  1. В открывшемся окне переходим в раздел «Переменные среды»:

Image8

  1. В разделе «Переменные среды пользователя» выбираем переменную Path и нажимаем на кнопку «Изменить»:

Image17

  1. Для того чтобы добавить путь до исполняемого файла packer, необходимо нажать на кнопку «Создать» и прописать полный путь до директории с packer. Например, в данном примере полный путь до файла с packer следующий — C:\Users\user1\Downloads:

Image10

Нажимаем на кнопку ОК для сохранения и выхода из меню переменных среды.

  1. Запускаем командную строку (cmd) и вводим команду packer:
packer

Image11

Если в ответ команда вернула список доступных команд, то Packer был успешно добавлен в переменную окружения.

Выгодные тарифы на облачные серверы Linux и Windows

Заключение

В данной статье мы подробно рассмотрели установку двух популярных open-source-утилит: Terraform и Packer, используя зеркальные сайты. Благодаря наличию зеркальных сайтов вы сможете продолжать работать со своей облачной инфраструктурой используя Terraform, а также создавать образы операционных систем с помощью Packer.

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону