So, I have a batch of playbooks that include tasks where the filenames are determined by variables;
- include: tasks/mytask-{{onevar}}-{{anothervar}}.yml
This was working up through ansible 1.7.2. As of ansible 1.8.0 (and also tested on ansible 1.8.1) this stopped working; the variables are no longer interpreted, and ansible exits complaining with a message:
ERROR: file could not read: /root/work/playbooks/tasks/bar-{{platform}}.yml
Below are the bits to reproduce:
foo.yml:
- hosts: slave
user: root
vars:
platform: rpm
tasks:
- include: "tasks/bar-{{platform}}.yml"
tasks/bar-rpm.yml:
- name: install OS package dependencies
action: yum pkg={{item}} state=installed
with_items:
- wget
- ntpdate
hosts.inv:
[slave]
sc-cluster-20-04
sc-cluster-20-05
sc-cluster-20-06
The above case works on all ansible versions up through 1.7.2, and breaks on 1.8.0+. I searched on here a bit regarding this, and found the suggestion that variables as part of include filenames would only work if passed in as extra vars, as only those would be resolvable early enough. I tested that on 1.7.2 by taking out the "vars:" section and passing the value in as an extra var on the command-line. That test worked on 1.7.2 and earlier, but does not work in 1.8.0+.
Is there any means where this functionality should actually work in 1.8.x?