create_blob_from_vm.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. ---
  2. - name: get vm details
  3. command: >
  4. az vm show
  5. -g "{{ openshift_azure_resource_group_name }}"
  6. -n vm
  7. register: vm
  8. - name: get storage account key
  9. command: >
  10. az storage account keys list
  11. -g "{{ openshift_azure_storage_account_ns }}"
  12. -n "{{ openshift_azure_storage_account }}"
  13. register: keys
  14. - name: get disk sas url
  15. command: >
  16. az disk grant-access
  17. --ids "{{ (vm.stdout | from_json).storageProfile.osDisk.managedDisk.id }}"
  18. --duration-in-seconds 3600
  19. register: sas
  20. - name: start copy
  21. command: >
  22. az storage blob copy start
  23. --source-uri "{{ (sas.stdout | from_json).accessSas }}"
  24. --account-name "{{ openshift_azure_storage_account }}"
  25. --account-key "{{ (keys.stdout | from_json)[0].value }}"
  26. --destination-container "{{ openshift_azure_container }}"
  27. --destination-blob "{{ image_name }}.vhd"
  28. - name: get copy status
  29. command: >
  30. az storage blob show
  31. --account-name "{{ openshift_azure_storage_account }}"
  32. --account-key "{{ (keys.stdout | from_json)[0].value }}"
  33. --container-name "{{ openshift_azure_container }}"
  34. --name "{{ image_name }}.vhd"
  35. --query "properties.copy.status"
  36. register: status
  37. until: status.stdout | from_json == "success"
  38. retries: 120
  39. delay: 30
  40. - name: revoke disk sas url
  41. command: >
  42. az disk revoke-access
  43. --ids "{{ (vm.stdout | from_json).storageProfile.osDisk.managedDisk.id }}"