2016-02-08 4 views
1

Это сценарий, я использую, чтобы создать классический (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 "

Он работает нормально, и создает виртуальную машину, как вы можете видеть на скриншоте enter image description here

Как вы можете видеть 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 в обоих и выполняю «имя хоста», имена совпадают ...

ответ

0

в вашем # 7 Положения VM! у вас есть

New-AzureService -ServiceName $AzureResourceGroupName ` 
       -Location "North Europe" ` 
       -ErrorAction SilentlyContinue ` 
       -WarningAction SilentlyContinue 

Изменение $AzureResourceGroupName к TestOranges даст вам результат вы стремитесь

проблема у вас есть это связано с тем, что ASM не использует групп ресурсов таким же образом что делает ARM. (использование их несколько противоречиво - в основном делает свою собственную вещь с именами)

+0

Но тогда это закончится другой группой ресурсов ... –

+0

ASM не придерживается концепции групп ресурсов, таких как ARM . Он просто создает компоненты, которые вы укажете, и использует свою собственную логику для определения имен групп ресурсов. Если вам нужно решение на основе групп ресурсов, вам нужно будет использовать ARM –

Смежные вопросы