Ansible repository with playbooks to manage azure objects
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

76 lignes
3.4 KiB

  1. ---
  2. - set_fact:
  3. tags_list: "{{ tags_list | default([]) |
  4. union([[tag.key,tag.value]|join(':')]) }}"
  5. loop: "{{ lookup('dict', vm.tags | default({}, true)) }}"
  6. loop_control:
  7. loop_var: "tag"
  8. - name: Get vitual machine
  9. azure_rm_virtualmachine_facts:
  10. ad_user: "{{ azure_ad_user | default(omit) }}"
  11. password: "{{ azure_password | default(omit) }}"
  12. subscription_id: "{{ azure_subscription_id | default(omit) }}"
  13. client_id: "{{ azure_client_id | default(omit) }}"
  14. secret: "{{ azure_secret | default(omit) }}"
  15. tenant: "{{ azure_tenant | default(omit) }}"
  16. resource_group: "{{ vm.resource_group }}"
  17. tags: "{{ tags_list | default(omit) }}"
  18. name: "{{ vm.name | default(omit) }}"
  19. register: azure_vm_facts
  20. failed_when: false
  21. #- name: get urn
  22. # shell: |
  23. # az vm image list --all --publisher {{ vm.image.publisher }} --offer {{ vm.image.offer }} --sku {{ vm.image.sku }} --query [].urn --output tsv
  24. # register: urn
  25. # when:
  26. # - (vm.plan | default({}, true)) != {}
  27. #- name: accept plan
  28. # shell: |
  29. # az vm image accept-terms --urn {{ urn.stdout_lines | last }}
  30. # when:
  31. # - (vm.plan | default({}, true)) != {}
  32. - name: Create vitual machine
  33. azure_rm_virtualmachine:
  34. ad_user: "{{ azure_ad_user | default(omit) }}"
  35. password: "{{ azure_password | default(omit) }}"
  36. subscription_id: "{{ azure_subscription_id | default(omit) }}"
  37. client_id: "{{ azure_client_id | default(omit) }}"
  38. secret: "{{ azure_secret | default(omit) }}"
  39. tenant: "{{ azure_tenant | default(omit) }}"
  40. name: "{{ vm.name }}"
  41. accept_terms: "{{ vm.accept_terms | default(false, true) }}"
  42. admin_username: "{{ vm.admin_username | default('admin', true) }}"
  43. admin_password: "{{ vm.admin_password | default(omit, true) }}"
  44. availability_set: "{{ vm.availability_set | default(omit, true) }}"
  45. location: "{{ vm.location | default(omit, true) }}"
  46. allocated: "{{ vm.allocated | default(omit, true) }}"
  47. data_disks: "{{ vm.data_disks | default([], true) }}"
  48. image: "{{ vm.image }}"
  49. windows_license_type: "{{ vm.windows_license_type | default(omit, true) }}"
  50. network_interfaces: "{{ vm.network_interfaces | default(omit, true) }}"
  51. os_disk_name: "{{ vm.os_disk_name | default(omit, true) }}"
  52. managed_disk_type: "{{ vm.managed_disk_type | default('StandardSSD_LRS', true) }}"
  53. os_disk_size_gb: "{{ vm.os_disk_size_gb | default(500, true) }}"
  54. os_type: "{{ vm.os_type | default(omit, true) }}"
  55. plan: "{{ vm.plan | default(omit, true) }}"
  56. public_ip_allocation_method: "{{ vm.ip_allocation | default('Disabled', true) }}"
  57. resource_group: "{{ vm.resource_group }}"
  58. restarted: "{{ vm.restarted | default(false, true) }}"
  59. ssh_password_enabled: "{{ vm.ssh_password_enabled | default(false, true) }}"
  60. ssh_public_keys: "{{ vm.ssh_public_keys | default(omit, true) }}"
  61. started: "{{ vm.started | default(true, true) }}"
  62. storage_account_name: "{{ vm.storage_account_name | default(omit, true) }}"
  63. subnet_name: "{{ vm.subnet_name | default(omit, true) }}"
  64. virtual_network: "{{ vm.virtual_network | default(omit, true) }}"
  65. vm_size: "{{ vm.vm_size | default('Standard_M8-2ms', true) }}"
  66. zones: "{{ vm.zone | default(omit, true) }}"
  67. append_tags: false
  68. state: "present"
  69. tags: "{{ vm.tags | default(omit, true) }}"
  70. register: createvm
  71. ...