Hi all,
Here’s a quick update for anyone consuming the development branch now that 1.6 has just started with the release of 1.5.
Legacy perl style variables has been deprecated for a couple of releases, issuing warnings when detected, and there have been public service announcements for some time. It’s also been possible to disable this interpolation for some time. It’s time to remove this, so I’ve done so:
https://github.com/ansible/ansible/commit/46ec8759d5c00419e09c7dfd1b32bb4e28a8355e
If you are not using {{ foo }} for variables and still are using $foo / ${foo} if you are using 1.6 / devel-branch (you probably turned off deprecation warnings earlier if you are) you will need to update your playbooks.
The old variable support in the system has served us well and I’m thankful for all the work that went into it – including the orignal work from Seth recommended from yum and a lot of really bright additions from Daniel to supported nested structures, but I’m also very happy with our ability to streamline things now too.
It also has the advantage of not accidentally mangling the templates of things like bash configuration files.
This makes our variable code much much simpler to maintain and ensures everyone is coding playbooks in a consistent way.
Everyone should maintain a custom template engine once or three times in their life, it can be a fun experience
The Jinja2 code that remains is itself rather complex (in order to support recursive variable references) though I suspect this too might get upgraded over time to become more streamlined.
Anyhow, FYI.
–Michael