build_vm_list.yml 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  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_ovirt_dns_zone variable is required."
  6. when:
  7. - openshift_ovirt_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_ovirt_dns_zone }}',
  16. 'tag': 'openshift_{{ item.profile }}',
  17. 'cloud_init':
  18. {
  19. 'host_name': '{{ item.name }}{{ iter }}.{{ openshift_ovirt_dns_zone }}',
  20. {% if item.nic_mode is defined -%}
  21. 'nic_boot_protocol': 'static',
  22. 'nic_ip_address': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_ip_address"] }}',
  23. 'nic_netmask': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_netmask"] }}',
  24. 'nic_gateway': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_gateway"] }}',
  25. 'nic_on_boot': {{ item["nic_mode"][item["name"] + iter | string ]["nic_on_boot"] | default(true) | bool }},
  26. 'nic_name': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_name"] | default("eth0") }}',
  27. 'dns_servers': '{{ item["nic_mode"][item["name"] + iter | string ]["dns_servers"] }}',
  28. {% endif -%}
  29. 'authorized_ssh_keys': '{{ openshift_ovirt_ssh_key }}'
  30. },
  31. 'profile': {{ openshift_ovirt_vm_profile[ item.profile ] }} ,
  32. }
  33. {% endfor -%}
  34. ]
  35. affinity_groups: >-
  36. {{ affinity_groups|default([]) }} + [
  37. {% if item.count > 1 -%}
  38. {
  39. 'name': '{{ item.name }}_ag',
  40. 'cluster': '{{ openshift_ovirt_cluster }}',
  41. 'vm_enforcing': 'false',
  42. 'vm_rule': 'negative',
  43. 'vms': [
  44. {% for iter in range(item.count) -%}
  45. '{{ item.name }}{{ iter }}.{{ openshift_ovirt_dns_zone }}',
  46. {% endfor -%}
  47. ]
  48. }
  49. {% endif -%}
  50. ]
  51. with_items: "{{ openshift_ovirt_vm_manifest }}"
  52. tags:
  53. - openshift_ovirt
  54. ...