如何在 Azure runbook 中多次执行自定义脚本执行?
How to execute Custom Script Execution in Azure runbook multiple times?
实际上,我正在尝试创建一个带有自定义脚本执行的 Azure 运行book。 运行本书 运行 针对 Linux 虚拟机。
我构建了一个在 VM 上创建目录的简单脚本。如果我第一次执行 运行book,那么目录会立即创建。然后,我再次删除目录 运行 运行book 并且不再创建该目录。
在互联网上进行了一些研究后,我发现了一个提示,即您只能 运行 具有相同参数的脚本在虚拟机上一次。所以我在我的 SettingString 中添加了一个时间戳。
不幸的是,这要么不能解决问题,要么我的代码有错误。
希望你能帮我找出我的错误或给我提示,如何对同一个 VM 多次执行脚本。
非常感谢!
$timestamp = (Get-Date).Ticks
Write-Output $timestamp
$SettingsString = '{"timestamp": "$timestamp", "fileUris":["myURI"],"commandToExecute":"sh myscript.sh"}';
$ProtectedSettingsString = '{"storageAccountName": "xxx","storageAccountKey":"xxx"}'
Set-AzureRmVMExtension -ResourceGroupName "xxx" -Location "xxx" -VMName "xxx" -Name "xxx" -Publisher "Microsoft.OSTCExtensions" -ExtensionType "CustomScriptForLinux" -TypeHandlerVersion 1.5 -SettingString $SettingsString -ProtectedSettingString $ProtectedSettingsString
可以使用Set-AzVMExtension
和-ForceRerun
参数来实现,每次需要传入不同的字符串。
https://docs.microsoft.com/en-us/powershell/module/az.compute/set-azvmextension?view=azps-1.3.0
实际上,我正在尝试创建一个带有自定义脚本执行的 Azure 运行book。 运行本书 运行 针对 Linux 虚拟机。 我构建了一个在 VM 上创建目录的简单脚本。如果我第一次执行 运行book,那么目录会立即创建。然后,我再次删除目录 运行 运行book 并且不再创建该目录。 在互联网上进行了一些研究后,我发现了一个提示,即您只能 运行 具有相同参数的脚本在虚拟机上一次。所以我在我的 SettingString 中添加了一个时间戳。 不幸的是,这要么不能解决问题,要么我的代码有错误。
希望你能帮我找出我的错误或给我提示,如何对同一个 VM 多次执行脚本。
非常感谢!
$timestamp = (Get-Date).Ticks
Write-Output $timestamp
$SettingsString = '{"timestamp": "$timestamp", "fileUris":["myURI"],"commandToExecute":"sh myscript.sh"}';
$ProtectedSettingsString = '{"storageAccountName": "xxx","storageAccountKey":"xxx"}'
Set-AzureRmVMExtension -ResourceGroupName "xxx" -Location "xxx" -VMName "xxx" -Name "xxx" -Publisher "Microsoft.OSTCExtensions" -ExtensionType "CustomScriptForLinux" -TypeHandlerVersion 1.5 -SettingString $SettingsString -ProtectedSettingString $ProtectedSettingsString
可以使用Set-AzVMExtension
和-ForceRerun
参数来实现,每次需要传入不同的字符串。
https://docs.microsoft.com/en-us/powershell/module/az.compute/set-azvmextension?view=azps-1.3.0