- name: Prepare random number set_fact: rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" run_once: yes - name: Create storage account azure_rm_storageaccount: resource_group: "{{ resource_group }}" name: "storage{{ rpfx }}" account_type: Standard_LRS location: eastus2 - name: Sample for Azure REST API - StorageAccounts_ListKeys azure_rm_resource: api_version: '2018-07-01' method: POST resource_group: "{{ resource_group }}" provider: storage resource_type: storageaccounts resource_name: "storage{{ rpfx }}" subresource: - type: listkeys register: storage_output - debug: var: storage_output - name: Create instance of Cluster -- check mode azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" location: eastus2 cluster_version: 3.6 os_type: linux tier: standard cluster_definition: kind: spark gateway_rest_username: http-user gateway_rest_password: MuABCPassword!!@123 storage_accounts: - name: storage{{ rpfx }}.blob.core.windows.net is_default: yes container: "cluster{{ rpfx }}" key: "{{ storage_output['response']['keys'][0]['value'] }}" compute_profile_roles: - name: headnode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: workernode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: zookeepernode target_instance_count: 3 vm_size: Medium linux_profile: username: sshuser password: MuABCPassword!!@123 check_mode: yes register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create instance of Cluster azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" location: eastus2 cluster_version: 3.6 os_type: linux tier: standard cluster_definition: kind: spark gateway_rest_username: http-user gateway_rest_password: MuABCPassword!!@123 storage_accounts: - name: storage{{ rpfx }}.blob.core.windows.net is_default: yes container: "cluster{{ rpfx }}" key: "{{ storage_output['response']['keys'][0]['value'] }}" compute_profile_roles: - name: headnode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: workernode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: zookeepernode target_instance_count: 3 vm_size: Medium linux_profile: username: sshuser password: MuABCPassword!!@123 register: output - name: Assert the resource instance is well created assert: that: - output.changed - name: Create again instance of Cluster -- idempotent azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" location: eastus2 cluster_version: 3.6 os_type: linux tier: standard cluster_definition: kind: spark gateway_rest_username: http-user gateway_rest_password: MuABCPassword!!@123 storage_accounts: - name: storage{{ rpfx }}.blob.core.windows.net is_default: yes container: "cluster{{ rpfx }}" key: "{{ storage_output['response']['keys'][0]['value'] }}" compute_profile_roles: - name: headnode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: workernode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: zookeepernode target_instance_count: 3 vm_size: Medium linux_profile: username: sshuser password: MuABCPassword!!@123 register: output - name: Assert the state has not changed assert: that: - output.changed == false - name: Create again instance of Cluster -- resize and add tags azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" location: eastus2 cluster_version: 3.6 os_type: linux tier: standard cluster_definition: kind: spark gateway_rest_username: http-user gateway_rest_password: MuABCPassword!!@123 storage_accounts: - name: storage{{ rpfx }}.blob.core.windows.net is_default: yes container: "cluster{{ rpfx }}" key: "{{ storage_output['response']['keys'][0]['value'] }}" compute_profile_roles: - name: headnode target_instance_count: 1 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: workernode target_instance_count: 2 vm_size: Standard_D3 linux_profile: username: sshuser password: MuABCPassword!!@123 - name: zookeepernode target_instance_count: 3 vm_size: Medium linux_profile: username: sshuser password: MuABCPassword!!@123 tags: aaa: bbb register: output - debug: var: output - name: Assert the state has changed assert: that: - output.changed - name: Get facts of Cluster azure_rm_hdinsightcluster_facts: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" register: output - name: Assert that facts are returned assert: that: - output.changed == False - output.clusters[0]['id'] != None - output.clusters[0]['resource_group'] != None - output.clusters[0]['name'] != None - output.clusters[0]['location'] != None - output.clusters[0]['cluster_version'] != None - output.clusters[0]['os_type'] != None - output.clusters[0]['tier'] != None - output.clusters[0]['cluster_definition'] != None - output.clusters[0]['compute_profile_roles'] != None - output.clusters[0]['connectivity_endpoints'] != None - name: Delete instance of Cluster -- check mode azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" state: absent check_mode: yes register: output - name: Assert the state has changed assert: that: - output.changed - name: Delete instance of Cluster azure_rm_hdinsightcluster: resource_group: "{{ resource_group }}" name: "cluster{{ rpfx }}" state: absent register: output - name: Assert the state has changed assert: that: - output.changed