Развертывание физических серверов с Terraform на Bare Metal Cloud — бесшовная интеграция IaC
Инфраструктура как код (IaC) упрощает процесс управления виртуализированными облачными ресурсами. С появлением выделенных серверов, готовых к работе в облачной среде, стало возможным развертывать физические машины с тем же уровнем гибкости.
Платформа phoenixNAP Bare Metal Cloud (BMC) была спроектирована с учетом совместимости с IaC. BMC полностью интегрирован с HashiCorp Terraform — одним из самых широко используемых инструментов IaC в DevOps. Эта интеграция позволяет пользователям использовать специально созданного провайдера Terraform для развертывания серверов BMC за считанные минуты с помощью всего пары строк кода.
Зачем нужна Infrastructure as Code?
Infrastructure as Code — это метод автоматизации процесса развертывания и управления облачными ресурсами через читаемые человеком конфигурационные файлы. Она играет ключевую роль в DevOps, где скорость и гибкость имеют решающее значение.
До появления IaC системные администраторы развертывали всё вручную. Каждый сервер, базу данных, балансировщик нагрузки или сеть нужно было настраивать вручную. Сейчас команды используют различные движки IaC для запуска или отключения сотен серверов у нескольких провайдеров за минуты.
Хотя на рынке существует много мощных инструментов IaC, Terraform выделяется как один из наиболее известных игроков в этой сфере.
Основы Terraform
Terraform от HashiCorp — это движок Infrastructure as Code, позволяющий DevOps-командам безопасно развертывать, изменять и версионировать облачные ресурсы. Его инструмент с открытым исходным кодом бесплатен, но большинство команд предпочитают использовать его с Terraform Cloud или Terraform Enterprise, которые обеспечивают совместную работу и управление.
Для развертывания с Terraform разработчики определяют желаемые ресурсы в конфигурационном файле, написанном на языке HashiCorp Configuration Language (HCL). Terraform анализирует этот файл для создания плана выполнения. После подтверждения пользователем он выполняет план для предоставления точно того, что было определено в конфигурации.
Terraform выявляет различия между желаемым состоянием и существующим состоянием инфраструктуры. Этот механизм играет важную роль в конвейере DevOps, где поддержание согласованности во многих средах критически важно.
Развертывание серверов Bare Metal Cloud с Terraform
Terraform поддерживает постоянно растущий список провайдеров. Провайдеры — это специальные плагины от различных поставщиков услуг, которые пользователи инициализируют в своих конфигурационных файлах.
У phoenixNAP есть свой провайдер Terraform — pnap. Любой пользователь Bare Metal Cloud может использовать его для развертывания и управления серверами BMC без использования веб-портала Bare Metal Cloud. Исходный код провайдера phoenixNAP и документация доступны на официальной странице провайдера Terraform.
Пример использования Terraform с Bare Metal Cloud
Для начала развертывания серверов BMC с Terraform создайте аккаунт BMC и установите Terraform на локальную систему или удаленный сервер. Перед запуском Terraform соберите необходимые данные аутентификации и сохраните их в файле config.yaml. Вам понадобятся clientId и clientSecret, которые можно найти в вашем аккаунте BMC.
После настройки начните определять желаемые ресурсы BMC. Создайте конфигурационный файл Terraform и объявите, что вы хотите использовать провайдер pnap:
terraform { required_providers { pnap = { source = "phoenixnap/pnap" version = "0.6.0" } } } provider "pnap" { # Configuration options }
Раздел, зарезервированный для configuration options, должен содержать описание желаемого состояния вашей инфраструктуры BMC.
Для развертывания самой базовой конфигурации сервера Bare Metal Cloud s1.c1.small с ОС Ubuntu в дата-центре Phoenix:
resource "pnap_server" "My-First-BMC-Server" { hostname = "your-hostname" os = "ubuntu/bionic" type = "s1.c1.small" location = "PHX" ssh_keys = [ "ssh-rsa..." ] #action = "powered-on" }
Аргумент action обозначает действия по управлению питанием сервера: reboot, reset, powered-on, powered-off, shutdown. Хотя все аргументы должны содержать соответствующие значения, аргумент action не обязателен.
Для развертывания этого экземпляра Bare Metal Cloud выполните CLI-команду terraform init, чтобы указать Terraform начать процесс инициализации.
Ваши конфигурации Terraform должны храниться в файле с расширением .tf. Хотя Terraform использует предметно-ориентированный язык для определения конфигураций, пользователи также могут писать конфигурационные файлы в JSON. В этом случае расширение файла должно быть .tf.json.
Все конфигурационные файлы Terraform многоразовы, масштабируемы и могут версионироваться для упрощения командной работы над схемами подготовки BMC.
Независимо от того, нужно ли развернуть один или сотни серверов, Terraform и BMC справятся с этой задачей. Нет ограничений на количество серверов, которые можно определить в конфигурационных файлах. Можно также использовать другие провайдеры вместе с phoenixNAP.
Для упрощения управления сложными настройками Terraform имеет функцию модули — контейнеры, позволяющие определять архитектуру среды абстрактным способом. Модули — это многоразовые фрагменты кода, которые могут вызывать другие модули, содержащие один или несколько объектов инфраструктуры.
Совместная работа над конфигурациями BMC с Terraform Cloud
После того как вы научились писать и предоставлять конфигурации Terraform, вы захотите настроить метод, позволяющий всей вашей DevOps-команде эффективнее работать над развертыванием новых и изменением существующих ресурсов BMC.
Вы можете хранить конфигурацию Terraform в системе контроля версий и запускать их удаленно из Terraform Cloud бесплатно. Это помогает снизить риск развертывания неправильно настроенных ресурсов, улучшает контроль и гарантирует, что каждое изменение выполняется надежно из облака.
Вы также можете использовать удаленное хранение состояния Terraform Cloud. Файлы состояния Terraform связывают конфигурации Terraform с ресурсами, развернутыми в реальном мире. Использование Terraform Cloud для хранения файлов состояния гарантирует, что ваша команда всегда на одной волне.
Еще одно преимущество Terraform — все конфигурационные файлы многоразовы. Это делает репликацию одной и той же среды несколько раз крайне простой. Поддерживая согласованность во многих средах, команды могут быстрее и безопаснее доставлять качественный код в продакшн.
Автоматизируйте свою инфраструктуру
Эта статья дала широкий обзор того, как использовать гибкость Terraform для программного взаимодействия с ресурсами Bare Metal Cloud. Используя провайдер Terraform от phoenixNAP и Terraform Cloud, вы можете быстро развертывать, настраивать и списывать множество экземпляров BMC всего за пару строк кода.
Этот автоматизированный подход к подготовке инфраструктуры повышает скорость и гибкость рабочих процессов DevOps. BMC в сочетании с Terraform Cloud позволяет командам сосредоточиться на создании программного обеспечения, а не тратить время на ожидание ручной подготовки выделенных серверов.
Облачные вычисления
- Оптимизация облачной инфраструктуры для пиковой производительности и эффективности
- Почему IT-профессионалам нужно мастерствовать в инфраструктурном маппинге
- Устарела ли On-Premises инфраструктура? 5 причин, почему она все еще важна
- Еженедельный бриф: внедрение облака взлетает, governance и инновации в центре внимания
- Infrastructure as Code: преимущества, вызовы и лучшие практики
- Как облако и DevOps ускоряют современную доставку ПО
- Code-Ready Containers: практическое руководство по облачно-ориентированной автоматизации процессов с Red Hat OpenShift
- Инфраструктура облачных вычислений: профессиональное руководство по фундаментам
- Шпаргалка по AWS и руководство по экзаменам: освоение облачных сервисов и подготовка к сертификации
- Мастерство гибки листового металла пресс-гибкой: Техники, CNC мощь и отраслевые инсайты