如何使用服务主体详细信息连接到 Azure VM [Linux 类型] 以执行脚本 (sh) 文件
How to connect to Azure VM [Linux Type] using service principal details to execute a script(sh) file
PowerShell 新手,
上下文:尝试从 Azure 执行位于 AzureVM
(OS 类型 Linux)中的 ShellScript
文件使用 PowerShell 的管道。
脚本示例:
function getConnectionToRemoteMachine ($AzuresecretValue,$AzureApplicationID,$AzureObjectID,$AzureDirectoryID,$AzureUserName,$AzureSubscriptionID) {
$password = ConvertTo-SecureString $AzuresecretValue -AsPlainText -Force;
$VMResourceGroup = "npd-test-rg01";
#Connecting to the Azure VM using the Service Principle
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential($AzureApplicationID, $password);
Connect-AzAccount -ServicePrincipal -Tenant $AzureDirectoryID -Credential $pscredential | Out-null;
$VMList = Get-AzVm -ResourceGroupName $VMResourceGroup -Status;
ForEach($VM in $VMList) {
if ($VM.Name -eq "npd-test-app01"){
Write-Host "Test Machine traced!!!"
}
else {
continue;
}
}
}
function triggerShellScript () {
$AzuresecretValue = "<AzureSecret>";
$AzureApplicationID = "<AzureApplicationID>";
$AzureObjectID = "<AzureObjectID>";
$AzureDirectoryID = "<AzureDirectoryID>";
$AzureUserName = "SVCUSER";
$AzureSubscriptionID = "<AzureSubscriptionID>";
getConnectionToRemoteMachine $AzuresecretValue $AzureApplicationID $AzureObjectID $AzureDirectoryID $AzureUserName $AzureSubscriptionID
}
triggerShellScript
能够跟踪虚拟机,但不知道如何连接到机器并触发/home/TestRun/TriggerTest.sh
下的shell脚本
您可以使用 Azure Cloud Shell.Shell Shell OS Linux 中的 Shell 脚本
步骤 1:使用命令 code script.sh
创建了一个文件 script.sh
并粘贴了命令并保存并关闭编辑器。
第 2 步:使用下面的命令在您的 VM 中 运行 上面的脚本。
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>'
参考:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/run-command
PowerShell 新手,
上下文:尝试从 Azure 执行位于 AzureVM
(OS 类型 Linux)中的 ShellScript
文件使用 PowerShell 的管道。
脚本示例:
function getConnectionToRemoteMachine ($AzuresecretValue,$AzureApplicationID,$AzureObjectID,$AzureDirectoryID,$AzureUserName,$AzureSubscriptionID) {
$password = ConvertTo-SecureString $AzuresecretValue -AsPlainText -Force;
$VMResourceGroup = "npd-test-rg01";
#Connecting to the Azure VM using the Service Principle
$pscredential = New-Object -TypeName System.Management.Automation.PSCredential($AzureApplicationID, $password);
Connect-AzAccount -ServicePrincipal -Tenant $AzureDirectoryID -Credential $pscredential | Out-null;
$VMList = Get-AzVm -ResourceGroupName $VMResourceGroup -Status;
ForEach($VM in $VMList) {
if ($VM.Name -eq "npd-test-app01"){
Write-Host "Test Machine traced!!!"
}
else {
continue;
}
}
}
function triggerShellScript () {
$AzuresecretValue = "<AzureSecret>";
$AzureApplicationID = "<AzureApplicationID>";
$AzureObjectID = "<AzureObjectID>";
$AzureDirectoryID = "<AzureDirectoryID>";
$AzureUserName = "SVCUSER";
$AzureSubscriptionID = "<AzureSubscriptionID>";
getConnectionToRemoteMachine $AzuresecretValue $AzureApplicationID $AzureObjectID $AzureDirectoryID $AzureUserName $AzureSubscriptionID
}
triggerShellScript
能够跟踪虚拟机,但不知道如何连接到机器并触发/home/TestRun/TriggerTest.sh
您可以使用 Azure Cloud Shell.Shell Shell OS Linux 中的 Shell 脚本
步骤 1:使用命令 code script.sh
创建了一个文件 script.sh
并粘贴了命令并保存并关闭编辑器。
第 2 步:使用下面的命令在您的 VM 中 运行 上面的脚本。
Invoke-AzVMRunCommand -ResourceGroupName '<myResourceGroup>' -Name '<myVMName>' -CommandId 'RunShellScript' -ScriptPath '<pathToScript>'
参考:https://docs.microsoft.com/en-us/azure/virtual-machines/linux/run-command