Использование средств автоматизации инфраструктуры на виртуальных машинах в Azure
Применимо к: ✔️ Виртуальные машины Linux ✔️ Виртуальные машины Windows ✔️ Универсальные масштабируемые наборы
Средства автоматизации, как правило, позволяют быстро и согласованно создавать виртуальные машины Azure в нужном масштабе, а также управлять ими. Существует множество средств и решений, которые помогают полностью автоматизировать жизненный цикл развертывания и администрирования инфраструктуры Azure. В этой статье приведены сведения о некоторых средствах автоматизации инфраструктуры Azure. Обычно их используют с такими целями:
Автоматизация настройки виртуальных машин:
- Средства включают Ansible, Chef, Puppet, Bicep и шаблон Azure Resource Manager.
- средства для настройки определенных виртуальных машин, например cloud-init для виртуальных машин Linux, PowerShell Desired State Configuration (DSC) и расширение пользовательских скриптов Azure для всех виртуальных машин Azure.
Автоматизация управления инфраструктурой:
- средства автоматизации сборки настраиваемых образов виртуальных машин, например Packer, и инфраструктуры, например Terraform;
- служба автоматизации Azure, которая может выполнять действия в инфраструктуре Azure и локальной среде.
Автоматизация развертывания и доставки приложений:
Terraform
Terraform — это средство автоматизации, которое позволяет определить и создать целую инфраструктуру Azure на языке HashiCorp Configuration Language (HCL). Это средство помогает определить шаблоны автоматизации создания ресурсов виртуальной машины, хранилища и сети определенного приложения. Имеющиеся шаблоны Terraform можно использовать на других платформах с Azure. Это позволяет обеспечить согласованность и упростить развертывание инфраструктуры, не переходя на шаблон Azure Resource Manager.
Вы узнаете, как выполнять следующие задачи:
- Установка и настройка Terraform для подготовки виртуальных машин и другой инфраструктуры в Azure
- Создание базовой инфраструктуры в Azure с помощью Terraform
Azure Automation
Служба автоматизации Azure обрабатывает набор задач, выполняемых на целевых виртуальны машинах, с помощью модулей runbook. Эта служба позволяет управлять имеющимися виртуальными машинами. С ее помощью вы не сможете создать инфраструктуру. служба автоматизации Azure могут выполняться как на виртуальных машинах Linux, так и на виртуальных машинах Windows, а также на локальных или физических машинах с гибридной рабочей ролью Runbook. Модули runbook можно хранить в репозитории системы управления версиями, например GitHub. Эти модули можно выполнять вручную или по заданному расписанию.
Служба автоматизации Azure также предоставляет службу DSC, которая позволяет создавать определения настройки заданного набора виртуальных машин. DSC гарантирует применение необходимой конфигурации и обеспечивает согласованность виртуальной машины. Azure Automation DSC можно запустить на виртуальных машинах Windows и Linux.
Вы узнаете, как выполнять следующие задачи:
- Мой первый модуль Runbook PowerShell
- Использование гибридной рабочей роли Runbook для управления локальными ресурсами.
- Приступая к работе с DSC службы автоматизации Azure
Azure DevOps Services
Azure DevOps Services — это набор средств, позволяющих отслеживать код и предоставлять к нему общий доступ, использовать автоматизированные сборки и создавать конвейеры непрерывной интеграции и разработки (CI/CD). Azure DevOps Services интегрируется с Visual Studio и другими редакторами, что упрощает его использование. Кроме того, этот набор средств позволяет создавать и настраивать виртуальные машины Azure, а затем развертывать код на них.
Дополнительные сведения:
Шаблон Azure Resource Manager
Azure Resource Manager — это служба развертывания и управления для Azure. Она обеспечивает уровень управления, позволяющий создавать, обновлять и удалять ресурсы в подписке Azure. Вы можете использовать ее функции управления, такие как управление доступом, блокировка и добавление тегов, чтобы защитить и упорядочить ресурсы после развертывания.
Вы узнаете, как выполнять следующие задачи:
- Развертывание точечных виртуальных машин с помощью шаблона ARM.
- Создание виртуальной машины Windows с помощью шаблона ARM.
- Скачивание шаблона для виртуальной машины.
- Создание шаблона Конструктора образов виртуальных машин 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:
- Поддержка cloud-init для виртуальных машин Linux в Azure
- Руководство по автоматизации настройки виртуальных машин при помощи cloud-init
PowerShell DSC
PowerShell Desired State Configuration — это платформа управления, которая позволяет определить конфигурацию целевых виртуальных машин. DSC также можно использовать в Linux через сервер Open Management Infrastructure.
Конфигурации DSC определяют компоненты, которые следует установить на виртуальной машине, а также параметры настройки узла. На каждом целевом узле, который обрабатывает запрашиваемые действия на основе отправленных конфигураций, выполняется модуль локального диспетчера конфигураций (LCM). Опрашивающий сервер — это веб-служба, запущенная на центральном узле lkz хранения конфигурации DSC и связанных ресурсов. Этот сервер взаимодействует с модулем LCM на каждом целевом узле и тем самым предоставляет требуемую конфигурацию и отчеты о соответствии.
Вы узнаете, как выполнять следующие задачи:
- Краткое руководство по настройке требуемого состояния
- Настройка опрашивающего веб-сервера DSC
- Начало работы с настройкой требуемого состояния (DSC) для Linux
Расширение пользовательских скриптов Azure
Расширение пользовательских скриптов Azure для Linux или Windows скачивает и выполняет скрипты на виртуальных машинах Azure. Расширение можно использовать при создании виртуальной машины или в любое время после использования виртуальной машины.
Скрипты можно скачать из хранилища Azure или любого общедоступного расположения, например репозитория GitHub. Расширение пользовательских скриптов позволяет создавать скрипты на любом языке, выполняющемся на исходной виртуальной машине. С помощью этих скриптов вы можете устанавливать приложения или нужным образом настраивать виртуальную машину. Чтобы защитить учетные данные, конфиденциальные сведения, например пароли, можно хранить в защищенной конфигурации. Эти учетные данные расшифровываются только на виртуальной машине.
Вы узнаете, как выполнять следующие задачи:
Ansible
Ansible — это модуль автоматизации управления конфигурацией, создания виртуальных машин и развертывания приложений. Это средство выполняет проверку подлинности целевых машин и управление ими на основе модели без агентов (обычно с помощью ключей SSH). Задачи конфигурации определены в сборниках схем с несколькими модулями Ansible, доступными для выполнения конкретных задач. Дополнительные сведения см. в статье How Ansible works (Принципы работы Ansible).
Вы узнаете, как выполнять следующие задачи:
- Установка и настройка Ansible для управления виртуальными машинами в Azure
- Создание виртуальной машины Linux
- Управление виртуальной машиной Linux
Chef
Chef — это платформа автоматизации, которая помогает определить параметры настройки и развертывания инфраструктуры, а также управления ею. Некоторые компоненты включают Chef Habitat для автоматизации жизненного цикла приложений, а не инфраструктуры и Chef InSpec, которые помогают автоматизировать соответствие требованиям к безопасности и политике. Клиенты Chef установлены на целевых виртуальных машинах, а на одном или нескольких центральных серверах Chef хранится конфигурация и осуществляется управление ею. Дополнительные сведения см. в статье An Overview of Chef (Общие сведения о Chef).
Вы узнаете, как выполнять следующие задачи:
- Build, deploy, and manage with Chef Automate, the Continuous Automation Platform (Создание, развертывание и управление с помощью платформы непрерывной автоматизации Chef Automate)
- Автоматизация развертывания виртуальной машины Azure с помощью Chef
Puppet
Puppet — это платформа автоматизации корпоративного уровня, обрабатывающая доставку и развертывание приложений. На целевых виртуальных машинах установлены агенты, которые позволяют главному серверу Puppet выполнять манифесты, определяющие требуемую конфигурацию инфраструктуры и виртуальных машин Azure. Puppet можно интегрировать с другими решениями, такими как Jenkins и GitHub, что позволяет улучшить рабочие процессы DevOps. Дополнительные сведения см. в статье How Puppet works (Принципы работы Puppet).
Вы узнаете, как выполнять следующие задачи:
Packer
Packer автоматизирует процесс сборки при создании настраиваемого образа виртуальной машины Azure. Это средство позволяет определить операционную систему и выполнить скрипты настройки виртуальной машины, выполняемые после задания конфигурации. После настройки виртуальная машина записывается как образ управляемого диска. Packer автоматизирует создание ресурсов исходной виртуальной машины, сети и хранилища, выполнение скриптов конфигурации и создание образа виртуальной машины.
Вы узнаете, как выполнять следующие задачи:
- Создание образов виртуальных машин Linux в Azure с помощью Packer
- Использование Packer для создания образов виртуальных машин Windows в Azure
Jenkins
Jenkins — это сервер непрерывной интеграции, который помогает развертывать и тестировать приложения, а также создать автоматизированные конвейеры доставки кода. Базовую платформу Jenkins можно расширить с помощью большого количества подключаемых модулей, а веб-перехватчики позволяют интегрировать ее с другими продуктами. Вы можете вручную установить Jenkins на виртуальной машине Azure, запустить Jenkins в контейнере Docker или использовать готовый образ Azure Marketplace.
Вы узнаете, как выполнять следующие задачи:
Следующие шаги
Средства автоматизации инфраструктуры в Azure позволяют выполнять разные задачи. Вы можете использовать решения, которые максимально отвечают вашим потребностям и требованиям среды. Чтобы приступить к работе и оценить несколько стандартных средств Azure, ознакомьтесь с руководством по автоматизации настройки виртуальной машины Linux или Windows.