packer를 사용하여 빌드 된 사용자 지정 이미지 (일명 ami)에서 두 개 이상의 azure vms를 배포하는 데 문제가 있습니다.기본 압축기 이미지에서 1 개 이상의 azure vm 배포
여기 기본 이미지 만들 내 포장 스크립트입니다 : 이제
{
"builders": [
{
"type": "azure-arm",
"client_id": "CHANGE_ME",
"client_secret": "CHANGE_ME",
"object_id": "CHANGE_ME",
"subscription_id": "CHANGE_ME",
"tenant_id": "CHANGE_ME",
"resource_group_name": "packerrgvm",
"storage_account": "packerrgvm",
"capture_container_name": "images",
"capture_name_prefix": "packer",
"os_type": "Linux",
"image_publisher": "Canonical",
"image_offer": "UbuntuServer",
"image_sku": "16.04.0-LTS",
"azure_tags": {
"dept": "engineering"
},
"location": "westeurope",
"vm_size": "Standard_A2"
}
],
"provisioners": [
{
"type": "shell",
"inline": ["do sth interesting here"]
},
{
"type": "shell",
"inline": [
"sudo /usr/sbin/waagent -force -deprovision+user && export HISTSIZE=0 && sync"
]
}
]
}
을, 나는 ARM 템플릿을 사용하여 새 VM을 구축하기 위해 노력하고있어. 내 템플릿에는 성공적인 빌드 후에 packer에서 제공 한 imageName, imageUri 및 vhdUri이 포함되어 있습니다. vnets, 네트워크 인터페이스 등 ommited :
{
"apiVersion": "2016-03-30",
"type": "Microsoft.Compute/virtualMachines",
"name": "[variables('workerVM').machine.name]",
"location": "[resourceGroup().location]",
"properties": {
"hardwareProfile": {
"vmSize": "[variables('workerVM').machine.size]"
},
"storageProfile": {
"osDisk": {
"osType": "Linux",
"name": "[variables('workerVM').machine.imageName]",
"createOption": "FromImage",
"image": {
"uri": "[variables('workerVM').machine.imageUri]"
},
"vhd": {
"uri": "[variables('workerVM').machine.vhdUri]"
},
"caching": "ReadWrite"
}
},
"osProfile": {
"computerName": "[variables('workerVM').machine.name]",
"adminUsername": "[variables('workerVM').machine.adminUsername]",
"adminPassword": "[variables('workerVM').machine.adminPassword]"
},
"networkProfile": {
"networkInterfaces": [
{
"id": "[resourceId('Microsoft.Network/networkInterfaces', variables('workerVM').network.nicName)]"
}
]
},
"diagnosticsProfile": {
"bootDiagnostics": {
"enabled": false
}
},
"provisioningState": 0
}
}
처음 배포 할 때 작동합니다. Hovewer, 나는 완전히 내 자원 그룹을 제거하고 다시 한번, 나는 다음과 같은 오류 얻을 VM을 배포 할 경우에도 :
error: The resource operation completed with terminal provisioning state 'Failed'.
error: Blob https://packerrgvm.blob.core.windows.net/vmcontainera1ba96d3-a593-44b9-8c71-1d345ef67a2d/osDisk.a1ba96d3-a593-44b9-8c71-1d345ef67a2d.vhd already exists. Please provide a different blob URI as target for disk 'packer-osDisk.49359f62-5c49-44c1-aed8-4ea1613ab2e9.vhd'.
은 사용자 정의 AMI는 포장하여이 방법을 구축 사용할 수 있습니까?
이 VM을 배포하기 전에 'osDisk.a1ba96d3-a593-44b9-8c71-1d345ef67a2d.vhd'리소스가 존재하는지 여부를 다시 확인하십시오. 이 리소스는 VM을 다시 배포하기 전에 성공적으로 삭제되지 않았을 수 있습니다. – Amor
그래, 확실히 삭제되지 않았다. 내 질문에 더 가깝습니다. '어떻게 뒷주석으로 만들어진 단일 기본 이미지에서 1 개 이상의 VM을 만드나요?' – slnowak