Описание доступных параметров для создания виртуальной машины Azure и управления ей

Завершено

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

Давайте рассмотрим другие способы создания и администрирования ресурсов в Azure:

  • Шаблоны диспетчера ресурсов Azure
  • Azure PowerShell
  • Azure CLI
  • REST API Azure
  • Пакет SDK для клиента Azure
  • Расширения виртуальной машины Azure
  • Службы автоматизации Azure

Шаблоны Resource Manager

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

Шаблоны Resource Manager — это JSON-файлы, которые определяют ресурсы, необходимые для развертывания решения.

Вы можете создать шаблон ресурса для виртуальной машины. В меню "Виртуальная машина" в разделе Автоматизация выберите Экспорт шаблона.

Screenshot showing Export template option for a VM.

Примечание.

Политики для ресурсов, включенных в песочницу для этого модуля обучения, не позволяют экспортировать только что созданную виртуальную машину. При этом экспортированный шаблон — это файл JSON, который легко можно отредактировать. Вы можете скачать или сохранить шаблон для последующего использования или сразу применить его для развертывания виртуальной машины. Например, возможна ситуация, когда вы создали виртуальную машину на основе шаблона в тестовой среде, но обнаружили, что виртуальная машина не совсем подходит для замены локального компьютера. Вы можете удалить группу ресурсов (при этом удаляются все входящие в нее ресурсы), изменить шаблон и повторить попытку. Если вам нужно внести изменения в уже развернутые ресурсы, вы можете изменить шаблон, который применялся для их создания, а затем развернуть его снова. Resource Manager изменит ресурсы в соответствии с новым шаблоном.

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

Дополнительные сведения об использовании шаблонов см. в разделе Краткое руководство по созданию виртуальной машины Ubuntu Linux с помощью шаблона ARM.

Azure CLI

Средством написания скриптов и взаимодействия с Azure с помощью командной строки является интерфейс командной строки Azure (Azure CLI).

Azure CLI — это кроссплатформенная программа командной строки Майкрософт для управления ресурсами Azure, такими как виртуальные машины и диски. Эта возможность доступна в Linux, macOS, Windows или в браузере через Cloud Shell.

Например, создать виртуальную машину Azure из командной строки можно с помощью команды az vm create.

az vm create \
    --resource-group TestResourceGroup \
    --name test-wp1-eus-vm \
    --image Ubuntu2204 \
    --admin-username azureuser \
    --generate-ssh-keys

Интерфейс командной строки Azure можно использовать с другими языками для создания скриптов, такими как Ruby и Python.

Дополнительные сведения о создании виртуальных машин и управлении ими см. в модуле Управление виртуальными машинами с помощью Azure CLI.

Дополнительные сведения об использовании Azure CLI для создания виртуальных машин см. в разделе Краткое руководство по созданию виртуальной машины Linux с помощью интерфейса командной строки.

Azure PowerShell

Azure PowerShell идеально подходит для выполнения разовых интерактивных задач и для автоматизации повторяющихся задач.

Примечание.

PowerShell — это кроссплатформенная оболочка со своим интерфейсом и возможностью синтаксического анализа команд. Azure PowerShell — это необязательный пакет дополнительного компонента с выполняемыми только в Azure командами (называемыми командлетами). Дополнительные сведения об установке и использовании Azure PowerShell можно получить в отдельном модуле обучения.

Например, для создания виртуальной машины Azure на основе Debian можно использовать командлет New-AzVM.

New-AzVm `
    -ResourceGroupName "TestResourceGroup" `
    -Name "test-wp1-eus-vm" `
    -Location "East US" `
    -Image Debian11 `
    -VirtualNetworkName "test-wp1-eus-network" `
    -SubnetName "default" `
    -SecurityGroupName "test-wp1-eus-nsg" `
    -PublicIpAddressName "test-wp1-eus-pubip" `
    -GenerateSshKey `
    -SshKeyName myPSKey
    -OpenPorts 22

Как показано здесь, у командлета есть различные параметры, позволяющие обрабатывать множество параметров конфигурации виртуальной машины. Большая часть параметров имеет разумные значения по умолчанию. Необходимо задавать только обязательные параметры. Дополнительные сведения о создании виртуальных машин и управлении ими с помощью Azure PowerShell см. в модуле Автоматизация задач Azure с помощью сценариев PowerShell.

Дополнительные сведения об использовании PowerShell для создания виртуальных машин см. в разделе Краткое руководство по созданию виртуальной машины Linux с помощью PowerShell.

Terraform

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

Дополнительные сведения см. в статьях Поставщик Azure Terraform и Краткое руководство по созданию виртуальной машины с помощью Terraform.

Программные средства (интерфейсы API)

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

