create_image_from_vm.yml 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. ---
  2. - name: deallocate vm
  3. command: >
  4. az vm deallocate
  5. -g "{{ openshift_azure_resource_group_name }}"
  6. -n vm
  7. - name: generalize vm
  8. command: >
  9. az vm generalize
  10. -g "{{ openshift_azure_resource_group_name }}"
  11. -n vm
  12. - name: get vm details
  13. command: >
  14. az vm show
  15. -g "{{ openshift_azure_resource_group_name }}"
  16. -n vm
  17. register: vm
  18. - name: create image resource group
  19. azure_rm_resourcegroup:
  20. name: "{{ image_resource_group }}"
  21. location: "{{ openshift_azure_resource_location }}"
  22. - name: create image
  23. command: >
  24. az image create
  25. -g "{{ image_resource_group }}"
  26. -n "{{ image_name }}"
  27. --source "{{ (vm.stdout | from_json).storageProfile.osDisk.managedDisk.id }}"
  28. --os-type Linux
  29. - name: calculate tags
  30. set_fact:
  31. final_tags: "{{ (input_image.stdout | from_json).tags | combine(image_tags) }}"
  32. - name: tag image
  33. command: >
  34. az resource tag
  35. --resource-type Microsoft.Compute/images
  36. -g "{{ image_resource_group }}"
  37. -n "{{ image_name }}"
  38. --tags {% for k in final_tags %}{{ k }}={{ final_tags[k] }} {% endfor %}