При работе с облачными и хостинг-провайдерами часто используется подход под названием 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, необходимо пройти регистрацию.
Переходим по ссылке для регистрации нового пользователя. Мы выберем регистрацию на физическое лицо и заполним следующие данные:
ФИО,
адрес электронной почты,
После регистрации на указанный адрес почты придет сообщение с ссылкой для активации аккаунта и входа в панель — перейдите по ней.
После того, как учетная запись была создана и активирована, можно арендовать облачный сервер.
1) Переходим на страницу авторизации и входим в аккаунт при помощи логина или адреса электронной почты и пароля или при помощи ВКонтакте, GitHub, Google.
2) После успешной авторизации отобразится панель управления текущего проекта. Переходим в раздел «Облачные серверы» и нажимаем «Создать» или «Добавить».
3) Выбираем операционную систему, которая будет установлена на сервер. В нашем случае нам необходима Ubuntu версии 22.04 и Windows Server 2022.
4) Выбираем регион, в котором будет находиться наш сервер. Выбирать рекомендуется тот регион, который ближе всего находится к вам физически. У каждого доступного региона справа вверху отображается ping, т.е. время, необходимое для передачи данных с вашего компьютера на сервер. Чем меньше указанное время, тем быстрее будет осуществляться передача данных.
5) Далее выбираем необходимую конфигурацию для серверов. Так как в данной статье упор делается только на установке Terraform и Packer, то для конфигурации сервера с Ubuntu выберем двухъядерный процессор и 40 ГБ жесткого диска. Для сервера с Windows выберем двухъядерный процессор и 50 ГБ жесткого диска. В реальности вам необходимо выбирать именно ту конфигурацию, которая будет удовлетворять вашим потребностям при работе с Terraform и Packer. Выбираем соответствующий тариф.
6) Далее необходимо решить, будет ли сервер доступен из внешний сети или же только из приватной (частной) сети.
7) По желанию можно оформить дополнительные услуги, включая резервные копии и защиту от DDoS–атак (последняя доступна только в Санкт–Петербурге и Москве).
8) Также заранее можно загрузить SSH–ключ, чтобы не входить на север при помощи пароля.
9) Можно задать необходимое имя для сервера которое будет отображаться в панели управления, а также выбрать проект.
10) Для создания сервера необходимо нажать на кнопку «Заказать».
Если на вашем аккаунте недостаточно средств, то будет выведено предупреждение о необходимости пополнить баланс. После оплаты и создания сервера откроется Дашборд сервера, где можно будет найти IP–адрес, логин и пароль для подключения.
Если попробовать скачать Terraform или Packer с официального сайта HashiCorp, например, для дистрибутива Ubuntu, то пользователи с российскими IP-адресами будут получать ошибки.
При попытке скачать GPG ключ от официального репозитория Terraform появляется ошибка ERROR 404: Not Found
:
Если же попробовать установить пакет Terraform, то при попытке подключения к официальному репозиторию Hashicorp будет отображаться ошибка 404 Not Found
:
При попытке скачать GPG-ключ от официального репозитория Packer будет отображаться ошибка: curl: (22) The requested URL returned error: 404
:
Если же попробовать установить пакет Packer, то при попытке подключения к официальному репозиторию Hashicorp будет отображаться ошибка 404 Not Found
:
Также при попытке перехода в некоторые разделы сайта HashiCorp, например, app.terraform.io и registry.terraform.io, пользователи с российскими IP-адресами будут видеть следующее предупреждение:
В качестве альтернативы для российских пользователей были созданы зеркальные сайты, на которых располагаются дистрибутивы Terraform и Packer. В частности, такие сайты предоставляют Яндекс и КРОК.
Адреса зеркал от Яндекс:
Адреса зеркал от КРОК:
Разница между ними заключается в том, что в зеркале от Яндекса доступны различные версии Terraform и Packer, в то время как в зеркале от КРОК доступна только одна версия Terraform и три версии Packer.
Вы можете использовать любое из данных зеркал.
cloud
Для того чтобы установить Terraform с зеркального сайта на дистрибутив операционной системы Ubuntu версии 22.04, необходимо выполнить следующее:
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
unzip
, а при его отсутствии установите его:apt -y install unzip
Разархивируем скачанный архив в зависимости от имени файла:
unzip terraform_1.8.2_linux_amd64.zip
Или:
unzip terraform_1.1.7_linux_amd64.zip
На выходе будет два файла: исполняемый файл terraform
и текстовый файл с лицензией:
terraform
, используя переменную PATH
и команду:export PATH=$PATH:/home/alex
Где /home/alex
— полный путь до исполняемого файла terraform
.
terraform --version
Если в ответ команда вернула версию, то Terraform был успешно установлен.
Для того чтобы установить Terraform с зеркального сайта на операционную систему Windows Server 2022, необходимо выполнить следующее:
terraform
и текстовый файл с лицензией:Исполняемый файл terraform
можно перенести в любую удобную директорию, предварительно убедившись, что ваша учетная запись обладает необходимыми правами на выбранную директорию.
terraform
в переменную окружению (PATH
) для того, чтобы запускать Terraform из командной строки (cmd
). Для этого в строке поиска введите «Изменение системных переменных среды» и запустите:Path
и нажимаем на кнопку «Изменить»:terraform
, необходимо нажать на кнопку «Создать» и прописать полный путь до директории с terraform
. Например, в данном примере полный путь до файла с terraform
— C:\Users\user1\Downloads
:Нажимаем на кнопку ОК для сохранения и выхода из меню переменных среды.
cmd
) и вводим команду:terraform
Если в ответ команда вернула список доступных команд, то Terraform был успешно добавлен в переменную окружения.
Для того чтобы установить Packer из зеркального сайта на дистрибутив операционной системы Ubuntu версии 22.04, необходимо выполнить следующее:
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
unzip
или при необходимости установите его:apt -y install unzip
Разархивируем скачанный архив в зависимости от имени файла:
unzip packer_1.10.3_linux_amd64.zip
Или:
unzip packer_1.8.0_linux_amd64.zip
На выходе будет два файла — исполняемый файл packer
и текстовый файл с лицензией:
packer
, используя переменную PATH
и команду:export PATH=$PATH:/home/alex
Где /home/alex
— полный путь до исполняемого файла packer
.
packer --version
Для того чтобы установить Packer из зеркального сайта на операционную систему Windows Server 2022, необходимо выполнить следующее:
packer
:Исполняемый файл packer
можно перенести в любую удобную директорию, предварительно убедившись, что ваша учетная запись обладает необходимыми правами на выбранную директорию.
packer
, в переменную окружению (PATH
) для того, чтобы запускать Packer из командной строки (cmd
). Для этого в строке поиска введите «Изменение системных переменных среды» и запустите:Path
и нажимаем на кнопку «Изменить»:packer
, необходимо нажать на кнопку «Создать» и прописать полный путь до директории с packer
. Например, в данном примере полный путь до файла с packer
следующий — C:\Users\user1\Downloads:Нажимаем на кнопку ОК для сохранения и выхода из меню переменных среды.
packer
:packer
Если в ответ команда вернула список доступных команд, то Packer был успешно добавлен в переменную окружения.
Выгодные тарифы на облачные серверы Linux и Windows
В данной статье мы подробно рассмотрели установку двух популярных open-source-утилит: Terraform и Packer, используя зеркальные сайты. Благодаря наличию зеркальных сайтов вы сможете продолжать работать со своей облачной инфраструктурой используя Terraform, а также создавать образы операционных систем с помощью Packer.