С ресурсами любого типа в Azure можно взаимодействовать программными средствами.

Azure REST API

REST API Azure предоставляет разработчикам операции, классифицированные по ресурсам, и возможность создавать виртуальные машины и управлять ими. Операции предоставляются в виде универсальных кодов ресурсов (URI) с соответствующими методами HTTP (GET, PUT, POST, DELETE и PATCH) и ответами.

API-интерфейсы службы вычислений Azure обеспечивают программный доступ к виртуальным машинам и их вспомогательным ресурсам.

Дополнительные сведения см. в разделе Справочник по REST API виртуальных машин.

Пакет SDK для клиента Azure

Несмотря на то, что REST API является платформой и не зависят от языка, чаще всего разработчики смотрят на более высокий уровень абстракции. Пакет SDK для клиента Azure включает в себя Azure REST API, значительно упрощая разработчикам взаимодействие с Azure.

Пакеты SDK клиента Azure доступны для различных языков и платформ, включая. Языки на основе NET, такие как C#, Java, Node.js, PHP, Python, Ruby и Go.

Вот пример фрагмента кода на языке C# для создания виртуальной машины Azure с помощью пакета NuGet Microsoft.Azure.Management.Fluent:

var azure = Azure
    .Configure()
    .WithLogLevel(HttpLoggingDelegatingHandler.Level.Basic)
    .Authenticate(credentials)
    .WithDefaultSubscription();
// ...
var vmName = "test-wp1-eus-vm";

azure.VirtualMachines.Define(vmName)
    .WithRegion(Region.USEast)
    .WithExistingResourceGroup("TestResourceGroup")
    .WithExistingPrimaryNetworkInterface(networkInterface)
    .WithLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .WithAdminUsername("jonc")
    .WithAdminPassword("aReallyGoodPasswordHere")
    .WithComputerName(vmName)
    .WithSize(VirtualMachineSizeTypes.StandardDS1)
    .Create();

Вот тот же фрагмент кода на языке Java, в котором используется пакет SDK Azure для Java:

String vmName = "test-wp1-eus-vm";
// ...
VirtualMachine virtualMachine = azure.virtualMachines()
    .define(vmName)
    .withRegion(Region.US_EAST)
    .withExistingResourceGroup("TestResourceGroup")
    .withExistingPrimaryNetworkInterface(networkInterface)
    .withLatestWindowsImage("MicrosoftWindowsServer", "WindowsServer", "2012-R2-Datacenter")
    .withAdminUsername("jonc")
    .withAdminPassword("aReallyGoodPasswordHere")
    .withComputerName(vmName)
    .withSize("Standard_DS1")
    .create();

Расширения виртуальной машины Azure

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

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

Дополнительные сведения см. в статье Расширения и компоненты виртуальной машины Azure.

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

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

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

  • Автоматизация процессов. Предположим, имеется виртуальная машина, в которой нужно отслеживать определенную ошибку. Как только вы узнаете о ее возникновении, необходимо немедленно принимать меры по ее устранению. С помощью автоматизации процессов можно настроить задачи отслеживания, которые позволяют реагировать на события, происходящие в центре обработки данных.

  • Управление конфигурацией. Допустим, вам нужно отслеживать наличие обновлений для операционной системы, установленной в вашей виртуальной машине. Некоторые обновления следует устанавливать, а другие — исключать. С помощью управления конфигурацией можно отслеживать такие обновления и выполнять соответствующие действия. Для управления ПК, серверами и мобильными устройствами в организации используется Microsoft Endpoint Configuration Manager. Однако возможности Configuration Manager можно расширить, реализовав поддержку виртуальных машин Azure.

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

Автоматическое завершение работы

Автоматическое завершение работы — это функция в Azure, которая позволяет автоматически завершить работу виртуальных машин по расписанию. Используйте автоматическое завершение работы, чтобы сэкономить затраты, гарантируя, что виртуальные машины не работают, если они не нужны. Можно задать расписание автоматического завершения работы ежедневно или еженедельно, а также указать часовой пояс для расписания.

Чтобы перейти к функции автоматического завершения работы на виртуальной машине в портал Azure, перейдите в колонку виртуальной машины на портале, щелкните "Автоматическое завершение работы" в разделе "Операции" и настройте параметры автоматического завершения работы в соответствии с вашими предпочтениями.

Screenshot showing Auto-shutdown option for a VM.

Дополнительные сведения см. в разделе "Автоматическое завершение работы".

Как видно, Azure предоставляет различные средства для создания и администрирования ресурсов, чтобы можно было интегрировать операции управления в процесс , который работает для вас. Давайте рассмотрим другие службы Azure, обеспечивающие слаженную работу ресурсов инфраструктуры.