Hi
I am trying to run below playbook to find the server (openstack host), on which vm will be running using jinja2 filter but getting error no test named ‘equalto’. After googling found some ppl suggested upgrade jinja2 and I am using version 2.7 on RHEL which is latest for RHEL. I was able to somehow make this playbook work once but not sure how which proved that code is working. I am struggling since then but have no luck yet. I found compatibility issue on bugzilla between this jinja2 ver and ansible/ansible Tower? Can Anyone suggest what other filter or way I can choose to achieve this which works on below jinja2 version? Thanks
Playbook:
- hosts: localhost
vars:
openstack: [reg1, reg2, reg3, reg4]
tasks:
- name: Command to find os server where vm exists
shell: somecommand-to-check-if-vm-exist | wc -l
delegate_to: "{{ item }}"
with_items: "{{ openstack }}"
register: vm_check
- name: set fact
set_fact:
os_server: "{{ (vm_check.results | selectattr('stdout','equalto','1') | list | first }}"
- name: debug var
debug:
msg: "{{ os_server }}"
Error below:
“msg”: “Unexpected failure during module execution.”, “exception”: “Traceback File "/usr/lib/python2.7/site-packages/jinja2/environment.py", line 438, in call_test\n raise TemplateRuntimeError(‘no test named %r’ % name)\nTemplateRuntimeError: no test named ‘equalto’\n”, “stdout”: “” }
ansible --version ansible 2.4.3.0
ansible Tower ver: < Tower 3.2.3 >
python version = 2.7.5 (default, May 3 2017, 07:55:04) [GCC 4.8.5
I am using RHEL 7.
rpm -q python-jinja2
python-jinja2-2.7.2-2.el7.noarch