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

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

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

Terraform

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

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

Azure Automation

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

Служба автоматизации Azure также предоставляет службу DSC, которая позволяет создавать определения настройки заданного набора виртуальных машин. DSC гарантирует применение необходимой конфигурации и обеспечивает согласованность виртуальной машины. Azure Automation 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

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

Приступите к изучению краткого руководства.

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). Опрашивающий сервер — это веб-служба, запущенная на центральном узле lkz хранения конфигурации DSC и связанных ресурсов. Этот сервер взаимодействует с модулем LCM на каждом целевом узле и тем самым предоставляет требуемую конфигурацию и отчеты о соответствии.

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

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

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

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

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

Ansible

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

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

Chef

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

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

Puppet

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

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

Packer

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

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

Jenkins

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

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

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

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