Это сценарий, я использую, чтобы создать классический (ASM) VM в лазуриКак указать DNS-имя (доменное имя) префикс в Azure ASM?
param(
[switch] $Help = $false,
$azurePassword,
$azureUsername ,
$azureSubscriptionName ,
$VMImageName,
$azureStorageAccountName,
$AzureResourceGroupName,
$VMSize,
$VMName,
$VMAdministratorUsername,
$VMAdministratorPassword,
$VNetName,
$VNetSubnetName
)
#Preparation steps
Clear-Host
$startTime = Get-Date
Write-Host -ForegroundColor Cyan "This script will create a classic VM '$VMName'"
Write-Host "Script started ($startTime)"
DetectPowershellVersion 4
$azurePassword = $azurePassword | ConvertTo-SecureString -asPlainText -Force
$azureCredentials = new-object -typename System.Management.Automation.PSCredential -argumentlist $azureUsername,$azurePassword
Disable-AzureDataCollection -WarningAction SilentlyContinue
#1
Write-Host -ForegroundColor Cyan "Step 1: Logging in to Azure..."
Add-AzureAccount -credential $azureCredentials | Out-Null
Write-Host "Logged in."
#2
Write-Host -ForegroundColor Cyan "Step 2: Selecting subscription..."
Select-AzureSubscription -SubscriptionName $azureSubscriptionName -Current
New-AzureStorageAccount -StorageAccountName $azureStorageAccountName -Label $azureStorageAccountName -Location "North Europe" -ErrorAction SilentlyContinue
Set-AzureSubscription -SubscriptionName $azureSubscriptionName -CurrentStorageAccountName $azureStorageAccountName
Write-Host "Selected Subscription = $((Get-AzureSubscription -Current).SubscriptionName)"
Write-Host "Selected Storage Account Name = $azureStorageAccountName "
#3
Write-Host -ForegroundColor Cyan "Step 3: Locating VMImage subscription..."
$VMImage = (Get-AzureVMImage | Where { $_.Label -like "$($VMImageName)*" } | Sort-Object PublishedDate -Descending)[0]
write-host "Selected image = $($VMImage.Label)"
write-host "Selected image OS = $($VMImage.OS)"
#4
Write-Host -ForegroundColor Cyan "Step 4: Locating requested size..."
write-host "Requested size = $VMSize"
$VMConfig = New-AzureVMConfig -Name $VMName -InstanceSize $VMSize -ImageName $VMImage.ImageName
#5
Write-Host -ForegroundColor Cyan "Step 5: Creating credentials for VM..."
if ($VMImage.OS -eq "Windows")
{
$VMProvision = Add-AzureProvisioningConfig -Windows -AdminUsername $VMAdministratorUsername -Password $VMAdministratorPassword -VM $VMConfig
}
else #Linux
{
$VMProvision = Add-AzureProvisioningConfig -Linux -LinuxUser $VMAdministratorUsername -Password $VMAdministratorPassword -VM $VMConfig
}
Write-Host "Credentials created. Username = $VMAdministratorUsername Password = *******"
#6 Delete VM if exists
Write-Host -ForegroundColor Cyan "Step 6: Deleting VM '$VMName' if exists..."
$vmstatus = Get-AzureVM -ServiceName $azureResourceGroupName -Name $VMName
if ($vmstatus)
{
Write-Host "VM $VMName detected."
Write-Host "Stopping $VMName"
Stop-AzureVM -ServiceName $azureResourceGroupName -Name $VMName -Force
Write-Host "Deleting VM $VMName"
Remove-AzureVM -ServiceName $azureResourceGroupName -Name $VMName -DeleteVHD
}
else
{
Write-Host "VM $VMName NOT detected."
}
#7 PROVISION VM!
Write-Host -ForegroundColor Cyan "Step 7: Creating Virtual Machine in Azure..."
Write-Host "This will take a while"
Write-Host "Starting creation of VM $VMName"
Write-Host "Using VNET $VNETName and Subnet $VNetSubnetName"
Set-AzureSubnet -SubnetNames $VNetSubnetName -VM $VMConfig | Out-Null
New-AzureService -ServiceName $AzureResourceGroupName -Location "North Europe" -ErrorAction SilentlyContinue -WarningAction SilentlyContinue
$VMResult = $VMProvision | New-AzureVM -ServiceName $AzureResourceGroupName -WaitForBoot -VNetName $VNetName
# END
$endTime = Get-Date
Write-Host "Creation of VM $VMName finished ($endTime)"
$elapsedTime = new-timespan $startTime $endTime
Write-Host -ForegroundColor Cyan "SUCCESS: VM Creation time = $elapsedTime"
exit 0
Я называю это с параметрами (среди прочих)
- AzureResourceGroupName "testBananas"
- VMname «testOranges "
Он работает нормально, и создает виртуальную машину, как вы можете видеть на скриншоте
Как вы можете видеть VMname является testOranges и создается служба (группа ресурсов) testBananas.
Но имя DNS создается по умолчанию testBananas .cloudapp.net Я хочу, чтобы это было testOranges .cloudapp.net или что-нибудь, что я указать. Я думаю, что DNS-имя заполняется по умолчанию.
Так что мой вопрос:
Как указать префикс имени DNS в Azure ASM?
Я нашел много информации, чтобы использовать пользовательские DNS или присоединиться к нему в домене ... но я не хочу этого делать, я просто хочу указать свой пользовательский DNSname.cloudapp.net, потому что Я планирую иметь несколько VM в одной группе ресурсов
Примечание 1: Когда я выполнить сценарий у меня есть это предупреждение:
пРЕДУПРЕЖДЕНИЕ: развертывание не найдены в обслуживании: «testBananas»
ПРИМЕЧАНИЕ 2: Если создать второе «тестовое ядро» VM, имя DNS и PublicIP будут такими же, как «Test-Oranges», хотя частный IP-адрес отличается. Внешний SSH-порт для тестовых апельсинов - 55525, а для тестовых яблок - 53456. Если я использую SSH в обоих и выполняю «имя хоста», имена совпадают ...
Но тогда это закончится другой группой ресурсов ... –
ASM не придерживается концепции групп ресурсов, таких как ARM . Он просто создает компоненты, которые вы укажете, и использует свою собственную логику для определения имен групп ресурсов. Если вам нужно решение на основе групп ресурсов, вам нужно будет использовать ARM –