Использование средств автоматизации инфраструктуры на виртуальных машинах в Azure

Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Гибкие масштабируемые наборы ✔️ Однородные масштабируемые наборы

Средства автоматизации, как правило, позволяют быстро и согласованно создавать виртуальные машины Azure в нужном масштабе, а также управлять ими. Существует множество средств и решений, которые помогают полностью автоматизировать жизненный цикл развертывания и администрирования инфраструктуры Azure. В этой статье приведены сведения о некоторых средствах автоматизации инфраструктуры Azure. Обычно их используют с такими целями:

Терраформирование

Terraform — это инструмент автоматизации, который позволяет определить и создать целую инфраструктуру Azure с использованием единого языкового шаблона — HashiCorp Configuration Language (HCL). С помощью Terraform вы задаёте шаблоны, которые автоматизируют процесс создания ресурсов сети, хранилища и виртуальных машин для заданного приложения. Имеющиеся шаблоны Terraform можно использовать на других платформах с Azure. Это позволяет обеспечить согласованность и упростить развертывание инфраструктуры, не переходя на шаблон Azure Resource Manager.

Вы узнаете, как выполнять следующие задачи:

Служба автоматизации Azure

Служба автоматизации Azure использует ранбуки для обработки набора задач на целевых виртуальных машинах. В Cлужба автоматизации Azure используется для управления существующими виртуальными машинами, а не для создания инфраструктуры. Служба Cлужба автоматизации Azure может выполняться как на виртуальных машинах Linux, так и на виртуальных машинах Windows, а также на локальных виртуальных или физических машинах с гибридной рабочей ролью Runbook. Модули runbook можно хранить в репозитории системы управления версиями, например GitHub. Эти инструкции можно выполнять вручную или по заданному расписанию.

Служба автоматизации Azure также предоставляет службу DSC, которая позволяет создавать определения настройки заданного набора виртуальных машин. DSC гарантирует применение необходимой конфигурации и обеспечивает согласованность виртуальной машины. Cлужба автоматизации Azure DSC можно запустить на виртуальных машинах Windows и Linux.

Вы узнаете, как выполнять следующие задачи:

Azure DevOps Services

Azure DevOps Services — это набор средств, позволяющих отслеживать код и предоставлять к нему общий доступ, использовать автоматизированные сборки и создавать конвейеры непрерывной интеграции и разработки (CI/CD). Azure DevOps Services интегрируется с Visual Studio и другими редакторами, что упрощает его использование. Кроме того, этот набор средств позволяет создавать и настраивать виртуальные машины Azure, а затем развертывать код на них.

Дополнительные сведения:

Шаблон Azure Resource Manager

Azure Resource Manager — это служба развертывания и управления для Azure. Она обеспечивает уровень управления, позволяющий создавать, обновлять и удалять ресурсы в подписке Azure. Вы можете использовать ее функции управления, такие как управление доступом, блокировка и добавление тегов, чтобы защитить и упорядочить ресурсы после развертывания.

Вы узнаете, как выполнять следующие задачи:

Бицепс

Bicep — это предметно-ориентированный язык (DSL), который использует декларативный синтаксис для развертывания ресурсов Azure. В файле Bicep вы определяете инфраструктуру, которую требуется развернуть в Azure, а затем используете этот файл на протяжении всего жизненного цикла разработки для многократного развертывания инфраструктуры. Ваши ресурсы развертываются согласованно.

Приступите к изучению Quickstart.

Cloud-init

Пакет cloud-init — широко используемое средство, используемое для настройки виртуальной машины Linux при ее первой загрузке. Вы можете использовать cloud-init для установки пакетов, записи файлов или настройки пользователей и параметров безопасности. Так как cloud-init вызывается во время начального процесса загрузки, для применения конфигурации нет дополнительных шагов или необходимых агентов. Дополнительные сведения о том, как правильно отформатировать файлы #cloud-config, см. на сайте документации по cloud-init. Файлы #cloud-config — это текстовые файлы, закодированные в формате base64.

Кроме того, cloud-init работает с разными дистрибутивами. Например, для установки пакета не используется apt-get install или yum install. Вместо этого можно определить список пакетов для установки. Cloud-init автоматически использует собственный инструмент управления пакетами из выбранного дистрибутива.

Мы активно работаем с нашими утвержденными партнерами дистрибутива Linux, чтобы иметь доступные в Azure Marketplace образы с поддержкой cloud-init. Эти образы обеспечивают бесперебойную работу развертываний и конфигураций cloud-init с виртуальными машинами и масштабируемыми наборами виртуальных машин. Дополнительные сведения о cloud-init в Azure:

PowerShell DSC

