build_vm_list.yml 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. ---
  2. # Creates a dictionary for use with oVirt.vm-infra role
  3. # https://github.com/oVirt/ovirt-ansible-vm-infra
  4. - fail:
  5. msg: "The openshift_rhv_dns_zone variable is required."
  6. when:
  7. - openshift_rhv_dns_zone is not defined
  8. - name: Create virtual machine list fact
  9. set_fact:
  10. vms: >-
  11. {{ vms|default([]) }} + [
  12. {% for iter in range(item.count) -%}
  13. {% if iter > 0 -%},{% endif -%}
  14. {
  15. 'name': '{{ item.name }}{{ iter }}.{{ openshift_rhv_dns_zone }}',
  16. 'tag': 'openshift_{{ item.profile }}',
  17. 'cloud_init':
  18. {
  19. 'host_name': '{{ item.name }}{{ iter }}.{{ openshift_rhv_dns_zone }}',
  20. 'authorized_ssh_keys': '{{ openshift_rhv_ssh_key }}'
  21. },
  22. 'profile': {{ openshift_rhv_vm_profile[ item.profile ] }} ,
  23. }
  24. {% endfor -%}
  25. ]
  26. affinity_groups: >-
  27. {{ affinity_groups|default([]) }} + [
  28. {% if item.count > 1 -%}
  29. {
  30. 'name': '{{ item.name }}_ag',
  31. 'cluster': '{{ openshift_rhv_cluster }}',
  32. 'vm_enforcing': 'false',
  33. 'vm_rule': 'negative',
  34. 'vms': [
  35. {% for iter in range(item.count) -%}
  36. '{{ item.name }}{{ iter }}.{{ openshift_rhv_dns_zone }}',
  37. {% endfor -%}
  38. ]
  39. }
  40. {% endif -%}
  41. ]
  42. with_items: "{{ openshift_rhv_vm_manifest }}"
  43. tags:
  44. - openshift_rhv
  45. ...