123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- ---
- # Creates a dictionary for use with oVirt.vm-infra role
- # https://github.com/oVirt/ovirt-ansible-vm-infra
- # Side note:
- # If we have a count: 1 in our vm definition, the name that you put in the proper field will be preserved
- # if we have more than 1 a counter will be raised and the vm name will be name + iteration (EG) node0, node1, node2
- # in case of count: 3
- - fail:
- msg: "The openshift_ovirt_dns_zone variable is required."
- when:
- - openshift_ovirt_dns_zone is none
- - name: Create virtual machine list fact
- set_fact:
- vms: >-
- {{ vms|default([]) }} + [
- {% for iter in range(item.count) -%}
- {% if iter > 0 -%},{% endif -%}
- {
- {% if item.count == 1 -%}
- 'name': '{{ item.name }}.{{ openshift_ovirt_dns_zone }}',
- {% elif item.count > 1 -%}
- 'name': '{{ item.name }}{{ iter }}.{{ openshift_ovirt_dns_zone }}',
- {% endif -%}
- 'tag': 'openshift_{{ item.profile }}',
- 'description': '{{ item.description | default("") }}',
- 'cloud_init':
- {
- {% if item.count == 1 -%}
- 'host_name': '{{ item.name }}.{{ openshift_ovirt_dns_zone }}',
- {% if item.nic_mode is defined -%}
- 'nic_boot_protocol': 'static',
- 'nic_ip_address': '{{ item["nic_mode"][item["name"]]["nic_ip_address"] }}',
- 'nic_netmask': '{{ item["nic_mode"][item["name"]]["nic_netmask"] }}',
- 'nic_gateway': '{{ item["nic_mode"][item["name"]]["nic_gateway"] }}',
- 'nic_on_boot': {{ item["nic_mode"][item["name"]]["nic_on_boot"] | default(true) | bool }},
- 'nic_name': '{{ item["nic_mode"][item["name"]]["nic_name"] | default("eth0") }}',
- {% if item["nic_mode"][item["name"]]["dns_servers"] is defined -%}
- 'dns_servers': '{{ item["nic_mode"][item["name"]]["dns_servers"] }}',
- 'dns_search': '{{ item["nic_mode"][item["name"]]["dns_search"] }}',
- {% endif -%}
- {% endif -%}
- {% if item.dns_servers is defined -%}
- 'dns_servers': '{{ item["dns_servers"] }}',
- {% endif -%}
- {% if item.dns_search is defined -%}
- 'dns_search': '{{ item["dns_search"] }}',
- {% endif -%}
- {% elif item.count > 1 -%}
- 'host_name': '{{ item.name }}{{ iter }}.{{ openshift_ovirt_dns_zone }}',
- {% if item.nic_mode is defined -%}
- 'nic_boot_protocol': 'static',
- 'nic_ip_address': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_ip_address"] }}',
- 'nic_netmask': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_netmask"] }}',
- 'nic_gateway': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_gateway"] }}',
- 'nic_on_boot': {{ item["nic_mode"][item["name"] + iter | string ]["nic_on_boot"] | default(true) | bool }},
- 'nic_name': '{{ item["nic_mode"][item["name"] + iter | string ]["nic_name"] | default("eth0") }}',
- {% if item["nic_mode"][item["name"] + iter | string ]["dns_servers"] is defined -%}
- 'dns_servers': '{{ item["nic_mode"][item["name"] + iter | string ]["dns_servers"] }}',
- {% endif -%}
- {% if item["nic_mode"][item["name"] + iter | string ]["dns_search"] is defined -%}
- 'dns_search': '{{ item["nic_mode"][item["name"] + iter | string ]["dns_search"] }}',
- {% endif -%}
- {% endif -%}
- {% if item.dns_servers is defined -%}
- 'dns_servers': '{{ item["dns_servers"] }}',
- {% endif -%}
- {% if item.dns_search is defined -%}
- 'dns_search': '{{ item["dns_search"] }}',
- {% endif -%}
- {% endif -%}
- 'authorized_ssh_keys': '{{ openshift_ovirt_ssh_key }}'
- },
- 'profile': {{ openshift_ovirt_vm_profile[ item.profile ] }} ,
- }
- {% endfor -%}
- ]
- affinity_groups: >-
- {{ affinity_groups|default([]) }} + [
- {% if item.count > 1 -%}
- {
- 'name': '{{ item.name }}_ag',
- 'cluster': '{{ openshift_ovirt_cluster }}',
- 'vm_enforcing': 'false',
- 'vm_rule': 'negative',
- 'vms': [
- {% for iter in range(item.count) -%}
- '{{ item.name }}{{ iter }}.{{ openshift_ovirt_dns_zone }}',
- {% endfor -%}
- ]
- }
- {% endif -%}
- ]
- with_items: "{{ openshift_ovirt_vm_manifest }}"
- tags:
- - openshift_ovirt
- ...
|