|
- ---
- - name: Build tags list
- set_fact:
- tags_list: "{{ tags_list | default([]) | union([[tag.key,tag.value]|join(':')]) }}"
- loop: "{{ lookup('dict', vm.tags | default({}, true)) }}"
- loop_control:
- loop_var: "tag"
-
- - name: Get vitual machine
- azure_rm_virtualmachine_info:
- ad_user: "{{ azure_ad_user | default(omit) }}"
- password: "{{ azure_password | default(omit) }}"
- subscription_id: "{{ azure_subscription_id | default(lookup('env', 'AZURE_SUBSCRIPTION_ID')) }}"
- client_id: "{{ azure_client_id | default(lookup('env', 'AZURE_CLIENT_ID')) }}"
- secret: "{{ azure_secret | default(lookup('env', 'AZURE_SECRET')) }}"
- tenant: "{{ azure_tenant | default(lookup('env', 'AZURE_TENANT')) }}"
- resource_group: "{{ vm.resource_group }}"
- tags: "{{ tags_list | default(omit) }}"
- name: "{{ vm.name | default(omit) }}"
- register: azure_vm_facts
- failed_when: false
-
- #- name: get urn
- # shell: |
- # az vm image list --all --publisher {{ vm.image.publisher }} --offer {{ vm.image.offer }} --sku {{ vm.image.sku }} --query [].urn --output tsv
- # register: urn
- # when:
- # - (vm.plan | default({}, true)) != {}
-
- #- name: accept plan
- # shell: |
- # az vm image accept-terms --urn {{ urn.stdout_lines | last }}
- # when:
- # - (vm.plan | default({}, true)) != {}
-
- - name: Create vitual machine
- azure_rm_virtualmachine:
- ad_user: "{{ azure_ad_user | default(omit) }}"
- password: "{{ azure_password | default(omit) }}"
- subscription_id: "{{ azure_subscription_id | default(lookup('env', 'AZURE_SUBSCRIPTION_ID')) }}"
- client_id: "{{ azure_client_id | default(lookup('env', 'AZURE_CLIENT_ID')) }}"
- secret: "{{ azure_secret | default(lookup('env', 'AZURE_SECRET')) }}"
- tenant: "{{ azure_tenant | default(lookup('env', 'AZURE_TENANT')) }}"
- name: "{{ vm.name }}"
- accept_terms: "{{ vm.accept_terms | default(false, true) }}"
- admin_username: "{{ vm.admin_username | default('admin', true) }}"
- admin_password: "{{ vm.admin_password | default(omit, true) }}"
- availability_set: "{{ vm.availability_set | default(omit, true) }}"
- location: "{{ vm.location | default(omit, true) }}"
- allocated: "{{ vm.allocated | default(true) }}"
- data_disks: "{{ vm.data_disks | default([], true) }}"
- image: "{{ vm.image }}"
- windows_license_type: "{{ vm.windows_license_type | default(omit, true) }}"
- network_interfaces: "{{ vm.network_interfaces | default(omit, true) }}"
- os_disk_name: "{{ vm.os_disk_name | default(omit, true) }}"
- managed_disk_type: "{{ vm.managed_disk_type | default('StandardSSD_LRS', true) }}"
- os_disk_size_gb: "{{ vm.os_disk_size_gb | default(500, true) }}"
- os_type: "{{ vm.os_type | default(omit, true) }}"
- plan: "{{ vm.plan | default(omit, true) }}"
- public_ip_allocation_method: "{{ vm.ip_allocation | default('Disabled', true) }}"
- resource_group: "{{ vm.resource_group }}"
- restarted: "{{ vm.restarted | default(false, true) }}"
- ssh_password_enabled: "{{ vm.ssh_password_enabled | default(false, true) }}"
- ssh_public_keys: "{{ vm.ssh_public_keys | default(omit, true) }}"
- started: "{{ vm.started | default(true) }}"
- storage_account_name: "{{ vm.storage_account_name | default(omit, true) }}"
- subnet_name: "{{ vm.subnet_name | default(omit, true) }}"
- virtual_network: "{{ vm.virtual_network | default(omit, true) }}"
- vm_size: "{{ vm.vm_size | default('Standard_M8-2ms', true) }}"
- zones: "{{ vm.zone | default(omit, true) }}"
- append_tags: false
- state: "present"
- tags: "{{ vm.tags | default(omit, true) }}"
- register: createvm
- no_log: true
- ...
|