- name: Create domain name set_fact: domain_name: "ansible-{{ resource_group | hash('md5') | truncate(24, True, '') }}" rpfx: "{{ resource_group | hash('md5') | truncate(7, True, '') }}{{ 1000 | random }}" - name: Remove public ip azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" state: absent - name: Create public ip azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" allocation_method: Static domain_name: "{{ domain_name }}" tags: testing: testing delete: on-exit register: output - assert: that: - output.state.public_ip_allocation_method == 'static' - output.state.dns_settings.domain_name_label == domain_name - output.state.tags | length == 2 - output.state.tags.testing == 'testing' - name: Should be idempotent azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" allocation_method: static domain_name: "{{ domain_name }}" register: output - assert: that: not output.changed - name: Update tags azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" allocation_method: static domain_name: "{{ domain_name }}" append_tags: yes tags: delete: never foo: bar register: output - assert: that: - output.state.tags | length == 3 - output.state.tags.delete == 'never' - name: Gather facts, filtering by tag azure_rm_publicipaddress_facts: resource_group: "{{ resource_group }}" tags: - testing - foo:bar - assert: that: azure_publicipaddresses | length == 1 - name: Purge all tags azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" allocation_method: static domain_name: "{{ domain_name }}" append_tags: no register: output - assert: that: - output.state.tags | length == 0 - name: Gather facts for a public ip azure_rm_publicipaddress_facts: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" register: pip - assert: that: - "pip.publicipaddresses | length == 1" - pip.publicipaddresses[0].name == "pip{{ rpfx }}" - pip.publicipaddresses[0].allocation_method == 'static' - pip.publicipaddresses[0].dns_settings.domain_name_label == domain_name - name: Gather facts for all public ips azure_rm_publicipaddress_facts: resource_group: "{{ resource_group }}" - assert: that: azure_publicipaddresses | length > 0 - name: Remove public ip azure_rm_publicipaddress: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" state: absent - name: Gather facts for a public ip azure_rm_publicipaddress_facts: resource_group: "{{ resource_group }}" name: "pip{{ rpfx }}" - assert: that: azure_publicipaddresses | length == 0