PowerShell Desired State Configuration — это платформа управления, которая позволяет определить конфигурацию целевых виртуальных машин. DSC также можно использовать в Linux через сервер Open Management Infrastructure.

Конфигурации DSC определяют компоненты, которые следует установить на виртуальной машине, а также параметры настройки узла. На каждом целевом узле, который обрабатывает запрашиваемые действия на основе отправленных конфигураций, выполняется модуль локального диспетчера конфигураций (LCM). Pull-сервер — это веб-служба, запущенная на центральном узле для хранения конфигураций DSC и связанных с ними ресурсов. Этот сервер взаимодействует с модулем LCM на каждом целевом узле и тем самым предоставляет требуемую конфигурацию и отчеты о соответствии.

Вы узнаете, как выполнять следующие задачи:

Расширение пользовательских скриптов Azure

Расширение пользовательских скриптов Azure для Linux или Windows скачивает и выполняет скрипты на виртуальных машинах Azure. Расширение можно использовать при создании виртуальной машины или в любое время после использования виртуальной машины.

Скрипты можно скачать из хранилища Azure или любого общедоступного расположения, например репозитория GitHub. Расширение пользовательских скриптов позволяет создавать скрипты на любом языке, выполняющемся на исходной виртуальной машине. С помощью этих скриптов вы можете устанавливать приложения или нужным образом настраивать виртуальную машину. Чтобы защитить учетные данные, конфиденциальные сведения, например пароли, можно хранить в защищенной конфигурации. Эти учетные данные расшифровываются только на виртуальной машине.

Вы узнаете, как выполнять следующие задачи:

Ansible

Ansible — это модуль автоматизации управления конфигурацией, создания виртуальных машин и развертывания приложений. Ansible использует модель без агента, обычно с ключами SSH, для аутентификации и управления целевыми машинами. Задачи конфигурации определены в сборниках схем с несколькими модулями Ansible, доступными для выполнения конкретных задач. Дополнительные сведения см. в статье How Ansible works (Принципы работы Ansible).

Вы узнаете, как выполнять следующие задачи:

Шеф-повар

Chef — это платформа автоматизации, которая помогает определить параметры настройки и развертывания инфраструктуры, а также управления ею. Некоторые компоненты включают Chef Habitat для автоматизации жизненного цикла приложений, а не инфраструктуры и Chef InSpec, которые помогают автоматизировать соответствие требованиям к безопасности и политике. Клиенты Chef установлены на целевых виртуальных машинах, а на одном или нескольких центральных серверах Chef хранится конфигурация и осуществляется управление ею. Дополнительные сведения см. в статье An Overview of Chef (Общие сведения о Chef).

Вы узнаете, как выполнять следующие задачи:

марионетка

Puppet — это платформа автоматизации корпоративного уровня, обрабатывающая доставку и развертывание приложений. На целевых виртуальных машинах установлены агенты, которые позволяют главному серверу Puppet выполнять манифесты, определяющие требуемую конфигурацию инфраструктуры и виртуальных машин Azure. Puppet можно интегрировать с другими решениями, такими как Jenkins и GitHub, что позволяет улучшить рабочие процессы DevOps. Дополнительные сведения см. в статье How Puppet works (Принципы работы Puppet).

Вы узнаете, как выполнять следующие задачи:

Упаковщик

Packer автоматизирует процесс сборки при создании настраиваемого образа виртуальной машины Azure. Вы используете Packer для определения операционной системы и запуска скриптов постконфигурации, которые настраивают виртуальную машину под ваши конкретные потребности. После настройки виртуальная машина записывается как образ управляемого диска. Packer автоматизирует создание ресурсов исходной виртуальной машины, сети и хранилища, выполнение скриптов конфигурации и создание образа виртуальной машины.

Вы узнаете, как выполнять следующие задачи:

Дженкинс

Jenkins — это сервер непрерывной интеграции, который помогает развертывать и тестировать приложения, а также создать автоматизированные конвейеры доставки кода. Базовую платформу Jenkins можно расширить с помощью сотен подключаемых модулей, а вебхуки позволяют интегрировать ее со многими другими продуктами и решениями. Вы можете вручную установить Jenkins на виртуальной машине Azure, запустить Jenkins в контейнере Docker или использовать готовый образ Azure Marketplace.

Вы узнаете, как выполнять следующие задачи:

Следующие шаги

Средства автоматизации инфраструктуры в Azure позволяют выполнять разные задачи. Вы можете использовать решения, которые максимально отвечают вашим потребностям и требованиям среды. Чтобы приступить к работе и оценить несколько стандартных средств Azure, ознакомьтесь с руководством по автоматизации настройки виртуальной машины Linux или Windows.