Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: ✔️ Виртуальные машины Linux ✔️ Гибкие масштабируемые наборы
Функция команды запуска использует агент виртуальной машины для запуска скриптов оболочки в виртуальной машине Linux Azure. Эти сценарии можно использовать для общего управления компьютерами или приложениями. Они помогут вам быстро диагностировать и устранять проблемы с доступом к виртуальным машинам и сетевыми проблемами и вернуть виртуальную машину в хорошее состояние.
Преимущества
Вы можете получить доступ к виртуальным машинам несколькими способами. Команда run может выполнять скрипты на виртуальных машинах удаленно с помощью агента виртуальной машины. Вы используете команду Run с помощью портала Azure, REST API или Azure CLI для виртуальных машин Linux.
Эта возможность полезна во всех сценариях, в которых требуется запустить скрипт в виртуальной машине. Это один из единственных способов устранения неполадок и исправления виртуальной машины, которая не имеет порта RDP или SSH из-за конфигурации сети или администратора.
Предпосылки
Поддерживаемые дистрибутивы Linux
| Publisher | Распределение | х64 | ARM64 |
|---|---|---|---|
| Сообщество Alma Linux | AlmaLinux | 8.x+, 9.x+ | 8.x+, 9.x+ |
| Кредатив | Debian | 10+ | 11.x+ |
| Kinvolk | Flatcar Linux | 3374.2.x+ | 3374.2.x+ |
| Microsoft | Azure Linux | 2.x | 2.x |
| Проект openSUSE | openSUSE | 12.3+ | Не поддерживаются |
| Oracle; | Oracle Linux | 6.4+, 7.x+, 8.x+ | Не поддерживаются |
| Red Hat | Red Hat Enterprise Linux | 6.7+, 7.x+, 8.x+, 9.x+, 10.x+ | 8.6+, 9.0+, 10.x+ |
| CIQ | Рокки Linux | 9.x+ | 9.x+ |
| SUSE | SLES | 12.x+, 15.x+ | 15.x с пакетом обновления 4 (SP4) |
| Канонический | Ubuntu (выпуски LTS) | 18.04+, 20.04+, 22.04+, 24.04+ | 20.04+, 22.04+, 24.04+ |
Restrictions
Следующие ограничения применяются при использовании команды run:
- Выходные данные ограничены последними 4096 байтами.
- Минимальное время выполнения скрипта составляет около 20 секунд.
- Скрипты, выполняемые по умолчанию в качестве пользователя с повышенными привилегиями в Linux.
- Один скрипт можно запускать одновременно.
- Скрипты, запрашивающие сведения (интерактивный режим), не поддерживаются.
- Вы не можете отменить запущенный скрипт.
- Максимальное время выполнения скрипта составляет 90 минут. После этого скрипт будет истекает.
- Для возврата результатов скрипта требуется исходящее подключение с виртуальной машины.
Замечание
Для правильной работы команды запуска требуется подключение (порт 443) к общедоступным IP-адресам Azure. Если расширение не имеет доступа к этим конечным точкам, скрипты могут выполняться успешно, но не возвращают результаты. Если вы блокируете трафик на виртуальной машине, вы можете использовать теги службы , чтобы разрешить трафик на общедоступные IP-адреса Azure с помощью тега AzureCloud .
Доступные команды
В этой таблице показан список команд, доступных для виртуальных машин Linux. Вы можете использовать команду RunShellScript для выполнения любого пользовательского скрипта, который требуется. При использовании Azure CLI или PowerShell для выполнения команды значение, указанное для --command-id параметра, -CommandId должно быть одним из перечисленных ниже значений. При указании значения, которое не является доступной командой, вы получите следующую ошибку:
The entity was not found in this Azure location
| Имя | Описание | Дополнительные сведения |
|---|---|---|
| RunShellScript | Запускает скрипт оболочки Linux. | |
| ifconfig | Возвращает конфигурацию всех сетевых интерфейсов. | readme |
Azure CLI (Интерфейс командной строки для Azure)
В следующем примере используется команда az vm run-command для запуска скрипта оболочки на виртуальной машине Linux Azure.
az vm run-command invoke -g myResourceGroup -n myVm --command-id RunShellScript --scripts "apt-get update && apt-get install -y nginx"
Замечание
Чтобы выполнить команды в качестве другого пользователя, введите sudo -u , чтобы указать учетную запись пользователя.
Портал Azure
Перейдите на виртуальную машину на портале Azure и выберите команду "Выполнить " в меню слева в разделе "Операции". Вы увидите список доступных команд для выполнения на виртуальной машине.
Выберите команду для выполнения. Некоторые команды могут иметь необязательные или обязательные входные параметры. Для этих команд параметры представлены в виде текстовых полей для предоставления входных значений. Для каждой команды можно просмотреть скрипт, который выполняется, разверните скрипт View. RunShellScript отличается от других команд, так как он позволяет предоставлять собственный пользовательский скрипт.
Замечание
Встроенные команды не редактируются.
После выбора команды нажмите кнопку "Выполнить ", чтобы запустить скрипт. После завершения скрипта возвращает выходные данные и все ошибки в окне вывода. На следующем снимка экрана показан пример выходных данных при выполнении команды ifconfig .
PowerShell
В следующем примере командлет Invoke-AzVMRunCommand используется для запуска скрипта PowerShell на виртуальной машине Azure. Командлет ожидает, что скрипт, на который ссылается параметр -ScriptPath , будет локальным, где выполняется командлет.
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>' -Parameter @{"arg1" = "var1";"arg2" = "var2"}
Ограничение доступа к команде run
Перечисление команд выполнения или отображение сведений о команде требует Microsoft.Compute/locations/runCommands/read разрешения на уровне подписки. У встроенной роли читателя и более высоких уровней это разрешение.
Для выполнения команды требуется Microsoft.Compute/virtualMachines/runCommands/write разрешение. Роль участника виртуальной машины и более высокие уровни имеют это разрешение.
Можно использовать одну из встроенных ролей или создать пользовательскую роль для использования команды запуска.
Устранение неполадок с командой запуска действия в Linux
При устранении неполадок с командой выполнения действия для сред Linux обратитесь к файлу журнала обработчика , который обычно находится в следующем каталоге: /var/log/azure/run-command-handler/handler.log дополнительные сведения.
Известные проблемы
Журналы команд выполнения действий Linux имеют несколько заметных различий по сравнению с журналами команд выполнения действия Windows:
- Порядковый номер сообщается с каждой строкой журнала как seq=#.
- Не будет строки, содержащиеся
Awaiting completion..., так как это будет выполняться только в командной строке выполнения действия. - Эта строка
Command existed with code: #также присутствует только в ведении журнала команд выполнения команд Windows.
Удаление команды выполнения действия
Если требуется удалить расширение запуска действия для Linux, ознакомьтесь с приведенными ниже инструкциями по Azure PowerShell и CLI:
Замените имя rgname и имя виртуальной машины соответствующим именем группы ресурсов и именем виртуальной машины в следующих примерах удаления.
Invoke-AzVMRunCommand -ResourceGroupName 'rgname' -VMName 'vmname' -CommandId 'RemoveRunCommandLinuxExtension'
az vm run-command invoke --command-id RemoveRunCommandLinuxExtension --name vmname -g rgname
Замечание
При повторном применении команды запуска расширение будет установлено автоматически. Для устранения проблем, связанных с расширением, можно использовать команду удаления расширений.
Дальнейшие шаги
Дополнительные сведения о других способах удаленного выполнения скриптов и команд на виртуальной машине см. в статье "Запуск сценариев на виртуальной машине Linux".