Ansible repository with playbooks to manage azure objects
Você não pode selecionar mais de 25 tópicos Os tópicos devem começar com uma letra ou um número, podem incluir traços ('-') e podem ter até 35 caracteres.
 
 
 

51 linhas
2.0 KiB

  1. ---
  2. - name: Build tags list
  3. set_fact:
  4. tags_list: "{{ tags_list | default([]) | union([[tag.key,tag.value]|join(':')]) }}"
  5. loop: "{{ lookup('dict', ip.tags | default({}, true)) }}"
  6. loop_control:
  7. loop_var: "tag"
  8. - name: Get ip address
  9. azure_rm_publicipaddress_info:
  10. ad_user: "{{ azure_ad_user | default(omit) }}"
  11. password: "{{ azure_password | default(omit) }}"
  12. subscription_id: "{{ azure_subscription_id | default(lookup('env', 'AZURE_SUBSCRIPTION_ID')) }}"
  13. client_id: "{{ azure_client_id | default(lookup('env', 'AZURE_CLIENT_ID')) }}"
  14. secret: "{{ azure_secret | default(lookup('env', 'AZURE_SECRET')) }}"
  15. tenant: "{{ azure_tenant | default(lookup('env', 'AZURE_TENANT')) }}"
  16. resource_group: "{{ ip.resource_group }}"
  17. name: "{{ ip.name | default(omit) }}"
  18. register: azure_ip_facts
  19. - name: load template
  20. template:
  21. src: azure_public_ip_address.j2
  22. dest: /tmp/azure_public_ip_address_body.json
  23. changed_when: false
  24. - name: Create ip address
  25. azure_rm_resource:
  26. ad_user: "{{ azure_ad_user | default(omit) }}"
  27. password: "{{ azure_password | default(omit) }}"
  28. subscription_id: "{{ azure_subscription_id | default(lookup('env', 'AZURE_SUBSCRIPTION_ID')) }}"
  29. client_id: "{{ azure_client_id | default(lookup('env', 'AZURE_CLIENT_ID')) }}"
  30. secret: "{{ azure_secret | default(lookup('env', 'AZURE_SECRET')) }}"
  31. tenant: "{{ azure_tenant | default(lookup('env', 'AZURE_TENANT')) }}"
  32. resource_name: "{{ ip.name | urlencode }}"
  33. resource_type: "publicIPAddresses"
  34. resource_group: "{{ ip.resource_group }}"
  35. provider: "Network"
  36. idempotency: true
  37. body: "{{ lookup('file', '/tmp/azure_public_ip_address_body.json') }}"
  38. method: "{{ ip.method | default(omit, true) }}"
  39. subresource: "{{ ip.subresource | default(omit, true) }}"
  40. status_code: "{{ ip.status_code | default(omit, true) }}"
  41. state: "present"
  42. register: createip
  43. failed_when:
  44. - createip.rc is defined
  45. - createip.rc != 0
  46. - '"PublicIPAddressInUseCannotUpdate" not in createip.module_stderr'
  47. ...