Как сохранить/установить пароль администратора по умолчанию в Azure ASM после копирования диска ОС

Мне нужно перенести старые классические виртуальные машины на новые (все еще) классические виртуальные машины, чтобы использовать:

  • Новый тип виртуальных машин (от Standard_A до Standard_DS_V2)
  • Премиум-диски

Я сделал скрипт, который:

  • Остановить существующую виртуальную машину
  • Удалить существующую виртуальную машину
  • Скопируйте старые диски (ОС + данные) в учетную запись Premium Storage.
  • Зарегистрируйте новые диски

Затем у меня есть еще один сценарий для создания новой виртуальной машины на основе информации Json. Этот сценарий был разработан некоторое время назад для создания виртуальных машин на основе информации Json и существующего шаблона диска Azure.

Я адаптировал его для создания новой виртуальной машины на основе копии дисков.

Все работает достаточно хорошо, кроме пункта admin user/password. Каждый раз, когда я создаю новую виртуальную машину, я не могу получить к ней доступ со своим старым пользователем-администратором (тот, который изначально использовался для создания виртуальной машины). Чтобы получить доступ к виртуальной машине, мне нужно использовать портал Azure для сброса пароля. Затем я могу получить доступ к виртуальной машине.

Дело в том, что я хочу либо:

  • сделать этот шаг в моем скрипте
  • вообще не нужно этого делать (мы используем копию диска ОС / дисков данных, поэтому в этом нет необходимости)

Может кто-нибудь объяснить мне, как управлять этим? Я занимаюсь этим с нескольких дней / недель, и я не могу найти способ сделать это правильно.

Действия моего скрипта по созданию ВМ (ubuntu VM):

- Set-AzureSubscription -CurrentStorageAccount $VM.StorageAccount -SubscriptionId $VM.SubscriptionId
- $GlobalOSDiskName = (Get-AzureDisk | Where-Object { $_.OS -iin "Linux","Windows" } | Select DiskName).DiskName
- $VM = Get-Content $json_file -Raw | ConvertFrom-Json
- $VMOSDisk = $VM.OSDisk
- $vmObj = New-Object -TypeName Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVM
- $vmObj = New-AzureVMConfig -Name $VM.Name -InstanceSize $VM.InstanceSize -DiskName $VMOSDisk.DiskName
- $vmObj = Set-AzureOSDisk -VM $vmObj 
- $VMDataDisks = $VM.DataDisks
- foreach ($VMDataDisk in $VMDataDisks) {
    $vmObj = Add-AzureDataDisk -Import -DiskName $VMDataDisk.DiskName -LUN $VMDataDisk.Lun -HostCaching $VMDataDisk.HostCaching -VM $vmObj
    }
- $password = Read-Host -Prompt "Enter password for admin account '$username'" -AsSecureString 
- $vmObj = Set-AzureVMAccessExtension -VM $vmObj -UserName $username -Password $password
    # This is the last test I've made for this but it's not better...
    # Adding informations for Subnet, StaticIP, AvailabilitySet, EndPoint, ACL etc...
- New-AzureVM -VNetName $VM.Vnet -ServiceName $VM.ServiceName -VM $vmObj -WaitForBoot
    # Creation of the VM based on the object $vmObj

==> ВМ создана правильно, но к ней нельзя получить доступ

Более того, когда я сбрасываю пароль с помощью портала Azure, мне предлагается ввести свой пароль, когда я использую команду sudo, когда меня не запрашивали на старой виртуальной машине.

Это не обязательно, но я хотел бы знать, почему и как включить/отключить это.

Изменить: я протестировал предложение, написанное в этот документ, который, кажется, работает.

Этот метод заключается в:

  • Экспортируйте конфигурацию исходной виртуальной машины с помощью команды Export-AzureVM в XML-файл.
  • Отредактируйте экспортированный XML-файл, чтобы он соответствовал нужным настройкам.
  • Создайте новый объект виртуальной машины на основе этого с помощью команды Import-AzureVM.

Результат, кажется, работает правильно:

  • ВМ хорошо создана со всеми параметрами
  • Пароль администратора остается прежним, нигде его не устанавливая

Опасения по этому поводу в том, что:

  • В экспортированном xml для учетных данных администратора нет ссылки
  • Таким образом, в новом объекте vm нет ссылки на учетные данные администратора.
  • Созданный объект точно такой же, как тот, который я создаю по-своему.

Может кто-нибудь объяснить мне разницу между обоими решениями?

Спасибо за вашу помощь


person Rémi Faydide    schedule 01.02.2017    source источник
comment
Я предлагаю вам сбросить пароль администратора после успешного создания виртуальной машины.   -  person Shui shengbao    schedule 02.02.2017
comment
Насколько мне известно, на данный момент классическая виртуальная машина не поддерживает виртуальную машину серии S. Если вы хотите использовать виртуальную машину серии DsV2, вам необходимо использовать виртуальную машину в режиме ARM.   -  person Shui shengbao    schedule 02.02.2017
comment
Спасибо Уолтер за ваш ответ. но чтобы исправить вас, серия DsV2 отлично работает с режимом ASM ... Что касается вашего первого ответа, я хотел бы знать, как сбросить пароль администратора в качестве второго варианта, но я не знаю, как это сделать. А на портале эта опция сброса пароля администратора занимает от ~ 20 до ~ 30 минут и несколько раз терпит неудачу ... поэтому я бы предпочел сделать это другим способом, если это возможно.   -  person Rémi Faydide    schedule 02.02.2017
comment
Извините за мою ошибку. Мы могли бы создать классическую виртуальную машину DsV2 на новом портале Azure.   -  person Shui shengbao    schedule 03.02.2017


Ответы (1)


Наконец, после нескольких тестов, у меня все еще нет подтверждения чему-либо...

В некоторых случаях пароль учетной записи администратора необходимо сбросить, в других случаях нет...

Если у кого-то есть ответ, это было бы очень полезно...

person Rémi Faydide    schedule 23.02.2017