Ansible repository with playbooks to manage azure objects
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.
 
 
 

154 lignes
5.7 KiB

  1. {
  2. "location": "{{ lb.location }}",
  3. "properties": {
  4. "backendAddressPools": [
  5. {% for bp in lb.backend_address_pools %}
  6. {
  7. "name": "{{ bp.name }}",
  8. "properties": {
  9. },
  10. },
  11. {% endfor %}
  12. ],
  13. "frontendIPConfigurations": [
  14. {% for fipc in ip_configurations %}
  15. {
  16. "name": "{{ fipc.name }}",
  17. "properties": {
  18. {% if fipc.gateway_lb_fip is defined %}
  19. "gatewayLoadBalancer": {
  20. "id": "{{ fipc.gateway_lb_fip }}"
  21. },
  22. {% endif %}
  23. {% if fipc.private_ip_version is defined %}
  24. "privateIPAddressVersion": "{{ fipc.private_ip_version }}",
  25. {% endif %}
  26. {% if fipc.private_ip_allocation_method is defined %}
  27. "privateIPAllocationMethod": "{{ fipc.private_ip_allocation_method }}",
  28. {% endif %}
  29. {% if fipc.private_ip_address is defined %}
  30. "privateIPAddress": "{{ fipc.private_ip_address }}",
  31. {% endif %}
  32. {% if fipc.public_ip_address is defined %}
  33. "publicIPAddress": {
  34. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/publicIPAddresses/{{ fipc.public_ip_address }}",
  35. }
  36. {% endif %}
  37. {% if fipc.subnet is defined %}
  38. "subnet": {
  39. "id": "{{ fipc.subnet }}"
  40. },
  41. {% endif %}
  42. },
  43. {% if fipc.zones is defined %}
  44. "zones": [
  45. {% for zone in fipc.zones | default([]) %}
  46. "{{ zone }}",
  47. {% endfor %}
  48. ]
  49. {% endif %}
  50. },
  51. {% endfor %}
  52. ],
  53. "probes": [
  54. {% for probe in lb.probes | default([]) %}
  55. {
  56. "name": "{{ probe.name }}",
  57. "properties": {
  58. "protocol": "{{ probe.protocol | default('Tcp') }}",
  59. "port": {{ probe.port | default(22) }},
  60. {% if probe.protocol is defined and probe.protocol == 'Http' %}
  61. "requestPath": "{{ probe.path | default('/') }}",
  62. {% endif %}
  63. "intervalInSeconds": {{ probe.interval | default(5) }},
  64. "numberOfProbes": {{ probe.failcount | default(3) }}
  65. }
  66. },
  67. {% endfor %}
  68. ],
  69. "loadBalancingRules": [
  70. {% for rule in lb.load_balancing_rules | default([]) %}
  71. {
  72. "name": "{{ rule.name }}",
  73. "properties": {
  74. {% if rule.probe is defined %}
  75. "probe": {
  76. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/probes/{{ rule.probe }}"
  77. },
  78. {% endif %}
  79. "frontendIPConfiguration": {
  80. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/frontendIPConfigurations/{{ rule.frontend_ip_configuration }}"
  81. },
  82. "backendAddressPool": {
  83. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/backendAddressPools/{{ rule.backend_address_pool }}"
  84. },
  85. "frontendPort": {{ rule.frontend_port | default(0) }},
  86. "backendPort": {{ rule.backend_port | default(0) }},
  87. "enableFloatingIP": {{ rule.enable_floating_ip | default(false) }},
  88. "idleTimeoutInMinutes": {{ rule.idle | default(4) }},
  89. "protocol": "{{ rule.protocol | default('All') }}",
  90. "enableTcpReset": {{ rule.tcpreset | default(false) }},
  91. "disableOutboundSnat": {{ rule.disable_outsnat | default(false) }},
  92. "loadDistribution": "{{ rule.load_distribution | default('Default') }}"
  93. }
  94. },
  95. {% endfor %}
  96. ],
  97. "outboundRules": [
  98. {% for outrule in lb.outbound_rules | default([]) %}
  99. {
  100. "name": "{{ outrule.name }}",
  101. "properties": {
  102. {% if outrule.nbport is defined %}
  103. "allocatedOutboundPorts": {{ outrule.nbport }},
  104. {% endif %}
  105. "backendAddressPool": {
  106. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/backendAddressPools/{{ outrule.backend_address_pool }}"
  107. },
  108. "enableTcpReset": {{ outrule.tcpreset | default(false) }},
  109. "frontendIPConfigurations": [
  110. {% for fipc in outrule.frontend_ip_configurations | default([]) %}
  111. {
  112. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/frontendIPConfigurations/{{ fipc.name }}"
  113. },
  114. {% endfor %}
  115. ],
  116. "idleTimeoutInMinutes": {{ outrule.idle | default(4) }},
  117. "protocol": "{{ outrule.protocol | default('All') }}",
  118. }
  119. },
  120. {% endfor %}
  121. ],
  122. "inboundNatRules": [
  123. {% for inatrule in lb.inbound_nat_rules | default([]) %}
  124. {
  125. "name": "{{ inatrule.name }}",
  126. "properties": {
  127. "frontendIPConfiguration": {
  128. "id": "/subscriptions/{{ subscription_id }}/resourceGroups/{{ lb.resource_group }}/providers/Microsoft.Network/loadBalancers/{{ lb.name }}/frontendIPConfigurations/{{ inatrule.frontend_ip_configuration }}"
  129. },
  130. "frontendPort": {{ inatrule.frontend_port | default(0) }},
  131. "backendPort": {{ inatrule.backend_port | default(0) }},
  132. "enableFloatingIP": {{ inatrule.enable_floating_ip | default(false) }},
  133. "idleTimeoutInMinutes": {{ inatrule.idle | default(4) }},
  134. "protocol": "{{ inatrule.protocol | default('Tcp') }}",
  135. "enableTcpReset": {{ inatrule.tcpreset | default(false) }},
  136. }
  137. },
  138. {% endfor %}
  139. ],
  140. "inboundNatPools": []
  141. },
  142. "sku": {
  143. "name": "{{ lb.sku | default('Standard') }}",
  144. {% if lb.tier is defined %}
  145. "tier": "{{ lb.tier }}
  146. {% endif %}
  147. },
  148. "tags": {
  149. {% for key, value in (lb.tags | default({})).items() %}
  150. "{{ key }}": "{{ value }}",
  151. {% endfor %}
  152. }
  153. }