- name: Fix resource prefix set_fact: redis_name: "redis-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}" vnet_name: "vnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}" subnet_name: "subnet-{{ resource_group | hash('md5') | truncate(7, True, '') }}-{{ 1000 | random }}" rule_name: "rule1" run_once: yes - name: Create a redis cache (Check Mode) azure_rm_rediscache: resource_group: "{{ resource_group }}" name: "{{ redis_name }}" sku: name: basic size: C1 check_mode: yes register: output - name: Assert creating redis cache check mode assert: that: - output.changed - name: Create a redis cache azure_rm_rediscache: resource_group: "{{ resource_group }}" name: "{{ redis_name }}" sku: name: basic size: C1 register: output - name: Assert creating redis cache assert: that: - output.changed - output.id - name: Get facts azure_rm_rediscache_facts: resource_group: "{{ resource_group }}" name: "{{ redis_name }}" register: facts - name: Assert facts assert: that: - facts.rediscaches | length == 1 - facts.rediscaches[0].id != None - facts.rediscaches[0].host_name != None - facts.rediscaches[0].provisioning_state != None - facts.rediscaches[0].sku.name == 'basic' - facts.rediscaches[0].sku.size == 'C1' - name: Update the redis cache (idempotent) azure_rm_rediscache: resource_group: "{{ resource_group }}" name: "{{ redis_name }}" sku: name: basic size: C1 register: output - name: assert output not changed assert: that: - not output.changed # creating redis Cache costs about 20 mins async operation, # need to poll status from Creating to Running, then able to perform updating/deleting operation, # otherwise, will met error: # "The resource '' is busy processing a previous update request or is undergoing system maintenance. # As such, it is currently unable to accept the update request. Please try again later." # comment out updating/deleting tests for test efficiency. # - name: Update redis cache # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # sku: # name: basic # size: C1 # enable_non_ssl_port: true # tags: # testing: foo # register: output # - name: assert output changed # assert: # that: # - output.changed # - name: Update redis cache configuration # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # sku: # name: basic # size: C1 # enable_non_ssl_port: true # maxmemory_policy: allkeys_lru # tags: # testing: foo # register: output # - name: assert output changed # assert: # that: # - output.changed # - name: Scale up the redis cache # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # sku: # name: standard # size: C1 # tags: # testing: foo # register: output # - assert: # that: # - output.changed # - name: Force reboot redis cache # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # reboot: # reboot_type: all # register: output # - assert: # that: # - output.changed # - name: Delete the redis cache (Check Mode) # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # state: absent # check_mode: yes # register: output # - name: assert deleting redis cache check mode # assert: # that: output.changed # - name: Delete the redis cache # azure_rm_rediscache: # resource_group: "{{ resource_group }}" # name: "{{ redis_name }}" # state: absent # register: output # - assert: # that: # - output.changed - name: Create virtual network azure_rm_virtualnetwork: resource_group: "{{ resource_group }}" name: "{{ vnet_name }}" address_prefixes: "10.10.0.0/16" - name: Add subnet azure_rm_subnet: resource_group: "{{ resource_group }}" name: "{{ subnet_name }}" address_prefix: "10.10.0.0/24" virtual_network: "{{ vnet_name }}" - name: Create redis with subnet azure_rm_rediscache: resource_group: "{{ resource_group }}" name: "{{ redis_name }}2" sku: name: premium size: P1 subnet: name: "{{ subnet_name }}" virtual_network_name: "{{ vnet_name }}" register: output - name: Assert creating redis cache assert: that: - output.changed - output.id - name: Get facts azure_rm_rediscache_facts: resource_group: "{{ resource_group }}" name: "{{ redis_name }}2" return_access_keys: True register: facts - name: Assert facts assert: that: - facts.rediscaches | length == 1 - facts.rediscaches[0].subnet != None - facts.rediscaches[0].access_keys.primary != None - name: Wait for Redis provisioning to complete azure_rm_rediscache_facts: resource_group: "{{ resource_group }}" name: "{{ redis_name }}2" register: facts until: "{{ facts.rediscaches[0]['provisioning_state'] == 'Succeeded' }}" retries: 30 delay: 60 tags: - long_run - name: Create firewall rule (Check mode) azure_rm_rediscachefirewallrule: resource_group: "{{ resource_group }}" cache_name: "{{ redis_name }}2" name: "{{ rule_name }}" start_ip_address: 192.168.1.1 end_ip_address: 192.168.1.4 check_mode: yes register: output - name: Assert check mode creation assert: that: - output.changed # Creating firewall rule need Redis status is running, while creating redis Cache costs about 20 mins async operation, # need to poll status from Creating to Running, then able to perform firewall rule creating, # otherwise, will met error: # "Error creating/updating Firewall rule of Azure Cache for Redis: Azure Error: Conflict\nMessage: The resource # '/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroup/providers/Microsoft.Cache/Redis/myRedis' is busy processing # a previous update request or is undergoing system maintenance. As such, it is currently unable to accept the update request. Please try again later." # comment out firewall rule tests for test efficiency. - name: Create firewall rule azure_rm_rediscachefirewallrule: resource_group: "{{ resource_group }}" cache_name: "{{ redis_name }}2" name: "{{ rule_name }}" start_ip_address: 192.168.1.1 end_ip_address: 192.168.1.4 register: output tags: - long_run - name: Assert creation assert: that: - output.changed - output.id tags: - long_run - name: Update firewall rule idempotence azure_rm_rediscachefirewallrule: resource_group: "{{ resource_group }}" cache_name: "{{ redis_name }}2" name: "{{ rule_name }}" start_ip_address: 192.168.1.1 end_ip_address: 192.168.1.4 register: output tags: - long_run - name: Assert idempotence assert: that: - output.changed == False tags: - long_run - name: Update firewall rule azure_rm_rediscachefirewallrule: resource_group: "{{ resource_group }}" cache_name: "{{ redis_name }}2" name: "{{ rule_name }}" end_ip_address: 192.168.1.5 register: output tags: - long_run - name: Assert updating assert: that: - output.changed tags: - long_run - name: Delete firewall rule azure_rm_rediscachefirewallrule: resource_group: "{{ resource_group }}" cache_name: "{{ redis_name }}2" name: "{{ rule_name }}" state: absent register: output tags: - long_run - name: Assert deletion assert: that: - output.changed tags: - long_run - name: Delete the redis cache azure_rm_rediscache: resource_group: "{{ resource_group }}" name: "{{ redis_name }}2" state: absent register: output tags: - long_run