Ubuntu를 실행하는 제대로 작동하는 ARM VM에 대한 복제 워크 플로를 개발하려고합니다. 이 VM은 Marketplace의 Bitnami LAMP 이미지에서 생성되었습니다.
내 지식에 따라 fromImage 대신 -CreateOption 첨부 옵션 을 사용하려고합니다 ... 다른 옵션이 있다는 것을 알고 있습니다 : deprovision-> capture->-CreateOption fromImage,하지만 문제가있는 경우 만들기 참조 캡처 된 이미지의 새 ARM VM : URL의 Blob 이름은 '.vhd'확장 오류로 끝나야합니다. 내가 따라온 워크 플로는 많은 설명에 따른 것이며이 로그인 문제를 이해하지 못합니다. 간단한 단계를 놓쳤 으면합니다.
다른 소스 ARM VM 으로이 워크 플로를 두 번 시도한 결과 매우 동일한 결과를 얻었습니다. 새 컴퓨터가 완전히 작동하는 것처럼 보이지만 알려진 사용자 이름 암호로 새 컴퓨터에 로그인 할 수 없습니다 (SSH를 통해).
진단 :
내가 한 일은 다음과 같습니다.
.
Login-AzureRmAccount
Select-AzureRmSubscription -SubscriptionName "Visual Studio Premium with MSDN"
# Create VM from an existing image
$location = "westeurope"
$vmSize = "Standard_DS2"
#Existing resource name parameters:
$rgName = "rg-wp"
$vnetName= "vn-wp"
$stName = "mystorage"
#This vhd is a copy of a completely working ARM OS vhd:
$vhdUri = "https://mystorage.blob.core.windows.net/vhds/disk-wp-01.vhd"
#Newly creatable resource names and other parameters
$vmName = "vm-wp-02"
$nicName="ni-wp-02"
$pipName="pip-wp-02"
$nsgName="nsg-wp-02"
$vhdName = "disk-wp-02"
$vnet = Get-AzureRmVirtualNetwork -Name $vnetName -ResourceGroupName $rgName
$storageAccount = Get-AzureRmStorageAccount -AccountName $stName -ResourceGroupName $rgName
$pip = New-AzureRmPublicIpAddress -Name $pipName -ResourceGroupName $rgName -Location $location -AllocationMethod Static -DomainNameLabel $pipName
$nsg = New-AzureRmNetworkSecurityGroup -Name $nsgName -ResourceGroupName $rgName -Location $location
$nic = New-AzureRmNetworkInterface -Name $nicName -ResourceGroupName $rgName -Location $location -SubnetId $vnet.Subnets[0].Id -PublicIpAddressId $pip.Id -NetworkSecurityGroupId $nsg.Id
# Configure VM:
$vm = New-AzureRmVMConfig -vmName $vmName -vmSize $vmSize
$vm = Add-AzureRmVMNetworkInterface -VM $vm -Id $nic.Id
$vm = Set-AzureRmVMOSDisk -VM $vm -Name $vhdName -VhdUri $vhdUri -Linux -CreateOption attach
New-AzureRmVM -ResourceGroupName $rgName -Location $location -VM $vm
실수로 capture-> create fromImage (CCFI)를 실험하는 동안 몇 가지 진단 결과를 얻었습니다 (이 질문에 대한 내용을 copy-> attach (CA)와 혼동하지 마십시오)
세부 사항에 관심이 없다면 맨 끝으로 이동하여 "현재 알려진 가장 간단한 해결 방법"을 참조하십시오.
진단 :
새로 생성 된 마켓 플레이스 bitnami LAMP ARM VM에 CA가 발생하면 원래 관리자 는 더 이상 로그온 할 수 없습니다.
새로 생성 된 마켓 플레이스 bitnami LAMP ARM VM에 CCFI가 발생하면 원래 관리자 가 로그온 할 수 있으며 새로 정의 된 자격 증명 (admin2)도 로그온 할 수 있습니다 .
CCFI를 통해 생성 된 VM에 CA가있는 경우 원래 관리자 사용자 는 로그온 할 수 있지만 admin2 (이전 CCFI에서 생성됨)는 로그온 할 수 없습니다.
이 실험 후 저는 원래 관리자 사용자로 이전에 CCFI-d였던 CA-d 컴퓨터에 로그온 할 수있었습니다.
/ etc / shadow를 조사한 결과 admin2가 비활성화 된 것으로 나타났습니다 : 암호 해시 이전에 (! 기호). 유일하게 질문이 남아 있습니다. 어떤 똑똑한 사람이 분명히 원치 않고 무한한 일을 했습니까? 두 명의 용의자와 세 가지 시나리오가 있습니다.
확실하지 않지만 내 추측은 "순수한 waagent"이고, 두 번째는 "waagent가 오도 된 ..."
그 이유는 다음과 같습니다. /var/lib/waagent/ovf-env.xml 파일을 조사한 결과
<ns1:UserPassword>REDACTED</ns1:UserPassword>
마지막으로 프로비저닝 된 사용자에 대한 항목입니다. 이것은 처녀 마켓 플레이스 머신의 경우 "admin"이고 CCFI-d 머신의 경우 admin2입니다. 머신에 CA가 발생하면이 사용자는 비활성화됩니다. 이 파일은 waagent에 속하기 때문에 내 추측 waagent는 어떻게 든 CA (왜 ???) 작업을 감지하고 처음 시작하면 사용자가 비활성화됩니다. 진단은이 이론과 정확히 일치합니다.
한 가지 확실한 점 :이 문제는 VM 자체 및 Linux 특정 비트 나미에서 발생하는 원치 않는 자동화입니다.
이 문제는 CA 도중 / 이후 항상 발생합니다. CA는 중요한 정보를 프로비저닝, 디 프로비저닝, 일반화, 삭제하는 것과 관련이 없기 때문에 이것은 분명히 원치 않는 것입니다.
해결 방법 :
시도 및 입증 : CCFI, 그러면 원하는 횟수만큼 CCFI-d VM을 CA에 연결할 수 있습니다.
현재 알려진 가장 간단한 해결 방법 :
시간이 걸리기 때문에 해결 방법에서 CCFI를 제거하는 것이 좋습니다. ( 일반화 된 원래 머신은 더 이상 의도적으로 시작할 수 없다는 얘기 가 아닙니다 (Azure).
모든 시스템에서 다음을 수행하십시오.
sudo adduser dummyadmin
sudo adduser dummyadmin sudo
edit the /var/lib/waagent/ovf-env.xml file and replace admin to dummyadmin
처음 생성 된 후 사용자 정의 된 마켓 플레이스 머신을 포함한 모든 머신 에서이 작업을 수행하면 자유롭게 CA를 수행 할 수 있습니다. 물론 dummyadmin으로 새 머신에 로그인 할 수 없지만 admin으로 로그인 할 수 있습니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다