|
- ---
- - name: Build tags list
- set_fact:
- tags_list: "{{ tags_list | default([]) | union([[tag.key,tag.value]|join(':')]) }}"
- loop: "{{ lookup('dict', ip.tags | default({}, true)) }}"
- loop_control:
- loop_var: "tag"
-
- - name: Get ip address
- azure_rm_publicipaddress_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: "{{ ip.resource_group }}"
- name: "{{ ip.name | default(omit) }}"
- register: azure_ip_facts
-
- - name: load template
- template:
- src: azure_public_ip_address.j2
- dest: /tmp/azure_public_ip_address_body.json
- changed_when: false
-
- - name: Create ip address
- azure_rm_resource:
- 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_name: "{{ ip.name | urlencode }}"
- resource_type: "publicIPAddresses"
- resource_group: "{{ ip.resource_group }}"
- provider: "Network"
- idempotency: true
- body: "{{ lookup('file', '/tmp/azure_public_ip_address_body.json') }}"
- method: "{{ ip.method | default(omit, true) }}"
- subresource: "{{ ip.subresource | default(omit, true) }}"
- status_code: "{{ ip.status_code | default(omit, true) }}"
- state: "present"
- register: createip
- failed_when:
- - createip.rc is defined
- - createip.rc != 0
- - '"PublicIPAddressInUseCannotUpdate" not in createip.module_stderr'
- ...
|