conditionals

Trying to do a conditional that when my inventory host name once converted to a string is greater than a number

Inventory file
server1
server2
server3 -




server205

this is the important parts of the role

  • name: vmotion {{ inventory_hostname }}
    vmware_vmotion:
    hostname: “{{ vcenter_hostname }}”
    username: "{{ vcenter_username }}
    password: “{{ vcenter_password }}”
    vm_name: “{{ inventory_hostname }}”
    destination_datastore: “TP1”
    when: “(inventory_hostname | regex_replace('.*([0-9]+).*', '\\1') | int) > 150
    delegate_to: localhost

  • name: vmotion {{ inventory_hostname }}
    vmware_vmotion:
    hostname: “{{ vcenter_hostname }}”
    username: “{{ vcenter_username }}@scriptpro.com
    password: “{{ vcenter_password }}”
    vm_name: “{{ inventory_hostname }}”
    destination_datastore: “TP2”
    when: “(inventory_hostname | regex_replace('.*([0-9]+).*', '\\1') | int) 180
    delegate_to: localhost

it fails with

": “The conditional check ‘(inventory_hostname | regex_replace('.*([0-9]+).*', '\\1') | int) is even’ failed. The error was: template error while templating string: unexpected char u’' at 6. String: {% if (inventory_hostname | regex_replace(‘.([0-9]+).’, ‘\1’) | int) is even` %} True {% else %} False {% endif %}\n\nThe error appears to have been in ‘/etc/ansible/roles/vmotion_app/tasks/main.yml’: line 2, column 3, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\nThe offending line appears to be:\n\n—\n- name: vmotion {{ inventory_hostname }}\n ^ here\nWe could be wrong, but this one looks like it might be an issue with\nmissing quotes. Always quote template expression brackets when they\nstart a value. For instance:\n\n with_items:\n - {{ foo }}\n\nShould be written as:\n\n with_items:\n - "{{ foo }}"\n”}

any thoughts are appreciated

Hi Jeffrey,